0 学习目标
- 掌握Linux系统信息相关的命令。
- 掌握Linux用户权限和管理的命令。
- 掌握Linux其他的常用命令。
1 信息系统相关命令
1.1 重启与关机命令
重启命令: reboot
命令说明:执行命令后立即重新启动操作系统。
关机命令: shutdown
命令说明:执行命令后,提示一分钟后关闭操作系统。
shutdown常用命令选项:
- shutdown –r now:重新启动操作系统,shutdown会给别的用户提示。
- shutdown -h now:立刻关机,其中now相当于时间为0的状态。
- shutdown -h 20:25:定时关机,系统在今天的20:25 会关机。
- shutdown -h +10:系统再过十分钟后自动关机。
1.2 静态查看系统进程 – ps【重点】
命令格式: ps –aux | grep '关键字'
常用选项说明:(不需详细记住,直接记住-aux)
-a
:显示终端上的所有进程,包括其他用户的进程。-u
:显示进程的详细状态。-x
:显示没有控制终端的进程。- ps命令一般会结合 grep使用,来查找特定应用程序的进程。
- 例如:
ps –aux | grep ’bin‘
:在系统进程中查找包含bin关键字的进程信息。 - 另一种查看方式:
ps -ef | grep ’bin‘
(苹果用户用词方法)。
【拓展】
- Windows查看进程,点击任务管理器。
- 快捷键:ctrl + shift + esc
- PID是进程号。
gedit
:在虚拟机启动一个记事本,在图形界面不能使用。
把它删除之后就少了一个进程。
1.3 实时查看系统进程 – top
命令格式: top
命令说明:top命令用于实时动态查看系统进程相关信息。
常用交互快捷键说明:
- M(按shift+m) :根据内存的大小降序显示进程信息。
- P(按shift+p) :根据CPU使用率大小降序显示进程信息。
- q : 退出top命令 或者按
ctrl+c
也可以退出。
Windows动态查看进程:
1.4 关闭进程 – kill
命令格式: kill -9 进程号
命令说明:
- 该命令表示强制关闭对应的进程。
- 进程号可以通过ps或者netstat等命令获取到。
【注意】需要注意当前执行操作的用户,普通用户不能关闭其他用户的进程,只能关闭自己打开的进程。
【练习】
-
通过ps命令查看mysql的进程id号。
答:ps -aux | grep mysql
。
-
通过top查看当前系统中CPU使用率排前三的进程。
答:先top
,然后shift+p
。
-
通过kill命令杀掉已存在的top进程。
答:先ps -aux | grep top
,再kill -9 top的进程号
。
1.5 查看系统监听端口 – netstat【重点】
命令格式: netstat [-anptu] | grep '关键字'
(root用户操作)
说明:netstat
可以查看当前系统网络状态及对应软件使用的端口。
常用选项说明:
-a
:显示所有已打开的端口。-p
:显示对应的进程id。-n
:用数字显示对应的端口,不用别名显示。- 常用端口:http:80,https:443,mysql:3306,ssh:22
-t
:显示所有TCP协议端口。-u
:显示所有UDP协议端口。- 注意:
netstat
一般会配合管道符命令grep
来查看特定进程的端口信息。 例如:netstat -anptu | grep mysql
示例:
查看当前系统中已打开的TCP协议端口:netstat -anptu tcp
查看当前系统中是否已打开3306端口:netstat -anptu | grep '3306'
查看当前系统中是否已打开http的服务:netstat -anptu | grep 'http'
1.6 查看系统监听端口 – lsof
命令格式: lsof
-i
说明:lsof(list open files)是一个列出当前系统打开文件的工具,可以查看系统中正在使用端口的详细信息。
命令说明:
lsof -i
:如果不给出条件,则默认显示所有进程打开的所有。lsof -i:3306
:列出使用端口3306的进程信息。- 提示:在Linux中启动软件时,会出现因为端口被占用而无法启动的情况,这个时候就需要我们用
lsof -i
命令查看 安装软件要使用的端口 是否被占用。
示例:
- 查看系统中已打开的进程端口:
lsof -i
- 查看系统中3306的端口是否已打开:
lsof -i:3306
- 查看系统中http的服务器端口是否已打开:
lsof -i:80
【练习】
- 通过netstat 命令查看 22端口是否有开启。
- 通过lsof命令查看22端口是否有被占用。
【使用场景】
- 当我们去启动某个应用程序时,该应用程序的端口有可能被其他程序所占用。
- 那么此时就可以通过netstat 或者 lsof 查看对应的端口被谁占用了。
- 然后关闭对应的进程,重新启动要启动的应用程序即可。
1.7 查看日志信息命令-- head(头)
日志:是一个一个普通的文本文件,文件里写的是软件运行过程的信息,如果软件出问题,在日志文件找出错误原因。
命令格式: head 文件名
命令说明:
- 默认显示日志文件有前10行内容。
head -20 文件名
: 显示日志文件的前20行内容。
1.8 查看日志信息命令–tail(尾)【重要】
命令格式:tail 文件名
命令说明:
- 默认显示日志文件最后10行内容。
tail -15 文件名
:显示日志文件最后15行内容。tail -f 文件名
:实时显示日志的文件信息**(常用)**。
示例:
- tail -30 log.log:查看当前目录下log.log文件的最后30条信息。
- tail -f log.log:实时查看当前目录下log.log文件的日志信息。
工作中使用的场景:
当测试发现问题时,需要去查看后台的日志信息,具体操作步骤:
- 通过
tail -f 日志文件名
(实时打开对应的日志文件并查看) - 操作系统复现对应的问题(此时会将操作中出现错误的日志信息打印到
tail -f
的查看窗口中)
通过tail实时监控文件的变化
首先,实时监控:tail -f a.txt
;然后,不停的向文件写入内容:ping www.baidu.com > a.txt
。
1.9 查看操作系统信息
cat /proc/version
说明:查看当前操作系统版本信息。
cat /etc/issue
说明:查看版本当前操作系统发行信息。
2 用户权限和管理
2.1 权限的基本概念
Linux系统中文件和目录的权限有以下几种:
权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | excute | x | 1 |
无权限 | - | 0 |
2.2 Linux文件 / 目录权限查看
Linux中可以通过 ls –l
来查看文件或目录的权限。
又如:
2.3 修改用户权限chmod——字母法
字母法命令格式:chmod u+rwx 文件名
用户类型说明:
u
:表示文件所属用户。(user)g
:表示文件所属的用户组。(group)o
:表示其他用户。(other)a
:表示所有用户。(all)
权限设置说明:
+
:增加权限。-
:撤消权限。=
:设定权限。
2.4 修改用户权限chmod-数字法【重点】
数字法命令格式:chmod 755 文件名
命令说明: 755这三个数字分别表示的是 文件拥有者权限 / 用户组权限 / 其他用户权限
权限对照表:
- 777:所有用户都有读、写、执行(rwx)权限
- 666:所有用户都有读、写权限
- 555:所有用户都有读、执行权限
- …
- 7:读、写、执行
- 6:读、写
- 5:读、执行
- 4:读
- 3:写、执行
- 2:写
- 1:执行
【练习】修改文件的权限
-
创建abc.txt文件,将该文件的权限改成:拥有者-读写执行、用户组-读写、其他用户-读写。
答:(1)字母法:先touch a.txt
,再ls -l abc.txt
,然后chmod u=rwx,g=rw,o=rw abc.txt
;
(2)数字法:chmod 766 abc.txt
。 -
通过数字法修改abc.txt文件权限为:拥有者-读写执行、用户组-读执行、其他用户-读执行。
答:先ls -l a.txt
,再chmod 755 abc.txt
。
2.5 用户管理——新增账户、查看登录账户
新增用户:useradd 用户名
命令说明:
useradd admin123
:创建一个普通账户admin123。useradd -g root admin2
:创建用户admin2,并指定用户的组为root组。- 查看登录账户:
who
。 - 删除用户,把用户目录都删除:
userdel -r 用户名 -r
选项说明:
- -q或–count:只显示用户的登录账号和登录用户的数量。
- -u或–heading:显示列标题。
2.6 用户管理——切换用户、设置用户密码
切换用户: su – 或者 su 用户名
(switch user)
命令说明:
su -
:切换到root用户。su 用户名
:切换到指定用户下。- 注意:由普通用户切换到其他用户时,需要输入密码。
- 设置密码:
passwd
或者passwd 用户名
。
命令说明:
- passwd:用于设置当前用户的密码
- passwd 用户名 : 用于设置指定用户的密码 (执行命令的用户必须为root)
2.7 退出登录账户
命令格式:exit
命令说明:
- 如果是图形界面,退出当前终端。
- 如果是使用ssh远程登录,退出登陆账户。
- 如果是切换后的登陆用户,退出则返回上一个登陆账号。
【练习】增加用户并设置对应的密码
-
增加一个名为 user001的用户。
答:useradd user001
-
修改user001用户的密码为 ack??123。
答:sudo passwd user001
ack??123
-
切换到user001用户下。
答:su user001
-
退出user001登陆用户。
答:exit
,sudo userdel -r user001
。
3 其他常用命令
3.1 查找文件命令 --find【重点】
grep
:找文件里面的内容。
find
:找硬盘中某个文件。
命令格式:find [路径] –name 文件名
命令说明:
- 路径省略掉表示在当前目录下查找文件。
- 文件名可以通过通配符来表示。
案例:
find . -name test.sh
查找当前目录下所有名为test.sh的文件。find . -name '*.sh'
查找当前目录下所有后缀为.sh的文件。find . -name 'abc*.sh'
查找当前目录下所有开头为abc的.sh文件。
3.2 软链接 -ln -s
命令格式:ln –s 源文件 链接文件
(s:soft)
命令说明:
- 软链接只是指向源文件的一个链接,类似于windows的快捷方式。
- 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用。
- 软链接可以链接目录。
硬链接简介(只有Linux有硬链接,Windows没有):【了解】
- ln命令不带 -s 参数时,创建的是硬链接。
- 硬链接的文件大小与源文件相同,即使删除源文件,链接文件依然存在。
软链接和硬链接的区别:
- 软链接的源文件被删除后,链接文件失效,没有意义。
- 硬链接的源文件被删除后,链接文件还存在,链接文件的大小与源文件的大小一致。
- 硬链接只能是普通文件,不能是文件夹。
- 软链接可以是文件,也可以是目录。
3.3 打包和压缩 – 打包 / 解包
打包:把多个变为一个;解包:把一个提取为多个。单纯是打包和解包,不是压缩。
说明:打包和压缩命令主要用于备份系统中的相关文件。
打包命令:tar -cvf 打包文件.tar 被打包的文件/路径
解包命令:tar -xvf 打包文件.tar
tar命令常用选项说明:
-c
:创建打包文件。(create)- -v:列出归档解档的详细过程,显示进度。(verbose:详细信息,进度)
- -f:指定档案文件名称,f后面一定时.tar文件,所以必须放选项最后。(file)
- -t:列出档案中包含的文件。
- -x:解开档案文件。(extract:提取,解出)
3.4 打包和压缩 – 压缩/解压缩(gzip)【重点】
说明:tar 与 gzip 命令结合使用实现文件 打包、压缩,压缩后的扩展名为 xxx.tar.gz
。
gzip命令格式: gzip [选项] 被压缩文件
gzip选项说明:
-r
:压缩所有子目录。-d
:解压。
注意:实际应用是在tar 选项中增加一个-z选项来调用gzip实现打包和压缩的过程。
- 压缩文件:
tar -zcvf 打包文件.tar.gz 被压缩的文件或路径
-z
:调用gzip实现打包和压缩的过程。- 解压缩文件:
tar -zxvf 打包文件.tar.gz
- 解压缩文件到指定目录:
tar -zxvf 打包文件.tar.gz -C 目标路径
3.5 打包和压缩 – 压缩/解压缩(biz2)
说明:tar 与 biz2 命令结合使用实现文件 打包、压缩,压缩后的扩展名为 xxx.tar.bz2
。
注意:实际应用是在tar 选项中增加一个-j选项来调用biz2实现打包和压缩的过程。
- 压缩文件:
tar -jcvf 打包文件.tar.bz2 被压缩的文件或路径
- 解压缩文件:
tar -jxvf 打包文件.tar.bz2
3.6 打包和压缩 – 压缩/解压缩(zip/unzip)
说明:通过zip压缩文件不需要指定后缀名。
命令格式:
- 压缩文件:
zip [-r] 压缩文件名 被压缩的文件
- 解压缩文件:
unzip -d 解压后的目录 打包文件.zip
【练习】打包和压缩
- 在/opt目录下创建test目录,并在test目录下新建以下几个文件: a.txt、b.txt、c.txt。
答:cd /opt
,sudo mkdir test
,cd /opt/test
,touch a.txt b.txt c.txt
。
- 通过tar命令将 test目录下的文件打包到 test.tar 文件中。
答:sudo tar -cvf test.tar *.txt
。
- 通过tar命令的-z选项(gizp)来压缩test目录,然后解压缩对应的文件。
答:压缩:sudo tar -zcvf test.tar.gz *.txt
;解压:sudo mkdir abc
,sudo tar -zxvf test.tar.gz -C abc/
。
- 通过zip 和 unzip来对test目录进行压缩和解压缩。
答:压缩:sudo zip -r test.zip *.txt
;解压:sudo mkdir 123
,sudo unzip -d 123/ test.zip
。
4 vi 编辑器
目标:会打开,会写,会保存。
4.1 vi编辑器介绍和三种模式
说明:
- vi编辑器是Linux系统下的命令行工具。
- vi和vim是同一个编辑器,是编辑神器。
- vi可以对linux下的文件内容进行新增、修改、删除、替换等操作。
- vi编辑器也可以用来创建文件。
- vi编辑器不能对文件进行排版。
vi 编辑器的三种模式:
命令行模式:通过对应的快捷键或命令来管理文件。(快捷键)
插入模式:在插入模式下主要是用来对文件的增加、修改操作。(编辑)
末行模式:主要是用来保存文件或退出文件。(保存)
4.2 vi编辑器三种模式的切换
- 首次进入到vi编辑器使用的是命令行模式;
- 可以通过i、I、a、A进入到插入模式。(insert),在插入模式中按ESC键可以回到命令行模式。
- 可以通过shift+:进入末行模式。
在末行模式可以通过以下快捷键来进行操作:
w
:表示保存文件并回到命令行模式。q
:表示退出vi编辑器。!
:表示强制。wq!
:表示强制保存并退出vi编辑器。
示例:
4.3 vim基本操作
- 打开文件
- 编辑
- 修改
- 适当使用快捷键(命令模式下使用)【yy:复制;p:粘贴;dd:剪切,如果只剪切不粘贴,变成删除】
- 保存
示例: