运维开发网

linux系统常用基础命令

运维开发网 https://www.qedev.com 2020-10-29 12:31 出处:51CTO 作者:super李导
第三章 | 3.1 linux系统基本命令

  linux系统有两种工作界面,命令行界面和图形界面。在服务器日常运维工作中,均由命令行界面执行操作,常用命令工具的使用是运维人员的基础技能。本章讲解的均是是企业日常中最实用的命令和技能,务必掌握,熟练使用。

3.1.1 文件目录基本操作

  1)cd

  作用:切换工作目录

  示例: 

  [[email protected] ~]#  cd /home    #进入/home目录

  [[email protected] home]#  cd ..    #切换到当前目录的上一级目录

  [[email protected] /]#  cd -      #切换返回到上一条cd命令执行时的所在目录

  [[email protected] home]#  cd    #切换到用户家目录

  提示:cd命令在使用中一定要明确切换的完整目录路径,在确认目录路径正确后再执行后续命令,避免出错。

  2)ls

  作用:展示查看文件目录信息

  参数:-a 显示所有信息包含隐藏文件;-d显示目录自身信息;-l 逐行列出详细信息;-t 以时间方式排序;-u 显示最后访问时间;-c 显示属性变更时间。

  示例:

  [[email protected] home]# ls           #显示当前目录和文件的名称

  [[email protected] home]# ls -a           #显示/home下的隐藏文件

  [[email protected] home]# ls -l           #显示文件和目录的详细信息

  [[email protected] home]# ls -ld         #查看/home目录自身的详细信息

  [[email protected] home]# ls -lt /etc/profile      #查看有时间排序的详细信息

  [[email protected] home]# ls -lu /etc/profile      #显示最后到访时间

  [[email protected] home]# ls -lc /etc/profile      #显示属性变更的时间

  提示:ls命令是最常用的命令,ll是ls -l的别称,所以可以直接使用ll命令查看文件目录信息,更快捷方便。

  3)pwd

  作用:查看当前工作目录的完整路径

  示例:

  [[email protected] test]# pwd        #执行命令,查看当前目录的完整路径信息

  /home/test               #返回的当前工作目录为/home/test

  提示:在不确定当前工作目录时,要果断使用

  4)mkdir

  作用:创建目录

  参数:-p 用于递归创建多级目录;-m 指定目录权限。

  示例:

  [[email protected] home]# mkdir test    #创建test目录

  [[email protected] home]# mkdir apple huiwei xiaomi    #一次创建多个同级目录

  [[email protected] home]# mkdir -m 777 meizu     #创建一个777权限的目录

  [[email protected] home]# mkdir -p /home/super/Linux/charter  #一次创建多级目录

  提示:目录可以随意创建,但为了管理和安全,请用简明词汇规划好目录的名称及等级。

  5)touch

  作用:创建新文件

  示例: 

  [[email protected] home]# touch oppo.txt  #创建txt文件

  [[email protected] home]# touch 1.conf mayi.txt dog  #一次创建多个文件

  提示:touch命令也有很多参数,但不建议使用,日常中也用不到加参数得情形。

  6)cp

  作用:复制文件目录

  参数:-r 递归复制目录;-a 复制内容保持与源文件目录完全一致,包含链接及属性。

  示例:

  [[email protected] home]# cp /home/oppo.txt /tmp  #复制文件到tmp目录

  [[email protected] home]# cp /home/oppo.txt /tmp/vivo.txt  #复制文件到tmp目录,并修改文件名

  [[email protected] home]# cp -r /home/test /tmp/      #将test目录复制到tmp目录下

  [[email protected] home]# cp -a /home/super/Linux /tmp/  #将Linux目录完整复制到tmp目录下

  提示:cp命令常用于备份文件,复制过程中注意命令的反馈提示。

  7)mv

  作用:移动、重命名文件目录

  示例:

  [[email protected] home]# mv mayi.txt /tmp/     #移动文件到tmp目录

  [[email protected] home]# mv o.txt /tmp/u.txt     #移动文件到tmp目录,并改名

  [[email protected] home]# mv super /tmp/      #移动目录到tmp下

  提示:移动文件目录时,必须确认文件是否被运行中的应用使用。

   8)rm

  作用:删除文件目录

  参数:-r 删除目录;-f 强制删除,无提示信息。

  示例:

  [[email protected] home]# rm 1.conf         #删除文件

  [[email protected] home]# rm -f oppo.txt       #直接删除文件,无提示

  [[email protected] home]# rm -r /home/huiwei     #删除目录

  [[email protected] home]# rm -rf /home/test     #直接删除目录,无提示

  [[email protected] home]# rm -rf /home/test/*    #保留test目录并删除该目录下所有内容

  提示:使用删除命令时,在未确认删除目标详情时,不要使用-f参数,该参数需谨慎使用。

