帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
Linux常用命令总结(建议收藏)
发布时间:2024-03-11 02:21:49   分类:帮助文档
Linux常用命令总结(建议收藏) 文章目录 一、文件管理1、cat:查看文件内容案例1:输出内容+行数 2、chmod:是控制用户对文件的权限的命令案例1::将user文件修改成用户、组、其他用户都可以读写可执行的权限 3、diff:用于比较文件的差异4、find:命令用来在指定目录下查找文件。案例1:查找当前目录下以.sh结束的所有文件案例2:查找当前目录下以f开头的所有文件案例3:最近60分钟内修改过的文件案例4:查找当前目录下以sh结尾的文件,并且把这些文件复制到20221214目录下 5、cut:截切、取出文本中指定的列、默认以空格或者tab键进行分割(不支持不规则的空格) 选项。案例1:查看第一列的内容(默认以制表符)案例2:以冒号为准,查看第一列的内容(默认以制表符)案例3:以冒号为准,查看第一列到第3列的内容 6、less:可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。7、more:类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读8、mv:用来为文件或目录改名、或将文件或目录移入其它位置9、rm:删除文件或者目录10、touch:用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件11、cp:复制文件或者目录12、scp: scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。1、从本地将文件传输到服务器2、从本地将文件夹传输到服务器3、将服务器上的文件传输到本地4、将服务器上的文件夹传输到本地 13、awk:一种处理文本文件的语言,是一个强大的文本分析工具案例1:、打印文本中所有行的内容(空格)案例2:、打印文本中第一列的内容(空格)案例3:、打印出文本中最后一列的内容(空格)案例4:、打印出文本中倒数第二列的内容(空格)案例5:、将包含www关键字的所在行的第3列取出案例6:、将以gdm开头到mysql开头之间所有行的最后一列取出(按照冒号分割)案例7:、打印第一行中的第一列案例8:、打印第1到第5行中的第一列案例9:、将文件从10到18行,并且第一列和最后一列打印出来案例10:、将文件从10到18行,并且第一列和最后一列打印出来(左对齐) 14、read:用于从标准输入读取数值案例1:简单读取案例2:-p 参数,允许在 read 命令行中直接指定一个提示。案例3:-n 参数设置 read 命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。 15、head:用于查看文件的开头部分的内容,16、tail:用于查看文件的内容, 二、文档编辑1、grep:用于查找文件里符合条件的字符串案例1、查找文件下包含mysql关键字的所在行案例2、查找某个目录下包含mysql关键字的内容案例3、查找某个目录下包含mysql关键字的路径案例4、查找以redis开头的所有行案例5、查找以false结尾的所有行案例6、查找包含“oo”的内容案例7、统计包含“oo”关键字的行数 2、sed:文本的增删改查案例1、将第4行打印出来案例2、将第5行到第8行打印出来案例3、将包含root的内容打印出来案例4、将以m开头的内容打印出来案例5、将以man开头到list开头中间的内容打印出来案例6、在man开头的下面新增内容案例7、将文本中包含“四”关键字的行删除案例8、将文本中包含五的行和空行删除案例9、将第2和3行删除案例10、删除第2到最后一行案例11、将jm改成zhil(如果一行有多个,默认修改的是第一个)案例12、将jm改成zhil,全局修改案例13、将第2~4行的jm改成zhil,全局修改 3、sort:对文本的内容进行排序案例1:以数值大小(从大到小)进行排序案例2:sort -n file | uniq:去重(前提进行排序) 4、expr:手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串5、uniq:用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。6、wc:计算文本数量 三、磁盘管理1、cd:用于切换当前工作目录2、df:用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计3、du:用于显示目录或文件的大小。4、mkdir:用于创建目录。5、pwd:用于显示工作目录。6、rmdir:删除空的目录7、tree:用于以树状图列出目录的内容8、ls:用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录) 四、网络通信1、ifconfig:用于显示或设置网络设备2、netstat:用于显示网络状态3、ping:用于检测主机 五、系统管理1、useradd、passwd、userdel:用于建立用户帐号,设置密码、用于删除用户帐号案例1:添加user1用户案例2:查看所添加用户案例3:修改用户密码案例4:删除用户 2、date:可以用来显示或设定系统的日期与时间3、kill:用于删除执行中的程序或工作4、ps:用于显示当前进程的状态,类似于 windows 的任务管理器。5、top:用于实时显示 process 的动态6、sudo:以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。7、su:用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。8、id:用于显示用户的ID,以及所属群组的ID9、free:用于显示内存状态10、开始、关闭防火墙 六、系统设置1、clear:用于清除屏幕2、unset:用于删除变量或函数3、export:用于设置或显示环境变量 七、备份压缩1、tar:用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。案例1:将当前目录下所有的文件和目录进行压缩案例2:解包案例3:将当前目录下以txt结尾的文件,进行压缩成tar.gz类型的文件案例4:解压 一、文件管理 1、cat:查看文件内容 -n:由 1 开始对所有输出的行数编号。 ubuntu@VM-24-12-ubuntu:~/20221212$ cat case.sh #!/bin/bash echo "请输入数字:" read num case $num in 1) echo "你选择了1" ;; 2) echo "你选择了2" ;; 3) echo "你选择了3" ;; 4) echo "你选择了4" ;; *) echo "输入错误" ;; esac 案例1:输出内容+行数 ubuntu@VM-24-12-ubuntu:~/20221212$ cat -n case.sh 1 #!/bin/bash 2 echo "请输入数字:" num 3 read -p -n1 "你输入的num是" num 4 case $num in 5 1) 6 echo "你选择了1" 7 ;; 8 2) 9 echo "你选择了2" 10 ;; 11 3) 12 echo "你选择了3" 13 ;; 14 4) 15 echo "你选择了4" 16 ;; 17 *) 18 echo "输入错误" 19 ;; 20 esac 2、chmod:是控制用户对文件的权限的命令 每个文件的属性由左边第一部分的 10 个字符来确定(如下图) 从左至右用 0-9 这些数字来表示。 第 0 位确定文件类型, 第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。 第4-6位确定属组(所有者的同组用户)拥有该文件的权限, 第7-9位确定其他用户拥有该文件的权限。 其中, 第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限; 第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限; 第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。 Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner) 用户组(Group) 其它用户(Other Users) Linux文件属性有两种设置方法,一种是数字,一种是符号。 Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。 r:4 w:2 x:1 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是: owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= — = 0+0+0 = 0 文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下: 案例1::将user文件修改成用户、组、其他用户都可以读写可执行的权限 ubuntu@VM-24-12-ubuntu:~/20221212$ chmod 777 users 3、diff:用于比较文件的差异 diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录。 ubuntu@VM-24-12-ubuntu:~/20221212$ diff func1.sh func2.sh 4c4 < echo "输入的第一个数为:" --- > echo "请输入的第一个数为:" 6c6 < echo "输入的第二个数为:" --- > echo "请输入的第二个数为:" 11a12 > 13c14 < echo "输入的两个数字之和为:$?" --- > echo "两个数字之和为:$?" 4、find:命令用来在指定目录下查找文件。 案例1:查找当前目录下以.sh结束的所有文件 ubuntu@VM-24-12-ubuntu:~/20221212$ find ./ -name '*.sh' ./func1.sh ./for.sh ./test2.sh ./break.sh ./case.sh ./test1.sh ./func2.sh ./func.sh ./while.sh ./if.sh 案例2:查找当前目录下以f开头的所有文件 ubuntu@VM-24-12-ubuntu:~/20221212$ find ./ -name 'f*' ./func1.sh ./for.sh ./func2.sh ./func.sh 案例3:最近60分钟内修改过的文件 ubuntu@VM-24-12-ubuntu:~/20221212$ find -cmin -60 . ./test3.sh 案例4:查找当前目录下以sh结尾的文件,并且把这些文件复制到20221214目录下 ubuntu@VM-24-12-ubuntu:~/20221212$ find ./ -name "*.sh" -exec cp {} ./20221214/ \; 5、cut:截切、取出文本中指定的列、默认以空格或者tab键进行分割(不支持不规则的空格) 选项。 参数: -c :以字符为单位进行分割。 -d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。 test1.txt文件 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ cat test1.txt name area age kobe beijing 18 jm shanghai 19 james changsha 20 案例1:查看第一列的内容(默认以制表符) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ cut -f1 test1.txt name kobe jm james 案例2:以冒号为准,查看第一列的内容(默认以制表符) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ cut -d":" -f1 passwd root daemon bin sys sync games man 案例3:以冒号为准,查看第一列到第3列的内容 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ cut -d: -f1-3 passwd root:x:0 daemon:x:1 bin:x:2 sys:x:3 sync:x:4 games:x:5 man:x:6 6、less:可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。 ps查看进程信息并通过less分页显示 ubuntu@VM-24-12-ubuntu:~/20221212$ ps -ef | less 7、more:类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读 8、mv:用来为文件或目录改名、或将文件或目录移入其它位置 命令格式运行结果 mv source_file(文件) dest_file(文件) 将源文件名 source_file 改为目标文件名 dest_file mv source_file(文件) dest_directory(目录) 将文件 source_file 移动到目标目录 dest_directory 中 mv source_directory(目录) dest_directory(目录) 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory mv source_directory(目录) dest_file(文件) 出错 9、rm:删除文件或者目录 -i 删除前逐一询问确认。 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。 删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如: rm test.txt rm:是否删除 一般文件 "test.txt"? y rm homework rm: 无法删除目录"homework": 是一个目录 rm -r homework rm:是否删除 目录 "homework"? y 10、touch:用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件 使用指令"touch"修改文件"test1.sh "的时间属性为当前系统时间,输入如下命令: 首先,使用ls命令查看"test1.sh "文件的属性,如下所示: ubuntu@VM-24-12-ubuntu:~/20221212$ ls -al test1.sh -rw-rw-r-- 1 ubuntu ubuntu 242 Dec 12 23:11 test1.sh 执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示: ubuntu@VM-24-12-ubuntu:~/20221212$ touch test1.sh ubuntu@VM-24-12-ubuntu:~/20221212$ ls -al test1.sh -rw-rw-r-- 1 ubuntu ubuntu 242 Dec 14 23:07 test1.sh 11、cp:复制文件或者目录 -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令: $ cp –r test/ newtest 12、scp: scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 1、从本地将文件传输到服务器 scp【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】 scp /root/test ubuntu@82.156.178.247:/home/ubuntu/20221212/ 2、从本地将文件夹传输到服务器 scp -r【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】 scp /root/my.txt ubuntu@82.156.178.247:/home/ubuntu/20221212/ 3、将服务器上的文件传输到本地 scp 【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】【本地文件的路径】 scp root@82.156.178.247:/data/wwwroot/default/111.png /Users/Desktop 4、将服务器上的文件夹传输到本地 scp -r 【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】【本地文件的路径】 scp -r root@82.156.178.247:/data/wwwroot/default/test /Users/Desktop 13、awk:一种处理文本文件的语言,是一个强大的文本分析工具 BEGIN{}:处理数据之前执行,只执行一次 pattern:匹配模式 {commands}:处理的命令 END{}:处理数据之后执行,只执行一次 内置变量 $0:整行内容 $1-$n:当前行的第1-n个字段 NF:当前行的字段数 NR:当前行行号 FS:输入字段分隔符,默认为空格或者tab键 RS:输入行分隔符,默认为回车符 案例1:、打印文本中所有行的内容(空格) ubuntu@VM-24-12-ubuntu:~/20221212$ awk '{print $0}' test1.sh #!/bin/bash echo "shell脚本中传递参数:" echo "脚本名称:$0" echo "传递的第一个参数:$1" echo "传递的第二个参数:$2" echo "传递的参数个数:$#" echo "传递的参数有:$@" echo "传递的参数有:$*" 案例2:、打印文本中第一列的内容(空格) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk '{print $1}' test1.txt name kobe jm james zilv jm 案例3:、打印出文本中最后一列的内容(空格) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk '{print $NF}' test1.txt age 18 19 20 16 21 案例4:、打印出文本中倒数第二列的内容(空格) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk '{print $(NF-1)}' test1.txt area beijing shanghai changsha awk: cmd. line:1: (FILENAME=test1.txt FNR=5) fatal: attempt to access field -1 案例5:、将包含www关键字的所在行的第3列取出 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk '/jm/ {print $2}' test1.txt shanghai wuhan 案例6:、将以gdm开头到mysql开头之间所有行的最后一列取出(按照冒号分割) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk -F: '/^gdm/,/^mysql/ {print $NF}' passwd /bin/false /usr/sbin/nologin /bin/bash /usr/sbin/nologin /bin/false 案例7:、打印第一行中的第一列 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk -F: 'NR==10 {print $1}' passwd lp 案例8:、打印第1到第5行中的第一列 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk -F: 'NR==1,NR==5 {print $1}' passwd t daemon bin sys 案例9:、将文件从10到18行,并且第一列和最后一列打印出来 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk -F: 'NR==10,NR==18 {print $1,$NF}' passwd lp /usr/sbin/nologin mail /usr/sbin/nologin news /usr/sbin/nologin uucp /usr/sbin/nologin proxy /usr/sbin/nologin www-data /usr/sbin/nologin backup /usr/sbin/nologin list /usr/sbin/nologin irc /usr/sbin/nologin 案例10:、将文件从10到18行,并且第一列和最后一列打印出来(左对齐) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ awk -F: 'NR==10,NR==18 {printf "%-15s%-20s\n",$1,$NF}' passwd lp /usr/sbin/nologin mail /usr/sbin/nologin news /usr/sbin/nologin uucp /usr/sbin/nologin proxy /usr/sbin/nologin www-data /usr/sbin/nologin backup /usr/sbin/nologin list /usr/sbin/nologin irc /usr/sbin/nologin 14、read:用于从标准输入读取数值 -p 后面跟提示信息,即在输入前打印提示信息 -n 后跟一个数字,定义输入文本的长度,很实用。 案例1:简单读取 echo "请输入数字:" read num case $num in 1) echo "你选择了1" ;; 2) echo "你选择了2" ;; 3) echo "你选择了3" ;; 4) echo "你选择了4" ;; *) echo "输入错误" ;; esac ubuntu@VM-24-12-ubuntu:~/20221212$ bash case.sh 请输入数字: 2 你选择了2 案例2:-p 参数,允许在 read 命令行中直接指定一个提示。 #!/bin/bash echo "请输入数字:" num read -p "你输入的num是" num case $num in 1) echo "你选择了1" ;; 2) echo "你选择了2" ;; 3) echo "你选择了3" ;; 4) echo "你选择了4" ;; *) echo "输入错误" ;; esac ubuntu@VM-24-12-ubuntu:~/20221212$ bash case.sh 请输入数字: num 你输入的num是2 你选择了2 案例3:-n 参数设置 read 命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。 #!/bin/bash read -n1 -p "请你输入[Y/N]" answer case $answer in Y | y) echo "继续" ;; N | n) echo "bye" ;; *) echo "error choice" ;; esac ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ bash read.sh 请你输入[Y/N]Y继续 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ bash read.sh 请你输入[Y/N]Merror choice ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ bash read.sh 请你输入[Y/N] error choice 15、head:用于查看文件的开头部分的内容, 有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。 案例:显示前3行内容 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ head -n3 read.sh #!/bin/bash read -n1 -p "请你输入[Y/N]" answer case $answer in 16、tail:用于查看文件的内容, 有一个常用的参数 -f 常用于查阅正在改变的日志文件 tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。 命令格式: tail [参数] [文件] tail notes.log # 默认显示最后 10 行 要跟踪名为 notes.log 的文件的增长情况,请输入以下命令: tail -f notes.log 二、文档编辑 1、grep:用于查找文件里符合条件的字符串 -i:忽略大小写 -c:只输出匹配行的数量 -n:显示行号 -r:递归搜索 -l:只列出匹配的文件名 案例1、查找文件下包含mysql关键字的所在行 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ grep -i -n 'mysql' passwd 48:mysql:x:127:134:MySQL Server,,,:/nonexistent:/bin/false 案例2、查找某个目录下包含mysql关键字的内容 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ grep -i -n -r 'mysql' ./ ./passwd:48:mysql:x:127:134:MySQL Server,,,:/nonexistent:/bin/false 案例3、查找某个目录下包含mysql关键字的路径 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ grep -i -l -r 'mysql' ../ ../20221215/passwd 案例4、查找以redis开头的所有行 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ grep -i -n '^redis' passwd 49:redis:x:128:135::/var/lib/redis:/usr/sbin/nologin 案例5、查找以false结尾的所有行 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ grep -i -n 'false$' passwd 27:tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false 35:speech-dispatcher:x:114:29:Speech Dispatcher,,,:/run/speech-dispatcher:/bin/false 38:hplip:x:119:7:HPLIP system user,,,:/run/hplip:/bin/false 39:whoopsie:x:120:125::/nonexistent:/bin/false 43:gnome-initial-setup:x:124:65534::/run/gnome-initial-setup/:/bin/false 44:gdm:x:125:130:Gnome Display Manager:/var/lib/gdm3:/bin/false 48:mysql:x:127:134:MySQL Server,,,:/nonexistent:/bin/false 案例6、查找包含“oo”的内容 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ grep -i -n 'oo' passwd 2:t:x:0:0:root:/root:/bin/bash 10:lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin 12:news:x:9:9:news:/var/spool/news:/usr/sbin/nologin 13:uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin 37:kernoops:x:116:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin 39:whoopsie:x:120:125::/nonexistent:/bin/false 案例7、统计包含“oo”关键字的行数 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ grep -i -c 'oo' passwd 6 2、sed:文本的增删改查 -n:只打印模式匹配的行 -f:加载存放动作的文件 -r:支持拓展正则 -i:直接修改文件 案例1、将第4行打印出来 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed -n '4 p' passwd bin:x:2:2:bin:/bin:/usr/sbin/nologin 案例2、将第5行到第8行打印出来 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed -n '5,8 p' passwd sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin 案例3、将包含root的内容打印出来 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed -n '/root/ p' passwd t:x:0:0:root:/root:/bin/bash 案例4、将以m开头的内容打印出来 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed -n '/^m/ p' passwd man:x:6:12:man:/var/cache/man:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin messagebus:x:103:106::/nonexistent:/usr/sbin/nologin mysql:x:127:134:MySQL Server,,,:/nonexistent:/bin/false 案例5、将以man开头到list开头中间的内容打印出来 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed -n '/^man/,/^list/ p' passwd man:x:6:12:man:/var/cache/man:/usr/sbin/nologin 666666666这三新增的内容 lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin 案例6、在man开头的下面新增内容 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed '/^man/ a 20221215新增的内容' passwd t:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin 20221215新增的内容 lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin 案例7、将文本中包含“四”关键字的行删除 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed '/jm/ d' test1.txt name area age kobe beijing 18 james changsha 20 案例8、将文本中包含五的行和空行删除 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed -r '/^jm|^$/ d' test1.txt name area age kobe beijing 18 james changsha 20 zilv beijing 16 案例9、将第2和3行删除 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed '2,3 d' test1.txt name area age james changsha 20 zilv beijing 16 案例10、删除第2到最后一行 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed '2,$ d' test1.txt name area age 案例11、将jm改成zhil(如果一行有多个,默认修改的是第一个) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed 's/jm/zhil/g' test1.txt name area age kobe beijing 18 zhil shanghai 19 james changsha 20 zilv beijing 16 案例12、将jm改成zhil,全局修改 g:全局修改 i:忽略大小写 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed 's/jm/zhil/gi' test1.txt name area age kobe beijing 18 zhil shanghai 19 james changsha 20 zilv beijing 16 zhil wuhan 21 案例13、将第2~4行的jm改成zhil,全局修改 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sed '2,4 s/jm/zhil/g' test1.txt name area age kobe beijing 18 zhil shanghai 19 james changsha 20 zilv beijing 16 jm wuhan 21 3、sort:对文本的内容进行排序 默认以字符的ASCII数码值从小到大排序 -n:以数值大小进行排序 -r:倒序 -t:指定分隔符,默认为空格 -k num:指定某个字段进行排序 案例1:以数值大小(从大到小)进行排序 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sort -n sort.txt 1 2 3 4 5 7 8 8 8 9 9 案例2:sort -n file | uniq:去重(前提进行排序) ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sort -n sort.txt | uniq 1 2 3 4 5 7 8 9 4、expr:手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串 用空格隔开每个项; 用反斜杠 \ 放在 shell 特定的字符前面; 对包含空格和其他特殊字符的字符串要用引号括起来 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ expr 2 + 3 5 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ expr 2 - 3 -1 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ expr 2 \* 3 6 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ expr 8 / 2 4 5、uniq:用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。 6、wc:计算文本数量 wc -l 打印行数 wc -w 打印单词数 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ wc -l test1.txt 4 test1.txt ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ wc -w test1.txt 12 test1.txt 三、磁盘管理 1、cd:用于切换当前工作目录 2、df:用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计 ubuntu@VM-24-12-ubuntu:~/20221212$ df Filesystem 1K-blocks Used Available Use% Mounted on udev 966068 0 966068 0% /dev tmpfs 203016 740 202276 1% /run /dev/vda2 41174636 5004576 34397372 13% / tmpfs 1015060 24 1015036 1% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 1015060 0 1015060 0% /sys/fs/cgroup tmpfs 203012 0 203012 0% /run/user/1000 -h选项,通过它可以产生可读的格式df命令的输出 ubuntu@VM-24-12-ubuntu:~/20221212$ df -h Filesystem Size Used Avail Use% Mounted on udev 944M 0 944M 0% /dev tmpfs 199M 740K 198M 1% /run /dev/vda2 40G 4.8G 33G 13% / tmpfs 992M 24K 992M 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 992M 0 992M 0% /sys/fs/cgroup tmpfs 199M 0 199M 0% /run/user/1000 3、du:用于显示目录或文件的大小。 4、mkdir:用于创建目录。 -p 确保目录名称存在,不存在的就建一个 案例1:在工作目录下的 runoob2 目录中,建立一个名为 test 的子目录。 若 runoob2 目录原本不存在,则建立一个。 mkdir -p runoob2/test 5、pwd:用于显示工作目录。 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ pwd /home/ubuntu/20221212/20221215 6、rmdir:删除空的目录 -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。 在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。 rmdir -p BBB/Test 7、tree:用于以树状图列出目录的内容 ubuntu@VM-24-12-ubuntu:~/20221212$ tree . ├── 20221214 │ └── data.txt ├── a.txt ├── break.sh ├── case.sh ├── for.sh ├── func1.sh ├── func2.sh ├── func.sh ├── if.sh ├── myfile ├── test1.sh ├── test2.sh ├── time.txt ├── users └── while.sh 1 directory, 15 files 8、ls:用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录) -a 显示所有文件及目录 (. 开头的隐藏文件也会列出) -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ ls -a . .. passwd read.sh sort.txt test1.txt ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ ls -al total 24 drwxrwxr-x 2 ubuntu ubuntu 4096 Dec 15 09:43 . drwxrwxr-x 4 ubuntu ubuntu 4096 Dec 15 09:29 .. -rw-rw-r-- 1 ubuntu ubuntu 2807 Dec 15 08:59 passwd -rw-rw-r-- 1 ubuntu ubuntu 167 Dec 15 09:35 read.sh -rw-rw-r-- 1 ubuntu ubuntu 24 Dec 15 09:43 sort.txt -rw-rw-r-- 1 ubuntu ubuntu 66 Dec 15 09:07 test1.txt 四、网络通信 1、ifconfig:用于显示或设置网络设备 2、netstat:用于显示网络状态 3、ping:用于检测主机 执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ ping www.baidu.com PING www.a.shifen.com (110.242.68.3) 56(84) bytes of data. 64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=1 ttl=251 time=10.3 ms 64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=2 ttl=251 time=10.3 ms 64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=3 ttl=251 time=10.3 ms 五、系统管理 1、useradd、passwd、userdel:用于建立用户帐号,设置密码、用于删除用户帐号 useradd 可用来建立用户帐号。帐号建好之后, 再用 passwd 设定帐号的密码。 而可用 userdel 删除帐号。 使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中 案例1:添加user1用户 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sudo useradd user1 案例2:查看所添加用户 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ cat /etc/passwd | grep user1 user1:x:1002:1002::/home/user1:/bin/sh 案例3:修改用户密码 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sudo passwd user1 New password: Retype new password: passwd: password updated successfully 案例4:删除用户 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ sudo userdel user1 2、date:可以用来显示或设定系统的日期与时间 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ date Thu 15 Dec 2022 09:55:12 AM CST 3、kill:用于删除执行中的程序或工作 彻底杀死进程 kill -9 123456 4、ps:用于显示当前进程的状态,类似于 windows 的任务管理器。 ps -ef | grep 进程关键字 5、top:用于实时显示 process 的动态 6、sudo:以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 7、su:用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。 8、id:用于显示用户的ID,以及所属群组的ID ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ id root uid=0(root) gid=0(root) groups=0(root) 9、free:用于显示内存状态 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ free total used free shared buff/cache available Mem: 2030124 277180 96608 2332 1656336 1557592 Swap: 0 0 0 10、开始、关闭防火墙 systemctl status firewalld //查看防火墙状态 systemctl stop firewalld //关闭防火墙 systemctl start firewalld //开启防火墙 systemctl disable firewalld //防火墙永久关闭 六、系统设置 1、clear:用于清除屏幕 2、unset:用于删除变量或函数 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ a=24 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ echo $a 24 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ unset a ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ echo $a 3、export:用于设置或显示环境变量 export -p 列出当前的环境变量值 export MYENV=7 定义环境变量并赋值 七、备份压缩 1、tar:用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。 案例1:将当前目录下所有的文件和目录进行压缩 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ tar -cvf log.tar ./* ./1/ ./1/log.tar ./passwd ./read.sh ./sort.txt ./test1.txt 案例2:解包 ubuntu@VM-24-12-ubuntu:~/20221212/20221215/1$ tar -xvf log.tar ./sort.txt ./test1.txt 案例3:将当前目录下以txt结尾的文件,进行压缩成tar.gz类型的文件 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ tar -czvf log.tar.gz ./*.txt ./sort.txt ./test1.txt 案例4:解压 ubuntu@VM-24-12-ubuntu:~/20221212/20221215$ tar -xzvf log.tar.gz ./sort.txt ./test1.txt
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价