系列文章目录
提示:请提前了解本章总体内容,点击快捷导航
文章目录
前言
提示:总结软件测试岗位,必会的Linux操作系统命令
本人将耗费一定的心血,完成这篇文章的著作,如果你目前要往测试岗位方向走,可以参考此篇文章,你将对Linux操作系统有一个充分的认识
2022.06.22 敬上
一、Linux 基础知识
1. 命令行的标识符
[root@localhost /]#
root 当前用户
@ 分割作用,并无实际含义
localhost 当前主机名
/ 当前目录
# 超级管理员 (如果是普通用户,即会显示 $)
2. 目录结构
/ 根目录
/etc 存放系统和应用程序的配置文件
/usr 存放应用程序文件
/home 普通用户的家目录
/boot 存放系统的内核,启动时所需的文件
/bin 存放普通用户和系统管理员所需的命令(/var/bin)
/sbin 存放超级管理员 root 用户的命令(/var/sbin)
/root root用户的家目录
/tmp 临时文件
/var 应用程序的数据、日志、临时文件
二、Linux日常操作
1. Tab 按键
自动补全,对于一些不知道完整的目录、命令,可快速补全未完成的指令
按 Tab 健,自动补全
注意:剩下唯一可选择的,才能自动补全,例如more,系统中,mor 最后一个可选择项是 more,因此可以自动补全
[root@localhost ~]# mor
[root@localhost ~]# more
双击 Tab 健,查看与之匹配的所有指令、目录
[root@localhost ~]# mk
[root@localhost ~]# mk
mkdict mkfs mkfs.ext4 mklost+found
mkdir mkfs.btrfs mkfs.minix mknod
mkdumprd mkfs.cramfs mkfs.xfs mkswap
mke2fs mkfs.ext2 mkhomedir_helper mktemp
mkfifo mkfs.ext3 mkinitrd
目录的补全
[root@localhost java]# ls
apache-tomcat-9.0.45 jdk1.8.0_40
apache-tomcat-9.0.45.tar.gz JDK-8u40-linux-x64.tar.gz
[root@localhost java]# cd apache
[root@localhost java]# cd apache-tomcat-9.0.45
2. clear 清屏
对于操作了大量的命令,窗口可能会烦杂,这个时候可以使用clear,快速清屏
快捷键:Ctrl + L
[root@localhost ~]# cd .[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# cd /[root@localhost /]# ls
bin dev home lib64 media opt root sbin sys tmp var
boot etc lib linux.txt mnt proc run srv test usr
[root@localhost /]# cd usr
[root@localhost usr]# ls
bin etc games include java lib lib64 libexec local sbin share src tmp
[root@localhost usr]# cd etc
[root@localhost etc]# ls
[root@localhost etc]# cd ../[root@localhost usr]# ls
bin etc games include java lib lib64 libexec local sbin share src tmp
[root@localhost usr]# cd java
[root@localhost java]# ls
apache-tomcat-9.0.45 jdk1.8.0_40
apache-tomcat-9.0.45.tar.gz JDK-8u40-linux-x64.tar.gz
[root@localhost java]# cd apache-tomcat-9.0.45
[root@localhost java]# clear
3. Ctrl + C 强制退出
如果在Linux打开了,持续运行并持续输出,全屏模式的程序,可以强制退出,并返回到指令状态
[root@localhost java]# ping www.baidu.com
PING www.a.shifen.com(14.215.177.39)56(84) bytes of data.64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=1 ttl=56 time=12.4 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=2 ttl=56 time=6.58 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=3 ttl=56 time=6.90 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=4 ttl=56 time=7.85 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=5 ttl=56 time=10.6 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=6 ttl=56 time=11.7 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=7 ttl=56 time=11.2 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=8 ttl=56 time=37.5 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=9 ttl=56 time=31.7 ms
64 bytes from 14.215.177.39(14.215.177.39): icmp_seq=10 ttl=56 time=8.09 ms
^C
--- www.a.shifen.com ping statistics ---33 packets transmitted,33 received,0% packet loss, time 32069ms
rtt min/avg/max/mdev =6.584/31.494/151.414/34.922 ms
[root@localhost java]#
4. man 帮助
如果你对某个命令,不知道怎么使用,可以使用man + 命令,可以调出帮助文档,不过,都是英文文档,需要具备一定的英文阅读能力
[root@localhost java]# man clear
clear(1) General Commands Manual clear(1)
NAME
clear - clear the terminal screen
SYNOPSIS
clear
DESCRIPTION
clear clears your screen if this is possible. It looks in the environment for
the terminal type and then in the terminfo database to figure out how to clear
the screen. Some terminals can clear also their scrollback buffer to prevent
access to potentially sensitive data. If the terminfo entry for the terminal
type contains extended capability E3, clear will use it to clear the scroll‐
back buffer.
clear ignores any command-line parameters that may be present.
SEE ALSO
tput(1),terminfo(5)
This describes ncurses version 5.9(patch 20130511).clear(1)
Manual page clear(1) line 1(press h for help or q to quit)
5. q 退出阅读模式
如果你进入了阅读模式,即查看帮助,以及查看文件内容等,可以按q健,退出阅读模式
clear(1) General Commands Manual clear(1)
NAME
clear - clear the terminal screen
......
This describes ncurses version 5.9(patch 20130511).clear(1)
Manual page clear(1) line 1(press h for help or q to quit)
按 q ,即可返回
[root@localhost java]#
6. pwd 查看当前路径
查询当前所在目录的绝对路径
[root@localhost conf]# pwd
/usr/java/apache-tomcat-9.0.45/conf
7. ls 显示当前目录所有文件
查看当前目录下的所有文件
如需查看隐藏文件,加-a
如需查看文件的详细信息,权限,大小,类型,加-l
(以上两个可以合并,输入 ll 即可)
可以查看某个目录下的文件
ls -la 路径
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc .mysql_history .tcshrc
...bash_history .bash_profile .cshrc .rnd
[root@localhost ~]# ls -la
总用量 44
dr-xr-x---.2 root root 1696月 1609:20.
dr-xr-xr-x.18 root root 2736月 1517:38..-rw-------.1 root root 12166月 1410:07 anaconda-ks.cfg
-rw-------.1 root root 88766月 1610:10.bash_history
-rw-r--r--.1 root root 1812月 292013.bash_logout
-rw-r--r--.1 root root 17612月 292013.bash_profile
-rw-r--r--.1 root root 17612月 292013.bashrc
-rw-r--r--.1 root root 10012月 292013.cshrc
-rw-------1 root root 4446月 1511:13.mysql_history
-rw-------1 root root 10246月 1510:33.rnd
-rw-r--r--.1 root root 12912月 292013.tcshrc
[root@localhost ~]# ll /usr/java
总用量 180380
drwxr-xr-x 9 root root 2206月 1510:22 apache-tomcat-9.0.45-rw-r--r--1 root root 114869646月 1415:07 apache-tomcat-9.0.45.tar.gz
drwxr-xr-x.8101432552月 112015 jdk1.8.0_40
-rw-r--r--.1 root root 1732181276月 1414:46 JDK-8u40-linux-x64.tar.gz
8. cd 切换目录
进入其他路径
cd 绝对路径
cd 相对路径
绝对路径和相对路径的区别就是,绝对路径是以 / 开头
cd …/ 倒退一级目录
cd …/…/ 倒退两级目录
[root@localhost ~]# cd /[root@localhost /]# cd /root
[root@localhost ~]# cd /[root@localhost /]# cd usr
[root@localhost usr]#
注意,下面的话,直接cd 并回车,会直接进入
用户的家目录,即 /root 标识符显示为 ~
linux的根目录为 /
[root@localhost usr]# cd
[root@localhost ~]# cd /[root@localhost /]# cd /root
[root@localhost ~]#
9. history 查看命令行操作记录
[root@localhost ~]# history
1 cd /etc/default2 ls
3 ls -a
4 vi console-setup
5 vi /boot/grub
6 ls
7 cd /boot
8 ls
9 cd grub
10 ls
11 ls -a
12 vi /etc/sysconfig/network-scripts//ifcfg-ens33 13 systemctl restart network
14 ls
15 ip adder
16 ip addr
查看最新的10行,history 10
[root@localhost ~]# history 10807 cat /etc/group
808 chgrp -R test002 1111.txt
809 ll
810 ln -s 1111.txt hi
811 ll
812 vi hi
813 vi 1111.txt
814 vi hi
815 history
816 history 10
10. 开启/关闭/重启/状态防火墙
开启防火墙
[root@localhost ~]# systemctl start firewalld
关闭防火墙
[root@localhost ~]# systemctl stop firewalld
重启防火墙
[root@localhost ~]# systemctl restart firewalld
查看防火墙状态
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded:loaded(/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active:active(running) since 四 2022-06-2317:24:31 CST;2s ago
Docs: man:firewalld(1)
Main PID:7978(firewalld)
CGroup:/system.slice/firewalld.service
└─7978/usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
6月 2317:24:31 localhost.localdomain systemd[1]: Starting firewalld - dynamic fire....6月 2317:24:31 localhost.localdomain systemd[1]: Started firewalld - dynamic firew....
Hint: Some lines were ellipsized, use -l to show in full.
11. 程序 设置/关闭 开机自启动
设置开机自启动
[root@localhost ~]# systemctl disable firewalld
关闭开机自启动
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
12. 系统关机/重启
立即关机
[root@localhost ~]# shutdown -h now
10分钟之后定时关机
[root@localhost ~]# shutdown -h 10
中午12点准时关机
[root@localhost ~]# shutdown -h 12:00
立即重启
[root@localhost ~]# reboot
10分之后重启
[root@localhost ~]# shutdown -r 10
取消定时
[root@localhost ~]# shutdown -C
13. 开启/重启/关闭网络
开启网络
[root@localhost ~]# systemctl start network
关闭网络
[root@localhost ~]# systemctl stop network
重启网络
[root@localhost ~]# systemctl restart network
三、文件的操作
1. mkdir 新建文件夹
mkdir 文件名(其实这里的文件名是填写路径参数)
只不过是默认是相对路径,即当前路径
例如,我想直接往usr/java创建文件夹,当前目录但是又不在此路径
即可:mkdir /usr/java/test
即,创建了一个位于 /usr/java/ 下的文件夹,文件名为 test
创建多层级文件夹,加参数 -p
在当前路径创建文件夹 test
[root@localhost ~]# mkdir test
[root@localhost ~]# ls
anaconda-ks.cfg test
在 usr/java 路径下创建test
[root@localhost ~]# mkdir /usr/java/test
[root@localhost ~]# cd /usr/java
[root@localhost java]# ls
apache-tomcat-9.0.45 jdk1.8.0_40 test
apache-tomcat-9.0.45.tar.gz JDK-8u40-linux-x64.tar.gz
在家目录 ~ 同时创建同级目录 a b c d
[root@localhost ~]# mkdir a b c d
[root@localhost ~]# ls
a anaconda-ks.cfg b c d test
在家目录 ~ 创建一个四层级文件夹 a1/b2/c3/d4
[root@localhost ~]# mkdir -p a1/b2/c3/d4
[root@localhost ~]# ls
a a1 anaconda-ks.cfg b c d test
[root@localhost ~]# cd a1
[root@localhost a1]# ls
b2
[root@localhost a1]# cd b2
[root@localhost b2]# ls
c3
[root@localhost b2]# cd c3
[root@localhost c3]# ls
d4
2. rmdir 删除空文件夹
默认是删除空文件夹,mkdir 文件路径
删除空文件夹
[root@localhost ~]# ls
a a1 anaconda-ks.cfg b c d test
[root@localhost ~]# rmdir a
[root@localhost ~]# ls
a1 anaconda-ks.cfg b c d test
[root@localhost ~]#
3. rm 删除文件夹/文件
如果文件里面有内容,需要加参数:-rf 即强制删除
强制删除
[root@localhost ~]# rm a1
rm: 无法删除"a1": 是一个目录
[root@localhost ~]# rm -rf a1
[root@localhost ~]# ls
anaconda-ks.cfg b c d test
4. mv 剪切文件(移动文件 / 重命名)
mv 当前文件 新的路径文件(移动)
即:mv test.txt /usr/text.txt
mv 旧文件 新文件(重命名)
即:mv test.txt pass.text
重命名
[root@localhost ~]# ls
anaconda-ks.cfg b c d test
[root@localhost ~]# mv test test10086
[root@localhost ~]# ls
anaconda-ks.cfg b c d test10086
移动
注意:移动到新的文件夹,后面必须加 / ,否则则是重命名
[root@localhost ~]# ls
anaconda-ks.cfg b c d test10086
[root@localhost ~]# mv test10086 b/[root@localhost ~]# ls
anaconda-ks.cfg b c d
[root@localhost ~]# cd b
[root@localhost b]# ls
test10086
5. cp 复制文件
命令:cp 当前文件 新的文件(路径)
即:cp text.txt /usr/java
又或:cp text.txt /usr/java/test10086.txt (复制+改名)
当文件夹有内容时,需要加参数 -r 才能完整复制
在当前路径复制test.txt 生成新的pass.txt
[root@localhost ~]# ls
anaconda-ks.cfg b c d test.txt
[root@localhost ~]# cp test.txt pass.txt
[root@localhost ~]# ls
anaconda-ks.cfg b c d pass.txt test.txt
用绝对路径,复制到/usr/java里
[root@localhost ~]# ls
anaconda-ks.cfg b c d pass.txt test.txt
[root@localhost ~]# cp pass.txt /usr/java
[root@localhost ~]# ls /usr/java
apache-tomcat-9.0.45 jdk1.8.0_40 pass.txt
apache-tomcat-9.0.45.tar.gz JDK-8u40-linux-x64.tar.gz test
复制有内容的文件夹
[root@localhost ~]# ls
anaconda-ks.cfg b c d pass.txt test.txt
[root@localhost ~]# ls b
test10086 test10086.txt
[root@localhost ~]# cp -r b d/[root@localhost ~]# ls d
b
[root@localhost ~]# ls b
test10086 test10086.txt
6. find 查找文件
命令:find 路径 -name 文件名
对于需要模糊搜索的
可以使用统配符
星号x 即:剩下 全部
问号? 占位
例如:
‘name?’,只会搜索出namea,nameb…
‘name*’,不管剩下有多少位,都可以搜索出来,例如:nametest,namee…
在根目录 / ,可以最大化查询所需的文件
[root@localhost ~]# find /-name jdk1.8.0_40
/usr/java/jdk1.8.0_40
模糊查询
[root@localhost ~]# find /-name 'apache-tomcat-9.0.45*'/usr/java/apache-tomcat-9.0.45.tar.gz
/usr/java/apache-tomcat-9.0.45
[root@localhost ~]# find /-name 'apache-tomcat-9.0.4?'/usr/java/apache-tomcat-9.0.45
7. touch 创建文件
一般用来创建一些配置文件,init,txt,conf等
命令:touch 文件路径
例如:touch test.txt
例如:touch /usr/java/pass.conf
[root@localhost ~]# touch boss.conf
[root@localhost ~]# ls
anaconda-ks.cfg b boss.conf c d pass.txt test.txt
[root@localhost ~]# touch /usr/java/testConf.init
[root@localhost ~]# ls /usr/java
apache-tomcat-9.0.45 jdk1.8.0_40 pass.txt testConf.init
apache-tomcat-9.0.45.tar.gz JDK-8u40-linux-x64.tar.gz test
8. cat 查看
会把文件的所有内容,全部展示出来
[root@localhost ~]# cat test.txt
12...99100
如果要显示行号,可以加参数:-n
[root@localhost ~]# cat -n test.txt
1122334455667788991010
9. more 分页查看
[root@localhost ~]# more test.txt
123...2425--More--(46%)
往下小幅度翻页 :Enter 回车键
往下大幅度翻页:space 空格键
显示当前行号,以及文件名
需要输入冒号+f,即 :f
2425
“test.txt”第 25 行
10. less 单行查看
less相比于more,功能更多,但是也类似于vi操作
比如,查找,通过方向键盘操作,g返回到第一行,G返回到最后一行等
上下移动:
k向前 (可按向上 ↑ 的键盘)
j 向后 (可按向下 ↓ 的键盘)
搜索 / 和 ?
向前面搜索: / 搜索内容
向后面搜索: ? 搜索内容
【从 3 这里,往后面查询包含8的】
123
?8
【从 23 这里,往前面查询包含9的】
...20212223/9
当查询出相对应的结果时,可以使用 n / N,切换行
n 向前切换
N 向后切换
如果你想快速返回到第一行,或者,快速返回到最后一行
g 快速返回到第一行
G 快速返回到最后一行
11. head 查看头部
查看文件内容,从头部开始查看
如果想查看前几行,参数:-n 数字
如果想查看前几个字节,参数:-c 数字
把文件名也显示出来,参数:-v (默认是-q 隐藏)
默认显示前 10行
[root@localhost ~]# head test.txt
12...8910
显示前20行,并显示文件名
[root@localhost ~]# head -v -n 20 test.txt
==> test.txt <==123...1920
显示前5个字节,并隐藏文件名(默认为隐藏,这里作为演示效果)
[root@localhost ~]# head -q -c 5 test.txt
123
12. tail 查看尾部
主要可以用来实时查看动态文件
用法跟head差不多,只不过是从尾部开始读取
循环读取,需要加-f参数即可
刷新间隔,可以加-s 数字,表示每多少秒刷新一次
查看后20行的数据
[root@localhost ~]# tail -20 test.txt
3132...4950
通过-f参数,并且刷新间隔为3秒,实时查看
注意:如果要退出,按q和esc是没有效果的,这个需要强制退出,ctrl + c
[root@localhost ~]# tail -f -s 3 test.txt
四、vi / vim 操作
1. 说明
vi 是系统自带的文本编辑器,这里以vi作为演示效果,而vim的话,是需要下载安装的,vim 比 vi 更加强大,视觉效果更好,但是基本操作完全一致
2. 键盘图
通过此键盘图,可以了解到linux系统,文本编辑器,但是非常强大的,只要使用得当,可以极大提高效率,不过,日常使用的,也就那么几个,不必全部学会,只需掌握日常技能
3. 常用命令
在光标所在处,按 x,即删除该字符
[root@localhost ~]# vi test.txt
12(光标)4
在光标前进入编辑模式,按 i
[root@localhost ~]# vi test.txt
12(光标)34
在光标后进入编辑模式,按 a
[root@localhost ~]# vi test.txt
123(光标)4
在光标后所在行,新建一行,并把光标移到下方,按 o
[root@localhost ~]# vi test.txt
123abcdefsk(光标)ksks
4
[root@localhost ~]# vi test.txt
123abcdefskksks
(光标)4
左右上下移动光标
h 左 (←)
j 下 (↓)
k 上 (↑)
l 下 (↓)
你会发现这四个字母,在键盘上,处于相隔一列
上下翻页
Ctrl + b 向上翻页 (也可按键盘 PgUp)
Ctrl + f 向上翻页 (也可按键盘 PgDn)
快速跳行
跳到首行 gg
跳到尾行 G
跳到某行:数字G,
例如:
10G,就是跳到第10行
如果想在单行的头部,单行的尾部,快速跳转
行的尾部 $
行的头部 ^
删除
删除光标所在行,dd
删除多行,数字 dd
例如:删除光标所在行的后5行,即 5dd
从光标处删除到单行尾部,即 d$
从光标处删除到单行头部,即 d^
撤销
撤销刚才的操作,u
复制
复制单行,yy
复制多行,从光标往下,数字 yy
例如:复制光标所在行的后10行,10yy
粘贴
粘贴刚才复制的,p
显示/隐藏行号
需要进入底线模式,即按冒号
显示行号,并输入set nu
隐藏行号,并输入set nonu
...232324242525:set nu
...232425:set nonu
查找
向下查找 某个字符,即 /abc
并按回车,开始查找
按 n 向下移动到下个目标
按 N 向上移动到上个目标
向上查找 某个字符,即 ? abc
替换
查找某个字符,并替换
:s%/某个字符/替换的字符/g
例如,把20替换成999
:%s/20/999/g
从某行开始,到某行结束,找出某个字符,并进行替换
(注意:需要输入冒号进入命令模式)
:数字,数字s/某字符/新的字符/g
例如, 从第1行,到,30行,找出20,并替换成999
即 :1,30s/20/999/g
如果需要进行确认,是否要替换,可以加 c
例如:
:%s/10/999/gc
replace with 888(y/n/a/q/l/^E/^Y)?
y 替换
n 不替换
保存/退出
需要按冒号进入命令模式
:q 退出(前提是不修改文件内容)
:q! 强制退出不保存(修改了文件内容)
:w 保存
组合使用,wq 保存并退出
五、设置静态/自动获取ip
可以当作了解,为什么要设置好服务器的ip?
因为服务器的ip,一般来说,最好不要变更
比如,某个网站www.xxxx.com,与ip xx.xx.xx.xx 进行绑定
如果服务器的ip发生了变化,就会导致网站无法访问
查看ip,即 ip addr
[root@localhost ~]# ip addr
1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:79:e6:44 brd ff:ff:ff:ff:ff:ff
(下面这里即为ip地址)
(下面这里即为ip地址)
(下面这里即为ip地址)
inet 192.168.88.143/24 brd 192.168.88.255 scope global noprefixroute dynamic ens33
valid_lft 6996sec preferred_lft 6996sec
inet6 fe80::b3f9:dafa:4d06:1cb5/64 scope link noprefixroute
valid_lft forever preferred_lft forever
查看网关,ip route
[root@localhost ~]# ip route
(下方这里即为网关)
(下方这里即为网关)
(下方这里即为网关)
default via 192.168.88.1 dev ens33 proto dhcp metric 100192.168.88.0/24 dev ens33 proto kernel scope link src 192.168.88.143 metric 100
配置ip的配置,ifcfg-ens33
我们通过find来查找根目录,即可
[root@localhost ~]# find /-name 'ifcfg-ens33'/etc/sysconfig/network-scripts/ifcfg-ens33
然后,编辑
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
(下方这里,bootproto,自动获取dhcp,静态static)
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="fb9e9de2-227e-4435-980f-6767bcff2ecc"
DEVICE="ens33"
(这里要选择yes)
ONBOOT="yes"
(下方添加静态ip的信息)
IPADDR=192.168.88.106 #标识唯一主机
NETMASK=255.255.255.0 #确定网络号、主机号
GATEWAY=192.168.88.1 #内网和外网的桥梁(和ip处于同一个网络)
DNS1=114.114.114.114 #域名解析
保存并退出之后,重启一下网络
systemctl restart network
好了,就可以通过ip addr,重新查看一下ip是否变更即可
如何测试,配置的ip信息,是否有误呢?
可以通过ping的方式
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com(14.215.177.38)56(84) bytes of data.64 bytes from 14.215.177.38(14.215.177.38): icmp_seq=1 ttl=56 time=10.2 ms
64 bytes from 14.215.177.38(14.215.177.38): icmp_seq=2 ttl=56 time=17.9 ms
64 bytes from 14.215.177.38(14.215.177.38): icmp_seq=3 ttl=56 time=6.93 ms
六、筛选 grep
对于有时候,我们在使用linux查询命令的时候,查出来的结果,我们想进行筛选,筛选出我们想要的数据,就可以用到grep
在当前目录下,查找出所有txt中,文件内容包含 1
[root@localhost ~]# grep 1*txt
123.txt:111123.txt:123
test.txt:11
test.txt:1
test.txt:13
test.txt:14
在当前目录下,在test.txt 文件内,文件内容包含 2
[root@localhost ~]# grep 2 test.txt
2212223242542
我们以abc.txt作为演示
[root@localhost ~]# cat abc.txt
test00001
boss2222
boss333
keep999
kepp999
hello01
helloo2
查找出,单行头部,包含boss的
[root@localhost ~]# grep ^boss abc.txt
boss2222
boss333
查找出,单行尾部,包含99的
[root@localhost ~]# grep 99$ abc.txt
keep999
kepp999
查找出所有txt文件,并且,文件内容包含1
[root@localhost ~]# find -name '*.txt'| xargs grep 1./test.txt:11./test.txt:1./test.txt:13./test.txt:14./test.txt:15./test.txt:16./test.txt:17./test.txt:18./test.txt:19./test.txt:21./test.txt:31./test.txt:41./123.txt:111./123.txt:123./abc.txt:test00001
./abc.txt:hello01
查找出所有txt文件,并且,文件名包含1
[root@localhost ~]# find -name '*.txt'| grep 1./1111.txt
./123.txt
七、rpm / yum 安装卸载软件包
1. rpm
主要直接操作,以 .rpm 后缀的文件
安装rpm会有依赖关系验证
比如,你要安装A包,但是A包跟B包产生依赖,必须安装B包,才能安装A包,所以,你将会安装失败,但是rpm会抛出一条错误提示,提示你应该先安装某些依赖包
安装 rpm -ivh
[root@localhost ~]# rpm -ivh xxxxx.rpm
强制安装 --force,忽略依赖警告 --nodeps
[root@localhost ~]# rpm -ivh xxxxx.rpm --nodeps --force
查询有无安装 rpm -q 程序名
[root@localhost ~]# rpm -q httpd
httpd-2.4.6-97.el7.centos.5.x86_64
查询安装路径 rpm -ql 程序名
[root@localhost ~]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
...
卸载 rpm -e 程序名
[root@localhost ~]# rpm -e xxx
2. yum
底层原理,还是一样,管理rpm包
可以在线安装,并且自动下载安装依赖,你无需解决,每个包之间的依赖关系
也可以在线更新包
下载 某个程序
注意,下载完之后,会提示你 [y/d/n],选择y时会安装,选择d不安装,选择n取消
[root@localhost ~]# yum install xxx
卸载某个程序
[root@localhost ~]# yum remove xxx
列出所有可安装的软件
[root@localhost ~]# yum list
更新某个程序
[root@localhost ~]# yum update xx
更新所有程序
[root@localhost ~]# yum update
显示可更新的程序
[root@localhost ~]# yum check-update
清除缓存的软件包
[root@localhost ~]# yum clean packages
八、zip和tar.gz 解压/压缩
1. zip
常见与window系统的zip包,在linux系统上解压
这个需要单独安装,系统没有自带
yum install unzip zip
解压
[root@localhost ~]# unzip xxx
解压到指定路径 -d 路径
[root@localhost ~]# unzip xxx -d /usr/java/
压缩
[root@localhost ~]# zip -r xxx(这里写目录)
2. tar.gz
常见于linux系统专用包
各种命令字符参照
-c 创建打包文件
-v 显示打包或者解包的详细信息
-f 指定文件名称, 必须放到所有选项后面
-z 压缩或解压缩(.gz)-j 压缩或解压缩(.bz2)-x 解包
-C 解压缩到指定目录
解压
[root@localhost ~]# tar -xzvf xxx.tar.gz
压缩
[root@localhost ~]# tar -czvf xxx
九、用户管理
管理linux系统的用户帐号,创建完用户,默认会在
/home创建一个目录,目录名即为用户名
1. 创建用户 useradd
[root@localhost ~]# useradd xiaomifeng
[root@localhost ~]# cd /home/xiaomifeng/[root@localhost xiaomifeng]#
2. 删除用户 userdel
注意,只有超级管理员,才能删除用户,普通用户没有删除权限
注意,删除帐号之前,如果登录过此帐号,需要查看进程,如果有该用户的进程,需要禁用掉,才能删除成功,另外一个办法是,重启系统
如果要删除该用户在home的目录,加参数:-r
[root@localhost ~]# userdel -r xiaomifeng
[root@localhost ~]# cd /home/xiaomifeng
-bash: cd:/home/xiaomifeng: 没有那个文件或目录
3. 设置/修改用户密码 passwd
[root@localhost ~]# passwd xiaomifeng
更改用户 xiaomifeng 的密码 。
新的 密码:
4. 切换用户 su
[root@localhost ~]# su xiaomifeng
[xiaomifeng@localhost root]$
5. 查看当前所有登录的用户 who
[root@localhost ~]# who
root tty1 2022-06-2311:18
root pts/02022-06-2311:20(x09264.lan
6. 查看所有用户 cat /etc/passwd
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
十、用户组管理
1. 创建用户组 groupadd
[root@localhost ~]# groupadd test99
[root@localhost ~]# cat /etc/group | grep test99
test99:x:1007:
2. 修改用户组 groupmod -n
用法:groupmod [选项] 组 选项:
-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并推出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
[root@localhost ~]# groupmod -n test000 test99
[root@localhost ~]# cat /etc/group | grep test000
test000:x:1007:
把用户添加到某个组 gpasswd -a 用户 组
[root@localhost ~]# gpasswd -a test002 test000
正在将用户“test002”加入到“test000”组中
把用户从某个组移除 gpasswd -d 用户 组
[root@localhost ~]# gpasswd -d test002 test000
正在将用户“test002”从“test000”组中删除
3. 删除用户组 groupdel
[root@localhost ~]# groupdel test000
4. 查看用户属于哪个组 groups
[root@localhost ~]# groups root
root : root
5. 查看所有组 cat /etc/group
[root@localhost ~]# cat /etc/group
root:x:0:ts33
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
十一、文件权限管理
下面是权限字符含义
r 读取(read),权限值 4
w 写(write),权限值 2
x 执行 权限值 1
下面是文件标识符含义
- 普通文件
l 快捷方式的文件(软链接)
d 目录
1. 基础权限认知
[root@localhost ~]# ll
总用量 16-rw-r--r--1 root root 06月 2315:371111.txt
-rw-r--r--1 root root 286月 2315:40123.txt
-rw-r--r--1 root root 06月 2315:372999.txt
-rw-r--r--1 root root 06月 2315:373288.txt
-rw-r--r--1 root root 596月 2315:44 abc.txt
-rw-------.1 root root 12166月 1410:07 anaconda-ks.cfg
-rw-r--r--1 root root 1476月 2315:20 test.txt
我们以1111.txt为案例
普通文件-读写-读-读 root用户 root用户组 日期 文件名
注意:权限分别为:用户的权限 | 组的权限 | 其他人的权限
即对应:rw-r--r-- 权限值为:644
-rw-r--r--1 root root 06月 2315:371111.txt
2. 修改权限 chmod 权限值/权限字符 文件名
[root@localhost ~]# chmod 7771111.txt
[root@localhost ~]# ll
总用量 16-rwxrwxrwx 1 root root 06月 2315:371111.txt
3. 修改文件的用户权限 chown -R 新用户 文件
[root@localhost ~]# chown -R test002 1111.txt
[root@localhost ~]# ll
总用量 16-rwxrwxrwx 1 test002 root 06月 2315:371111.txt
4. 修改文件的组权限 chgrp -R 新的组 文件
[root@localhost ~]# chgrp -R test002 1111.txt
[root@localhost ~]# ll
总用量 16-rwxrwxrwx 1 test002 test002 06月 2315:371111.txt
5. 扩展-软链接(快捷方式)创建
ln -s 文件 快捷名称
[root@localhost ~]# ln -s 1111.txt hi
这个时候vi hi,等同于vi 1111.txt
[root@localhost ~]# ll
总用量 16-rwxrwxrwx 1 test002 test002 06月 2315:371111.txt
lrwxrwxrwx 1 root root 86月 2317:17 hi ->1111.txt
十二、进程
1. 查看所有进程 ps -ef
[root@localhost ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 10011:18?00:00:03/usr/lib/systemd/systemd --switched-ro
root 20011:18?00:00:00[kthreadd]
root 42011:18?00:00:00[kworker/0:0H]
root 62011:18?00:00:00[ksoftirqd/0]
root 72011:18?00:00:00[migration/0]
root 82011:18?00:00:00[rcu_bh]
root 92011:18?00:00:01[rcu_sched]...
2. 配合 grep 筛选
[root@localhost ~]# ps -ef | grep mysql
mysql 11001011:18?00:00:00/bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql 15091100011:18?00:00:07/usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root 84165689017:30 pts/000:00:00 grep --color=auto mysql
3. 结束进程 kill
结束某个进程 kill pid号
[root@localhost ~]# kill 5665
强制结束进程 kill -9 pid号
[root@localhost ~]# kill -95665
十三、查看系统数据
1. 内存
命令,free
可以加以下参数
-b 以字节单位输出结果
-k 以kb单位输出结果
-m 以mb单位输出结果
-g 以 gb单位输出结果
-h 以可读的形式输出
-l 显示高内存,低内存的详细
-s 秒数,每几秒输出一次结果
Mem(内存),Swap(交换分区)
-b
[root@localhost ~]# free -b
total used free shared buff/cache available
Mem:10195804162124021766619504648200192145227776659177472
Swap:214747955202147479552
-k
[root@localhost ~]# free -k
total used free shared buff/cache available
Mem:9956842074246464368008141824643728
Swap:209714802097148
-m
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem:9722026317138628
Swap:204702047
-g
[root@localhost ~]# free -g
total used free shared buff/cache available
Mem:000000
Swap:101
-l
[root@localhost ~]# free -l
total used free shared buff/cache available
Mem:9956842074246464368008141824643728
Low:995684349248646436
High:000
Swap:209714802097148
-h
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem:972M 202M 631M 7.8M 138M 628M
Swap:2.0G 0B 2.0G
–s3
[root@localhost ~]# free -s3
total used free shared buff/cache available
Mem:9956842074566464048008141824643696
Swap:209714802097148
total used free shared buff/cache available
Mem:9956842074806463808008141824643672
Swap:209714802097148
2. 硬盘
用法与内存的差不多,大家以内存的参考即可
命令,df
参数,与内存几乎一致
-h 可读形式
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 475M 0475M 0%/dev
tmpfs 487M 0487M 0%/dev/shm
tmpfs 487M 7.7M 479M 2%/run
tmpfs 487M 0487M 0%/sys/fs/cgroup
/dev/mapper/centos-root 17G 2.3G 15G 14%//dev/sda1 1014M 137M 878M 14%/boot
tmpfs 98M 098M 0%/run/user/0
3. 文件大小
命令,du
du -h 文件(查看某个文件的大小)
[root@localhost ~]# ls
1111.txt 123.txt 2999.txt 3288.txt abc.txt anaconda-ks.cfg hi test.txt
[root@localhost ~]# du -h 1111.txt
4.0K 1111.txt
du -h * (查看当前目录下, 所有文件)
[root@localhost ~]# du -h 1111.txt
4.0K 1111.txt
[root@localhost ~]# du -h *4.0K 1111.txt
4.0K 123.txt
02999.txt
03288.txt
4.0K abc.txt
4.0K anaconda-ks.cfg
0 hi
4.0K test.txt
du -sh 目录(查看目录的大小,注意加参数 s,表示合计)
[root@localhost /]# du -sh /etc
32M /etc
4. 查看端口
命令
natstat -anp | grep 端口号
如果被占用,会显示出相关信息
[root@localhost /]# netstat -anp | grep 3306
tcp 000.0.0.0:33060.0.0.0:* LISTEN 1376/mysqld
[root@localhost /]# netstat -anp | grep 8080[root@localhost /]#
netstat -nultp 查看所有使用的端口
```c
[root@localhost /]# netstat -nultp
Active Internet connections(only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 000.0.0.0:220.0.0.0:* LISTEN 953/sshd
tcp 00127.0.0.1:250.0.0.0:* LISTEN 1403/master
tcp 000.0.0.0:33060.0.0.0:* LISTEN 1376/mysqld
tcp6 00:::22:::* LISTEN 953/sshd
tcp6 00::1:25:::* LISTEN 1403/master
tcp6 00:::443:::* LISTEN 954/httpd
tcp6 00:::80:::* LISTEN 954/httpd
udp 000.0.0.0:680.0.0.0:*751/dhclient
udp 00127.0.0.1:3230.0.0.0:*662/chronyd
udp6 00::1:323:::*662/chro
5. 查看系统负载
命令,top
top 实时更新当前的系统负载情况
top -15:52:44 up 49 min,1 user, load average:0.00,0.01,0.05
Tasks:108 total,1 running,107 sleeping,0 stopped,0 zombie
%Cpu(s):0.0 us,0.3 sy,0.0 ni,99.7 id,0.0 wa,0.0 hi,0.0 si,0.0 st
KiB Mem :995684 total,640524 free,210132 used,145028 buff/cache
KiB Swap:2097148 total,2097148 free,0 used.639556 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
655 root 20030550065805184 S 0.30.70:02.82 vmtoolsd
2992 root 20016209222001556 R 0.30.20:00.02 top
1 root 20012533638842592 S 0.00.40:01.69 systemd
2 root 200000 S 0.00.00:00.00 kthreadd
3 root 200000 S 0.00.00:00.12 kworker/0:04 root 0-20000 S 0.00.00:00.00 kworker/0:0H
5 root 200000 S 0.00.00:00.09 kworker/u256:06 root 200000 S 0.00.00:00.14 ksoftirqd/0
top -n 3 (查看三次刷新之后退出)
[root@localhost /]# top -n 3
top -15:53:50 up 50 min,1 user, load average:0.00,0.01,0.05
Tasks:108 total,1 running,107 sleeping,0 stopped,0 zombie
%Cpu(s):0.3 us,0.3 sy,0.0 ni,99.3 id,0.0 wa,0.0 hi,0.0 si,0.0 st
KiB Mem :995684 total,640692 free,209964 used,145028 buff/cache
KiB Swap:2097148 total,2097148 free,0 used.639724 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9 root 200000 S 0.30.00:00.59 rcu_sched
655 root 20030550065805184 S 0.30.70:02.88 vmtoolsd
1 root 20012533638842592 S 0.00.40:01.71 systemd
2 root 200000 S 0.00.00:00.00 kthreadd
3 root 200000 S 0.00.00:00.12 kworker/0:04 root 0-20000 S 0.00.00:00.00 kworker/0:0H
5 root 200000 S 0.00.00:00.09 kworker/u256:0
top -d 5 (刷新间隔,改为每5秒刷新一次)
[root@localhost /]# top -d 5
top -15:54:32 up 50 min,1 user, load average:0.00,0.01,0.05
Tasks:108 total,1 running,107 sleeping,0 stopped,0 zombie
%Cpu(s):5.9 us,5.9 sy,0.0 ni,88.2 id,0.0 wa,0.0 hi,0.0 si,0.0 st
KiB Mem :995684 total,640588 free,210068 used,145028 buff/cache
KiB Swap:2097148 total,2097148 free,0 used.639620 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20012533638842592 S 0.00.40:01.71 systemd
2 root 200000 S 0.00.00:00.00 kthreadd
3 root 200000 S 0.00.00:00.12 kworker/0:04 root 0-20000 S 0.00.00:00.00 kworker/0:0H
5 root 200000 S 0.00.00:00.09 kworker/u256:0
top -p pid号(根据某个进程的PID号的相关情况)
[root@localhost /]# top -p 1
top -15:54:58 up 51 min,1 user, load average:0.00,0.01,0.05
Tasks:1 total,0 running,1 sleeping,0 stopped,0 zombie
%Cpu(s):0.0 us,0.0 sy,0.0 ni,100.0 id,0.0 wa,0.0 hi,0.0 si,0.0 st
KiB Mem :995684 total,640712 free,209944 used,145028 buff/cache
KiB Swap:2097148 total,2097148 free,0 used.639744 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20012533638842592 S 0.00.40:01.72 systemd
中文翻译
[root@localhost ~]# top
top -14:07:40 up 5:03,1 user, load average:0.00,0.01,0.05
系统运行的时长 1个用户 系统的平均负载 1分钟 5分钟 15分钟(一般不超过0.8)
Tasks:109 total,1 running,108 sleeping,0 stopped,0 zombie
进程 109个进程 1个真正运行 108个休眠 0个停止 0个僵尸进程(父进程已近结束、子进程还在运行的进程)
%Cpu(s):0.0 us,0.0 sy,0.0 ni,100.0 id,0.0 wa,0.0 hi,0.0 si,0.0 st
CPU的使用率
KiB Mem :995684 total,381300 free,251468 used,362916 buff/cache
内存的使用率 总共 空闲 使用 缓存
KiB Swap:2097148 total,2097148 free,0 used.561468 avail Mem
交换分区使用率 总共 空闲 使用 缓存
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
进程的情况,把资源使用率最高的排在前面
9 root 200000 S 0.30.00:02.38 rcu_sched
286 root 200000 S 0.30.00:00.40 kworker/u256:2
更新日志
提示:会持续更新优化,建议收藏+关注
2022-6-27,内存,硬盘,文件大小,查看端口,查看系统负载
2022-06-23,cat 查看,more 分页查看,less 单行查看,head 查看头部,tail 查看尾部,vi 操作,设置静态/自动获取ip,grep 筛选,rpm / yum 安装卸载软件包,zip和tar.gz解压/压缩,用户管理,用户组管理,history 查看历史操作记录,进程,文件权限管理,目录结构,防火墙的操作,网络的操作,开机自启动,系统关机/重启
2022-06-22,Tab按键,clear 清屏,ctrl+c 强制退出,q键 退出阅读模式,命令行的标识符,pwd 查看当前路径,ls 显示目录所有文件,cd 切换目录,mkdir 创建文件夹,rmdir 删除空文件夹,rm 删除文件/文件夹,mv 移动/重命名文件,cp 复制文件,find 查找文件,touch 创建文件
版权归原作者 smobee 所有, 如有侵权,请联系我们删除。