3.1.2 查看文件内容

  1)cat 

  作用:直接查看文件内容

  参数:-n 显示所有行行号;-b 空白行不显示行号。

  示例:

  [[email protected] home]# cat 1.txt           #查看文件内容

  [[email protected] home]# cat -n 1.txt          #查看文件并显示非空白行行号

  [[email protected] home]# cat -b 1.txt           #查看文件并显示行号

  [[email protected] home]# cat 1.txt 2.txt 3.conf     #同时打印查看多个文件

  [[email protected] home]# cat /dev/null > 1.txt     #清空1.txt文件内容

  [[email protected] home]# cat /var/install.log > 2.txt   #将日志输出到新文件中

  提示:cat命令更适合小文件内容查看,大文件则与grep命令结合使用效果最好。

  2)head

   作用:从文件开头查看文件内容,默认前10行

  参数:-n 显示前n行内容;-c nK 按容量字节大小显示nKB内容。

  示例:

  [[email protected] home]# head /etc/passwd       #默认查看前10行

  [[email protected] home]# head -5 /etc/passwd     #查看前5行

  [[email protected] home]# head -c 1K /etc/passwd   #查看前1k大小的内容

  提示:该命令常与排序sort命令一起使用,用于筛选最高最小排序值。

  3)tail

  作用:查看文件尾部内容

  参数:-n 显示末尾n行;-f 动态输出文件内容;-c nK 显示文件最后nKB内容。

  示例: 

  [[email protected] home]# tail /var/log/messages       #查看文件最后10行

  [[email protected] home]# tail -200 /var/log/messages     #查看文件最后200行内容

  [[email protected] home]# tail -f /var/log/messages     #动态输出查看文件内容

  [[email protected] home]# tail -100f /var/log/messages   #查看从最后100行持续输出的内容

  [[email protected] home]# tail -c 1K /var/log/messages   #查看文件末尾1KB大小的内容

  提示:使用-f 动态输出后,可使用Ctrl+c组合键退出查看。

  4)more

   作用:分页查看内容

  示例

  [[email protected] home]# more /var/log/secure  #分页查看

  提示:more查看状态下,空格键看下翻一页,Enter键看下一行,q键退出查看。

  5)less

   作用:分页查看内容

  示例

  [[email protected] home]# less /var/log/secure  #分页查看

  提示:在查看状态下,空格键看下翻一页,b键上翻一页,q键退出查看。

  6)echo

  作用:输出指定内容

  示例:

  [[email protected] home]# echo $LANG      #输出查看系统参数LANG值

  [[email protected] home]# echo "I love Linux"    #直接输出字符串

  [[email protected] home]# echo "这是教程" > 1.txt  #将文本输出到文件,无文件会默认创建新文件

  [[email protected] home]# echo "这是新教程" >> 1.txt   #追加写入文本到文件末尾

  [[email protected] home]# echo "" > /var/log/nginx.log  #清空nginx日志文件

  提示:echo使用 > 时,具有覆盖文件内容的功能,务必确认文件可否清空或覆盖。  

