Linux基础操作篇

Linux

环境:

  • VMware
  • CentOS

1 linux简单介绍

1.1 常见操作系统

服务端操作系统 : linux、unix、windows server

单机操作系统 : windows(dos 、ucdos、win95、win98、win2000、xp、vista、win7、win8) MAC 、linux(ubuntu)

移动操作系统: Android、IOS 、Windows phone

1.2 linux操作系统介绍

Linux 简介:

  • Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
  • Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
  • Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。
  • Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux 应用领域:

  • 大部分服务端都采用linux ,JEE部署到服务器中
  • 一些企业和学校采用linux研发和教学
  • 很多嵌入式开发 用linux
  • 云计算、大数据 是集群网 linux : centos

Linux组成为:

  • linux内核(linus 团队管理)
  • shell :用户与内核交互的接口
  • 文件系统 : ext3、ext4 等 windows 有 fat32 、ntfs
  • 第三方应用软件

1.3 Centos7环境搭建

VMware 15 pro安装:

下载地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

img

下载完成后,右键以管理员身份运行,安装过程中可能会遇到这样的情况。

img

此时需要重新启动电脑,然后再次点击安装包进行安装即可。

此后需要输入序列码:我这里先放一个,失效后自行百度搜索–>激活许可证:YC34H-6WWDK-085MQ-JYPNX-NZRA2

Centos7的下载安装:

1、Centos7的下载

虽然目前已经更新到 Centos8.x,但是实际最广泛的还是 Centos7.x,所以决定下载使用 Centos7。

进入 Centos 下载官网:http://isoredirect.centos.org/centos/7/isos/x86_64/

img

这里列举了很多镜像资源,随便点击一个下载:

img

1.4 在虚拟机安装Centos

1、新建一个虚拟机

创建新的虚拟机—典型—稍后安装操作系统—选择linux操作系统和选择Centos7 64 位

2、虚拟机创建完成之后,需要修改一些配置。

img

3、虚拟机需要注意:按下Ctrl + Alt,鼠标即可移出虚拟机聚焦。之后一直 Enter 即可,然后来到虚拟机配置页面。

4、虚拟机配置

  • 设置语言,默认 English,直接点击 Continue

  • 设置时区和时间

    img
img
  • 软件安装

    img
  • 设置安装位置

    img img
  • 配置三个分区,/boot、swap 和 / 根分区

    img
img img img img

登录过程中可能会出现这样的界面,一步一步往下走会发现是帮助你新建了一个用户,不过我们还是使用 root 账户进行登录,密码即为之前设置的密码。

1.5 云服务器ECS

学生价

1.6 xftp和xshell下载

  • 下载页面:https://www.netsarang.com/zh/xshell-download/
  • 点击“免费授权页面”,获取,免费版本
img

查看自己的邮箱,会收到邮箱信息,点击进去就是自己的下载链接(建议翻墙)

1.7 linux网络连接三种方式

img
  1. 桥连接:Linux可以和其它的系统通信。但是可能造成ip冲突

  2. NAT: 网络地址转换方式: linux可以访问外网,不会造成ip冲突。(常用

  3. 主机模式: 你的 linux是一个独立的主机,不能访问外网

2 vmtools安装

使用 vmtools 来设置 windows 和 linux 的共享文件夹

  • 先弹出
img
  • 重新安装vmware tools
img
  • 文件拷贝
img
  • 安装

进入到opt目录:cd /opt

解压vmtools:tar -zxvf xxx.tar.gz

进入到解压目录:cd vmwarexx

安装:./vmware-install.pl(一直enter即可安装成功)

  • 文件共享
img

共享文件夹在 centos 的 /mnt/hgfs/ 下

3 linux常用目录结构分析

linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录

linux 的目录中有且只要一个根目录 /

linux 的各个目录存放的内容是规划好的,不能乱放文件。

linux 是以文件的形式管理我们的设备,因此 linux 系统,一切皆为文件

img
/bin			# 是Binary的缩写,这个目录存放最近常使用的命令

/sbin			# s就是super user的意思,这里存放的是系统管理员使用的系统管理程序

/home			# 存放普通用户的主目录,在linux中每一个用户都有自己的目录,一般目录名就是用户账号

/root			# 该目录为系统管理员,也称作超级权限者的用户主目录

/boot			# 存放的是启动linux时使用的一些核心文件,包括一些连接文件以及镜像文件

/tmp			# 这个目录是用来存放一些临时文件的。用完即丢的文件,可以放在这个目录下,安装包!

/mnt			# 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在此目录下

/media			# linux系统会自动识别一些设备,例如U盘、光驱等,当识别后,linux会把识别的设备挂载到这个目录下

/opt			# 这是给主机额外安装软件所摆放的目录,用户级的程序目录,可以理解为D:/Software

/usr			# 类似于windows下的program files目录

/usr/local		# 用户级的程序目录,可以理解为C:/Progrem Files/

/var			# 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件

/etc			# 这个目录用来存放所有的系统管理所需要的配置文件和子目录。

4 vi 和 vim 编辑器

所有的 Linux 系统都会内建 vi 文本编辑器,Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本

4.1 vi 和 vim 的三种常见模式

  • 正常模式

以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。

  • 插入模式

在模式下,程序员可以输入内容,按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式, 一般来说按 i 即可

img
  • 命令行模式

在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的!

img

4.2 快捷键的使用(一般模式下)

拷贝当前行 yy , 拷贝当前行向下的 5 行 5yy,并粘贴(p)

删除当前行 dd , 删除当前行向下的 5 行 5dd

在文件中查找某个单词 [命令行下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ]

设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]

使用快捷键到底文档的最末行[G]和最首行[gg]

在一个文件中输入 “hello” ,然后又撤销这个动作,再正常模式下输入 u

移动到指定行,行数+ shift+g || :n 移动到第几行

^ 移动到行首

$ 移动到行尾

img

5 常用命令

命令基本格式

[root@localhost ~]#

  • []:这是提示符的分隔符号,没有特殊含义。
  • root:显示的是当前的登录用户,超哥现在使用的是root 用户登录。
  • @:分隔符号,没有特殊含义。
  • localhost:当前系统的简写主机名(完整主机名是localhost.localdomain)。
  • ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
  • #:命令提示符。超级用户是#,普通用户是$

5.1 目录操作命令

pwd							  # 显示当前工作目录的绝对路径

ls [选项] [目录或是文件]		# -a :显示当前目录所有的文件和目录,包括隐藏的    -l :以列表的方式显示信息

cd [参数] 					# 切换到指定目录   cd .. 回到当前目录的上一级目录

mkdir [选项]  要创建的目录   	#  指令用于创建目录     -p :创建多级目录

rmdir [选项] 要删除的空目录   	# 指令用于删除空目录  删除非空目录: rm -rf 要删除的目录 )

5.2 文件操作命令

touch 文件名称    						# 指令用于创建空文件

cat [选项] 要查看的文件    				# 查看文件内容,是以只读的方式打开    -n :显示行号   末尾加上 | more,分页预览

more  文件名							# 空格键:向下翻页。回车键:向下滚动一行。 b:向上翻页。/字符串:搜索指定的字符串。q:退出。

stat  文件名							# 查看文件详细信息

tail 文件 							# 查看文件后 10 行内容

tail -n 5 文件 						# 查看文件后 5 行内容,5 可以是任意行数

tail -f 文件 							# 实时追踪该文档的所有更新,工作经常使用

head 文件 							# 查看文件头 10 行内容

head -n 5 文件 						# 查看文件头 5 行内容,5 可以是任意行数

ln -s [原文件或目录] [软链接名] 			# 给原文件创建一个软链接,相当于Windows的快捷方式

less 要查看的文件      					# 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大。

5.3 目录和文件都可以操作的命令

cp [选项] source dest   					# 指令用于拷贝文件到指定目录    -r :递归复制整个文件夹

cp -r /root/bbb /root/ccc/				# 将整个文件夹复制到另一个文件夹    强制覆盖不提示的方法:复制之前加上  \cp

rm [选项] 								# 要删除的文件或目录  -r递归删除整个文件夹  -f强制删除不提示  -i交互删除,在删除之前会询问用户

mv oldNameFile newNameFile 				# 重命名

mv  /temp/movefile   /targetFolder 		# 移动文件

5.4 帮助命令

 man  命令			# 显示联机帮助手册
 
 info 命令			# 帮助信息是一套完整的资料
 
 指令  --help			# 绝大多数命令都可以使用“--help”选项来查看帮助

5.5 搜索命令

find /home -name hello.txt				# 按文件名:根据名称查找/home 目录下的 hello.txt 文件

find /opt -user nobody					# 按拥有者:查找/opt 目录下,用户名称为 nobody 的文件

find / -size +20M						# 查找整个 linux 系统下大于 20m 的文件(+n 大于 -n 小于 n 等于)

find / -name *.txt						# 查询 / 目录下,所有 .txt 的文件

grep [选项] "搜索内容" 文件名			  # grep 的作用是在文件中提取和匹配符合条件的字符串行,-i忽略大小写,-n输出行号

5.6 压缩和解压命令

gzip 文件									# 压缩文件,只能将文件压缩为*.gz 文件,不会保留原来的文件

gunzip	文件.gz							# 解压缩文件命令

zip [选项] XXX.zip						# 压缩文件和目录的命令  -r 递归压缩,即压缩目录

unzip [选项] XXX.zip						# 解压缩文件)   -d<目录> 指定解压后文件的存放目录

tar [选项] XXX.tar.gz						# 打包目录,压缩后的文件格式.tar.gz

tar -zcvf a.tar.gz a1.txt a2.txt		 # 将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz

tar -zcvf myhome.tar.gz /home/			 # 将/home 的文件夹 压缩成 myhome.tar.gz

tar -zxvf a.tar.gz						 # 将 a.tar.gz 解压到当前目录

tar -zxvf myhome.tar.gz -C /opt/		 # 将 myhome.tar.gz 解压到 /opt/ 目录下(指定压缩到哪里的目录必须存在)

5.7 关机和重启命令

shutdown -h now  	# 表示立即关机

shutdown -h 1   	# 表示 1 分钟后关机

shutdown -r now 	# 立即重启

halt 				# 就是直接使用,效果等价于关机

reboot				# 就是直接使用,效果等价于关机

sync				# 把内存的数据同步到磁盘

当我们关机或者重启时,都应该先执行以下 sync 指令,把内存的数据写入磁盘,防止数据丢失

5.8 常用网络命令

ifconfig														# 查看IP 地址的信息

vi  /etc/sysconfig/network-scripts/ifcfg-exxx					# 手工修改配置文件 

systemctl restart network										# 重启网络服务 

rm  -rf  /etc/udev/rules.d/70-persistent-net.rul				# 删除MaC 地址和UUID 绑定文件 

ping  IP 														# 向网络主机发送ICMP 请求

netstat -tul													# 查看本机开启的端口

netstat -tulnp													# 查看本机有哪些程序开启的端口

netstat -a														# 查看所有连接

write user1 pts/1 												# 向在pts/1(远程终端1)登录的user1 用户发送信息

5.3 系统痕迹命令

系统中有一些重要的痕迹日志文件,如/var/log/wtmp 、/var/run/utmp 、/var/log/btmp 、/var/log/lastlog 等日志文件

如果你用 vim 打开这些文件,你会发现这些文件是二进制乱码。

这是由于这些日志中保存的是系统的重要登录痕迹,包括某个用户何时登录了系统,何时退出了系统,错误登录等重要的系统信息。

这些信息要是可以通过vim 打开,就能编辑,这样痕迹信息就不准确,所以这些重要的痕迹日志,只能通过对应的命令来进行查看。

w					# 显示登录用户,和他正在做什么

who					# 查看正在登陆的用户

last				# 查看系统所有登陆过的用户信息

lastlog				# 查看系统中所有用户最后一次的登陆时间的命令

lastb				# 查看错误登陆的信息

5.4 重置(忘记)root密码

鼠标一定要点进去,不然像我一样狂按e也不会起作用,gif动画前面稍微有点漫长

  • 引导界面输入e
  • 输入init=/bin/sh 然后Ctrl+X(进入单用户模式)
  • 光标闪烁处,输入mount -o remount,rw / 回车
  • 在新的一行输入: passwd 回车之后 输入密码 确认密码
  • 光标闪烁处输入:touch / .autorelabel (touch 和 / 后面有空格)
  • 光标闪烁输入:exec /sbin/init(exec后面有空格)等待自动重启即可
26862-psvmc

6 用户管理

6.1 用户增删

useradd  用户名				# 添加用户   默认添加的用户在 /home目录

useradd -d  指定目录  用户名		# 添加时指定用户家目录

passwd  用户名						# 添加密码

usermod  用户名					# 修改已经添加的用户的信息

userdel   [-r]  用户名						# 删除用户     -r: 在删除用户的同时删除用户的家目录

id - 用户名								# 查询用户信息 “-”不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量。

6.2 用户组

类似于角色,系统可以对有共性的多个用户进行统一的管理。

groupadd  组名						# 增加组
	
groupdel 组名							# 删除组

useradd  -g  用户组  用户名			 # 增加用户时直接加上组

usermod  -g  用户组  用户名			 # 修改用户组

6.3 用户和组相关文件

  • /etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell

img

  • /etc/shadow 文件

口令的配置文件

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  • /etc/group 文件

组(group)的配置文件,记录 Linux 包含的组的信息

每行含义:组名:口令:组标识号:组内用户列表

img

7 网络配置

7.1 linux 网络环境配置

指定固定的 ip
  • 直 接 修 改 配 置 文 件 来 指 定 IP, 并 可 以 连 接 到 外 网 ( 程 序 员 推 荐 ) , 编 辑 vi /etc/sysconfig/network-scripts/ifcfg-ens33
img img
  • 重启服务

service network restart或者重启

设置主机名和hosts映射

设置主机名(使用主机名简化ip):

1、为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名

2、指令hostname : 查看主机名

3、修改文件 /etc/hostname 指定

4、修改后重启即可