3.1.3 查找与统计

   1)find

  作用:查找文件目录

  参数:-name 按名称查找;-user 按用户查找;-group 按组查找;-empty 查找空目录空文件;-perm 按权限查找;-mtime 按修改时间查找;-size 按容量大小查找;-exec 对找到的内容执行命令;-type 按类型查找,f-文件 d-目录 b c-设备 l-链接;-o 或者条件;-a 并且条件。

  示例:

  [[email protected] ~]# find -name test.txt    #查找名称为test.py的文件

  [[email protected] ~]# find -iname tesT.txt      #查找test.py文件,不区分大小写

  [[email protected] ~]# find / -user game      #查找用户名为game的文件或目录

  [[email protected] ~]# find ./ -group game      #查找组名为game的文件或目录

  [[email protected] ~]# find ./ empty        #查找空的目录或文件

  [[email protected] ~]# find ./ -perm 644     #查找当前目录下权限为644的文件

  [[email protected] ~]# find /home -mtime -3    #查找home下所有3天内修改过的文件或目录

  [[email protected] ~]# find /home -mtime +5    #查找home下所有5天前被修改过的文件或目录

  [[email protected] ~]# find /home -mtime 6   #查找6天前当天修改的文件或目录

  [[email protected] ~]# find /data -size +20M    #查找data目录下大于20M的文件或目录

  [[email protected] ~]# find /home -size +2M -exec ls -l {} \;   #列出home下大于2M的文件或目录

  [[email protected] ~]# find /home -size +3M -a -type f -exec rm -rf {} \;  #删除home下大于3M的文件

  [[email protected] ~]# find /home -type f -name "*.log"  #查找日志文件

  [[email protected] ~]# find /home -amin n         #最后n分钟 

  [[email protected] ~]# find /home -atime n       #最后n天

  [[email protected] ~]# find /home -cmin n       #最后n分钟改变状态

  [[email protected] ~]# find /home -ctime n        #最后n天改变状态

  [[email protected] ~]# find -name *.txt |xargs -i cp {} /tmp/    #把TXT文件复制到/tmp/目录下

  [[email protected] ~]# find -name *.txt -exec cp '{}' /tmp/ \;  #把TXT文件复制到/tmp/目录下

  提示:find命令功能强大应用广泛,常用于查找并执行后续命令,注意exec和xargs的用法。

  2)grep

  作用:查找打印找与关键词匹配的行

  参数:-n 在输出匹配行及行号一起输出;-v 打印不符合要求的行(取反);-i 不区分大小写;-w 打印完整单词的行;-An 打印符合要求的行以及下面n行;-Bn 打印符合要求的行以及上面n行;-Cn 打印符合要求的行以及上下n行。

  示例:

  [[email protected] ~]# grep -A2 'halt' /etc/passwd     #把包含halt的行及其下面的两行输出

  [[email protected] ~]# grep -B2 'halt' /etc/passwd     #把包含halt的行及其上面的两行输出

  [[email protected] ~]# grep -C2 'halt' /etc/passwd     #把包含halt的行及其上下各两行输出

  [[email protected] ~]# grep -n 'root' /etc/passwd      #过滤出带有root关键字的行及行号

  [[email protected] ~]# grep -v 'nologin' /etc/passwd     #过滤不带有nologin的行

  [[email protected] ~]# grep '[0-9]' /etc/inittab           #过滤出所有包含数字的行

  [[email protected] ~]# grep -v '[0-9]' /etc/inittab        #过滤出所有不包含数字的行

  [[email protected] ~]# grep -v '^#' /etc/inittab           #过滤出非#开头的行

  [[email protected] ~]# grep  'game$' /etc/inittab         #过滤出以game结尾的行

  [[email protected] ~]# grep -v '^#' /etc/crontab |grep -v '^$'   #去除所有空行和以#开头的行

  提示:grep拥有众多参数用法,这里是常用的几种示例,更多用法在后续shell脚本编程的章节讲解。

  3)wc

   作用:统计文件内容信息

  参数:-w 统计单词书;-c 统计字节数;-l 统计行数。

  示例:

  [[email protected] ~]# wc -c  /etc/passwd    #显示文件总字节数

  [[email protected] ~]# wc -l   /etc/passwd    #显示文件总行数

  [[email protected] ~]# wc -w /etc/passwd    #显示单词总数,重复不计

  提示:常于cat、sort、grep等组合使用,来筛选统计特定信息数量。

  4)sort

  作用:排序

  参数:-n 依照数值的大小排序;-u 去除重复内容;-r 降序排列;-o 将输出写入文件。

  示例:

  [[email protected] ~]# sort oppo.txt      #默认以字母排序

  [[email protected] ~]# sort -n num.txt     #以数值排序

  [[email protected] ~]# sort -r oppo.txt     #以字母降序排列

  [[email protected] ~]# sort -nr num.txt     #以数值降序排列

  [[email protected] ~]# sort -u oppo.txt     #去除重复排序

  [[email protected] ~]# sort num.txt -o /tmp/n.txt   #排序后写入到新文件

  提示:sort是只针对文本内容,按行进行排序的。

  5)uniq

  作用:检查统计重复的行

  参数:-c 去重并计数。

  示例:

  [[email protected] ~]# uniq -c oppo.txt     # 去重后排列计数

  [[email protected] ~]# sort test.txt | uniq -c   # 排序后去重计数

  提示:该命令常与sort一起使用,用来排序统计信息

  6)cut

  作用:剪切出指定的字符字段

  参数:-b 以字节为单位分割;-c 以字符为单位分割;-d 用自定义分割符分割;-f 指定列显示内容。

  示例:

  [[email protected] ~]# cut -f2,3 test.txt     #截取第2、3列

  [[email protected] ~]# cut -f1 -d ":" 1.txt     #以:为分隔符截取第一列

  [[email protected] ~]# cut -c -2 1.txt      #输出每行的前两个字符

  提示:常用于提取特定文本信息。

3.1.4 打包压缩与解压

   1)zip/unzip

  作用:压缩/解压缩文件

  参数:-d 指定解压目录 

  示例:

  [[email protected] ~]# zip j.zip jjj.txt    #将jjj.txt压缩为j.zip文件

  [[email protected] ~]# unzip j.zip      #将j.zip解压

  [[email protected] ~]# unzip j.zip -d /tmp/  #将j.zip解压到指定tmp目录下

  提示:系统默认编制zip和unzip,需自行安装 yum install zip unzip -y。

  2)tar

  作用:打包压缩与解压

  参数:-c 创建打包文件;-f 指定打包名;-j 打包后通过bzip2格式压缩;-r  追加文件到打包文档;-z 打包后通过gzip格式压缩;-x 解包文件;-C 指定解压路径;--delete 从打包文件中去除某个文件;--remove-files 打包后删除源文件。

  示例:

  [[email protected] ~]# tar -cf test.tar /home/       #将home目录打包为test.tar

  [[email protected] ~]# tar -czf test.tar.gz /home/       #将home目录打包并压缩为test.tar.gz

  [[email protected] ~]# tar -zxf test.tar.gz           #将gz文件解压

  [[email protected] ~]# tar -cjf test.tar.bz2 /home/       #将home目录打包并压缩为test.tar.bz2

  [[email protected] ~]# tar -jxf test.tar.bz2 -C /tmp/     #将bz2文件解压到指定目录

  [[email protected] ~]# tar -f test.tar -r test.txt         #将test.txt追加到打包中

  [[email protected] ~]# tar --delete game.txt -f test.tar    #从打包文件中删除game.txt

  提示:tar是最常用的打包工具,谨慎使用--delete和--remove-files参数。

  3)gzip/bzip2

  作用:压缩与解压

  参数:-d 解压。

  示例: 

  [[email protected] ~]# gzip test.py       #压缩后为test.py.gz

  [[email protected] ~]# gzip -d test.py.gz     #解压文件

  [[email protected] ~]# bzip2 test.py      #压缩后为test.py.bz2

  [[email protected] ~]# bzip2 -d test.py.gz    #解压文件

  提示:gzip和bzip2 只能打包压缩文件,不能打包压缩目录。