设置hosts映射(通过主机名找到某个linux系统):

windows中修改:c:\windows\system32\drivers\etc\hosts 指定映射关系

linux中修改:/etc/hosts 指定映射关系

8 进程管理

1、在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。

2、每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器。

3、每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。

4、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

查看进行使用的指令是 ps ,一般来说使用的参数是 ps -aux

img

img

终止进程 kill 和 killall

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用 kill 命令来完成此项任务。

kill [选项] 进程号(功能描述:通过进程号杀死进程) (-9 :表示强迫进程立即停止)

killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

服务(Service)管理

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程

service [start | stop | restart | reload | status] 服务名

在 CentOS7.0 后 不再使用 service ,而是 systemctl

查看防火墙状态:systemctl status firewalld

9 RPM 和 YUM

9.1 rpm

一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.RPM扩展名的文件。

RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows的 setup.exe

这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。

rpm –ivh 包全名					# RPM 包安装

rpm –Uvh 包全名					# RPM 包升级

rpm  -e --nodeps  包名						# 卸载

rpm –q 包名 						# 查询软件包是否安装 

rpm –qa|grep xx					  # 查询某个已安装的 rpm 列表


rpm 包名基本格式:

一个 rpm 包名:firefox-45.0.1-1.el6.centos.x86_64.rpm

  • 名称:firefox
  • 适用操作系统: el6.centos.x86_64
  • 表示 centos6.x 的 64 位系统
  • 如果是 i686、i386 表示 32 位系统,noarch 表示通用。

9.2 yum

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系

并且一次安装所有依赖的软件包。使用 yum 的前提是可以联网。

yum list				# 查询yum 源服务器上所有可安装的软件包列表

yum list 包名			  # 查询yum 源服务器中是否包含某个软件包

yum -y install 包名	  # 安装

yum -y update 包名	  # 升级

yum remove 包名		  # 卸载

10 搭建 JavaEE 环境

如果需要在 Linux 下进行 JavaEE 的开发,我们需要安装如下软件

img

10.1 jdk搭建(手动安装)

官网下载地址

将该压缩包放到/usr/local/java目录下(java需要自己创建,名字自己随意取,见名知意),然后解压该压缩包,输入如下指令:

tar zxvf jdk-8u221-linux-x64.tar.gz 

配置环境变量,输入以下指令进行配置:

vi /etc/profile
在文件尾部添加如下信息:	
JAVA_HOME=/usr/local/java/jdk1.8.0_221
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

注意:JAVA_HOME=/usr/local/java/jdk1.8.0_221 此处等号右边的是自己的jdk实际解压目录。如果不是该目录则需要改成自己的实际目录,其他不变。

编辑完之后,保存并退出,然后输入以下指令,刷新环境配置使其生效

source /etc/profile

img

10.2 Tomcat环境搭建(手动安装)

官网下载

将该压缩包放到/usr/local/tomcat目录下,解压到当前文件夹

更换文件名:mv apache-tomcat-9.0.35 tomcat9.0

修改配置文件:

#进入配置文件
cd /usr/local/tomcat/conf
#修改端口配置
vim server.xml


<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

进入/usr/local/tomcat/tomcat9.0/bin/--------------->运行startup.sh文件

img

本机测试8080端口(温馨提示:防火墙是否关闭)

img

10.3 IDEA部署web项目到Linux服务器上

设置打包格式,war包

<artifactId>meyon_film</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
使用clean、install生成war包,使用package进行打包

maven配置,防止打包出错!

img

install出错,Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

<!-- 配置web.xml文件的配置 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <!-- 指定web.xml的路径  -->
        <webXml>web\WEB-INF\web.xml</webXml>
        <!-- 指定jsp、js、css的路径 -->
        <warSourceDirectory>web</warSourceDirectory>
    </configuration>
</plugin>
img
war包上传到linux
img
修改一些配置文件

  • tomcat—>conf—>vim tomcat-users.xml
img
  • 在Tomcat目录下 /conf/Catalina/localhost/ 下创建 manager.xml ,并在文件中添加以下内容:
<Context privileged="true" antiResourceLocking="false"   
         docBase="${catalina.home}/webapps/manager">  
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />  
</Context>  

再次重启tomcat ./startup.sh

浏览器访问点击Manager App

img

nbhbfquqo.png" alt=“img” style=“zoom:67%;” />

修改一些配置文件

  • tomcat—>conf—>vim tomcat-users.xml
img
  • 在Tomcat目录下 /conf/Catalina/localhost/ 下创建 manager.xml ,并在文件中添加以下内容:
<Context privileged="true" antiResourceLocking="false"   
         docBase="${catalina.home}/webapps/manager">  
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />  
</Context>  

再次重启tomcat ./startup.sh

浏览器访问点击Manager App

img
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值