3.1.5 计划任务与链接

  1)at

   作用:指定时间一次性执行命令

  参数:-l 查看用户任务计划;-c 查看任务具体内容;-d 删除任务计划。

  示例:

  [[email protected] ~]# at 10:10     #在10点10分执行任务

  at> touch mac.txt         #任务内容创建文件

  at> mkdir -p /home/backup     #任务内容创建目录

  at> <EOT>            #Ctrl+d组合键结束编辑

  [[email protected] ~]# at -l      #查看任务计划

  [[email protected] ~]# at -c 1     #查看编号1任务内容

  [[email protected] ~]# at -d 1     #删除1号任务

  提示:at 使用必须先启动atd服务,systemctl start atd。

  2)crontab

  作用:创建周期性计划任务

  参数:-u 指定一个用户;-l 列出某个用户的任务计划;-r 删除某个用户的任务;-e 编辑某个用户的任务。

  时间格式:分时日月周+命令

    Minute  Hour Day  Month Week  command 

    分钟   小时  天    月    星期    命令 

    0-59   0-23  1-31  1-12    0-6    command

  示例:

  [[email protected] ~]# crontab -e     #创建计划任务

  5 * * * * ls -l /tmp      #指定每小时的第5分钟执行一次查看命令 

  10 7 1 * * ping 192.168.1.1   #指定每月1号的7:10分执行ping命令 

  30 8-15 * * * ll           #每天8-15点的第30分钟执行ll命令 

  */10 * * * * ls           #每10分钟执行一次ls命令 

  30 6 */10 * * ll           #每月每隔10天6:30执行一次ll命令

  0 2 * * * sh /home/test.sh      #每天两点执行脚本

  :wq! 或者shift+zz        #快捷保存退出

  [[email protected] ~]# crontab -l    #查看当前用户的计划任务

  提示:crontab的编辑与vim的编辑操作一样。

  3)ln

   作用: 创建链接

  示例:

  [[email protected] ~]# ln -s /home/oppo.txt /tmp/o.txt    #创建文件软连接

  [[email protected] ~]# ln -s /home/backup /tmp/backup    #创建目录软连接

  [[email protected] ~]# ln -s /home/vivo.txt /tmp/p.txt     #创建文件硬连接

  提示:软连接可跨分区,不可删源文件;硬链接不可跨分区,可删源文件。

3.1.6 系统服务

   1)systemctl

  作用:启动、停止服务

  示例: 

  [[email protected] ~]# systemctl start nginx     #启动nginx服务

  [[email protected] ~]# systemctl stop mysql      #停止mysql服务

  [[email protected] ~]# systemctl restart sshd      #重启sshd服务

   2)history

  作用:查看历史命令记录

  示例: [[email protected] ~]# history      #查看历史命令

   3)sysctl

  作用:加载系统参数

  示例:[[email protected] ~]# sysctl -p  #默认加载/etc/sysctl.conf中的参数

  4)source

  作用:执行环境变量文件

  示例:[[email protected] ~]# source /etc/profile  #执行/etc/profile中的环境变量,使其生效。

  5)stat

  作用:查看文件inode信息,包含文件大小、类型、权限和时间状态

  示例:[[email protected] ~]# stat oppo.txt  #查看oppo.txt的详细inode信息

   6)reboot

  作用:重启linux系统

   示例:[[email protected] ~]# reboot  #直接重启,谨慎使用

  7)hostnamectl

  作用:设置主机名称

  示例:[[email protected] ~]# hostnamectl set-hostname supertest  #设置主机名为supertest

  8)lscpu

  作用:查看cpu的数量

  示例:[[email protected] ~]# lscpu    #查看机器cpu详细信息和数量

   本节的基础命令均是企业服务器管理中需要用到的,示例中列出的是最常用的几种形式,务必学习掌握其使用方法。每个命令都有很多参数,可以通过--help查看,但大多参数在日常服务器管理操作中是用不到的。命令介绍中有提示一项,这是使用经验的提醒,了解提示,可少走弯路。

 

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号