1.Linux高级命令

1.1.grep命令

  •   grep命令用于在文件中查找关键字,并显示关键字所在的行
  •   用法:grep text file,text代表要搜索的文本,file代表供搜索的文件

 

常用参数搭配:

  •   grep -i:默认情况下,grep命令是区分大小写的,加上i参数使搜索结果忽略大小写
  •   grep -n:显示搜索到的文本所在的行号
  •   grep -v:只显示搜索的文本不在的那些行
  •   grep -r:在所有子目录和子文件中查找,比如grep -r “Hello World” folder/表示在folder目录的所有子目录和子文件中查找Hello World这个文本
  •   grep -E:grep -E 正则表达式 文件目录:使用正则表达式进行匹配

1.2.sort命令

  •   sort命令用于对文件的行进行排序,默认对文件中字母按照字母A-Z的顺序排序

 

常用参数搭配:

  •   sort -o参数:将排序后的内容结果写入新文件,具体格式:sort -o name_sorted.txt name.txt 其中name_sorted.txt是排序后的文件,name.txt是源文件
  •   sort -r参数:倒序排列
  •   sort -R参数:R是英语Random的首字母,随机排序
  •   sort -n参数:默认仅用sort命令时,是不区分字符是否是数字的,会把这些数字看成字符串,按照1-9的顺序来排序,可以使用sort -n参数对数字进行排序,按从小到大排序

1.3.wc命令

  •   wc是word count的缩写,wc命令用于文件统计,统计文件中的行数、单词数、字符数,字节数
  •   用法:wc 文件名,显示为:行数、单词数、字节数

 

常用参数搭配:

  •   wc -l:如wc -l 文件名,l是line的缩写,表示只统计行数
  •   wc -w:w是word的缩写,表示“单词”,用于统计单词(用空格隔开的字符串)数目
  •   wc -c:c是character的缩写,用于单独统计字节数
  •   wc -m:用于统计字符数

1.4.uniq命令

  •   uniq命令用于删除文件中的重复内容,只能将连续的重复行变为一行
  •   用法:uniq 文件名,如果要将重复的文件名处理之后输出在一个新的文件中,使用uniq 文件名 新文件名,如uniq repeat.txt unique.txt

 

常用参数搭配:

  •   uniq -c:-c参数用于显示重复的行数,只出现一次的重复次数为1,用法:uniq -c 文件名
  •   uniq -d:-d参数只显示重复的行的值,用法:uniq -d 文件名

1.5.cut命令

  •   cut命令用于对文件的每一行进行剪切处理,会剪切掉文件的一部分内容

 

常用参数搭配:

  •   cut -c:根据字符数来剪切,如cut -c 2-4 name.txt表示将文件中的每一行剪切,保留第二个字符到第四个字符
  •   cut -d:d是delimiter的缩写,用于指定用什么分隔符(比如逗号、分号、双引号等等)
  •   cut -f:f是field的缩写,表示剪切下用分隔符分隔的哪一块或哪几块区域,比如:cut -d , -f 1 notes.csv 表示在notes.csv文件中使用”,”分隔,并截取第一段,注意:这里的下标是从1开始的,不是从0开始

        ①cut -f 1,3 文件名:1和3表示剪切下来取第一和第三部分

        ②cut -f 2- 文件名:2-表示剪切保留第二部分直到最后一部分

1.6.ps命令

  •   ps是Process Status的缩写,ps命令用于显示当前系统中的进程
  •   ps命令显示的进程列表不会随时间而更新,是静态的,只是运行ps命令当时的那个状态,或者说是一个进程的快照snapshot

直接运行ps命令显示的效果如下:

其中PID是进程号,TTY是进程运行所在的终端,TIME表示进程运行了多久,CMD表示产生这个进程的程序名

常用参数搭配:

  •   ps -ef:使ps命令列出所有用户在所有终端的所有进程

第一列是UID,是user identifier的缩写,表示用户标识符;第三列是PPID(parent process ID):PPID是程序的父进程号

  •   ps -efH:以乔木状列出所有进程,如下图所示:

 

  •   ps -u用户名:列出此用户运行的进程,ps -u xxx #用实际用户替换xxx
  •   ps -aux:通过CPU和内存使用来过滤进程,一般为了显示更人性化,使用命令:

ps -aux --sort -pcpu | less  # 根据CPU使用率来降序排列

ps -aux --sort -pmem | less  # 根据内存使用率来降序排列

ps -aux --sort -pcpu,+pmem | head # 将CPU和内存参数合并到一起,并通过管道显示前10个结果

  •   ps -axjf或pstree:以树形结构显示进程

1.7.top命令

  •   top命令可以动态的显示进程列表,相比于ps命令可以动态、实时地监控进程的运行情况
  •   top命令不会显示全部的进程列表,只会显示一部分占据整个屏幕大小,默认进程是按照使用处理器的比率来排序的

在top命令使用时的一些快捷键:

  •   q键:quit,退出top命令显示界面
  •   h键:显示帮助文档
  •   b键:加粗某些重要的信息
  •   f/F键:在进程列表中添加或删除某些列;改变进程列表排序所参照的列
  •   u键:可以选择使用显示只需要显示的用户操作的进程列表
  •   k键:可以供用户输入要结束的进程
  •   s键:可以改变刷新页面的时间,默认页面每隔3秒刷新一次

1.8.操作进程和重启关闭系统

  •   Ctrl + C:停止终端中正在运行的进程,Ctrl + C可以比较友好地中止终端中正在运行的程序

(注意终端中使用复制和粘贴分别是Ctrl + Shift +C和Ctrl + Shift +V)

  •   kill命令:kill命令用于结束一个进程,kill命令后接需要结束的进程号,也就是我们之前看到过的PID,可以通过ps命令或top命令来获知进程的PID(注意kill命令执行需要在root用户权限下)
  •   kill -9命令:kill -9可以立即强制结束进程
  •   killall命令:用于结束全部要结束的进程,killall命令后接程序名,而不是PID(进程号)
  •   halt命令:halt命令用户关闭系统,但是必须以root身份才能关闭系统,一般用法:sudo halt
  •   reboot命令:reboot命令用于重启系统,也需要以root身份才能重启系统,用法:sudo reboot。halt命令和reboot命令都调用了Linux的另一个命令——shutdown命令
  •   poweroff命令:poweroff命令也可以用于关机,普通用户直接执行即可,效率较高

1.9.输出重定向与管道

>:标准输出重定向到文件

  •   >:>表示重定向到新的文件,它可以将命令的输出结果重定向到你选择的文件中,比如cut -d , -f 1 note.csv > students.txt,命令即可将note.csv中剪切到的部分重定向到students.txt文件中
  •   >使用注意事项:

①如果此文件不存在,则会新建一个文件;如果此文件已经存在,就会把文件内容覆盖掉,且不会征求用户确认

  •   重定向到“黑洞文件” /dev/null,它能使发送到/dev/null的任何数据作废

 

>>:标准输出重定向到文件末尾

  •   >>:>>的作用与>是类似的,不过不会像>那么危险,会将重定向的内容写入到文件末尾,起到追加的作用
  •   如果文件不存在也会创建文件

2> 文件名 :标准错误输出重定向到文件

2>> 文件名 :标准错误输出重定向到文件末尾

2>&1 :标准输出和标准错误输出都重定向到文件

1.10.输入重定向与管道

<:从文件中读取

  •   <符号用于指定命令的输入,cat < note.csv与cat note.csv的显示效果一样,但是原理不一样,cat < note.csv只负责将文件内容打印,不负责文件打开;而cat note.csv负责文件内容的打开与打印显示在终端

<<:从键盘读取

  •   <<符号的作用是将键盘的输入重定向为某个命令的输入
  • |:管道
  •   |符号称为“管道符”,其作用就是“建立命令管道”
  •   管道也算是重定向流的一种
  •   管道的原理:将两个命令连成管道,简单地说就是将一个命令的输出作为另一个命令的输入(将一个命令的输出重定向为另一个命令的输入)

如使用:du | sort -nr | head命令,将当前目录下的文件按照从大到小的顺序排列,并显示前10行

 

1.11.at命令

  •   at命令可以用来延时执行一个程序,可以用at命令来设定一个程序的执行时间
  •   注意:at命令只能让程序执行一次
  •   如果系统中没有at命令,可以执行:sudo yum install at

at命令的使用有以下场景:

①在指定时刻执行程序:先用at命令后接想要程序执行的确定时刻,再输入你想要在以上指定时刻执行的命令,结束at命令使用ctrl + D ;在明天的时间执行命令,使用:at 22:10

tomorrow

 

②在指定任意时期执行程序:at 22:10 12/10/19,表示在2019年12月10日的22:10分执行,12/10/19依次是“月/日/年”

③在指定间隔之后执行程序:如在10分钟之后执行命令:at now +10 minutes,其中now表示“现在”,+10minutes表示“10分钟之后”

minutes:表示“分钟”

hours:表示“小时”

days:表示“天”

weeks:表示“星期”

months:表示“月”

years:表示“年”

1.12.crontab命令

  •   crontab命令与at命令一样,用于定时执行程序,crontab可以重复执行命令,例如:每小时、每分钟、每天、每星期等等
  •   安装crontab命令:

CentOS安装crontab

  1. sudo yum install vixie-cron crontabs  #安装crontab,用于CentOS(Red Hat一族)
  2. chkconfig crond on  #设为开机自启动
  3. service crond start   #启动

Ubuntu安装crontab

  1. sudo apt install cron   #安装crontab
  2. service cron restart 或者restart cron  #重启crontab

 

常用参数搭配:

  •   crontab -l:显示crontab文件
  •   crontab -e:修改crontab文件
  •   crontab -r:删除crontab文件

1.13.&&和||符号

  •   &&号前的命令执行成功,才会执行后面的命令
  •   ||号前的命令执行失败,才会执行后面的命令
  •   分号:不论分号前面的命令执行成功与否,都执行分号后的命令

1.14.tar命令

打包:打包是将多个文件变成为一个总的文件,这个总的文件我们通常称为archive

压缩:压缩是将一个大文件通过某些压缩算法变成为一个小文件

 

一般来说tar命令,gzip和bzip2命令的使用分为以下两个步骤:

  1. 首先,用tar将多个文件归档为一个总的文件,称为archive;
  2. 然后,用gzip或bzip2命令将archive压缩为更小的文件

总的压缩流程如下图所示:

 

tar命令常用参数搭配:

  •   tar -cvf:创建一个tar归档,用法:tar -cvf 归档文件名.tar 文件路径,如:tar -cvf sorting.tar sorting/ ,即可将sorting/目录下的文档归档为sorting.tar
  •   tar -cvf archive.tar file1.txt file2.txt file3.txt,可以直接对文件进行归档操作,不需要先把所有文件放到一个目录里
  •   tar -tf:-tf显示归档里的内容,并不解开归档
  •   tar -rvf:tar -rvf archive.tar file_extra.txt,可以将file_extra.txt这个文件添加到archive.tar归档中,-rvf用于追加文件到归档
  •   tar -xvf:用于解开归档,是-cvf的相反操作,用法:tar -xvf sorting.tar
  •   tar -zcvf:归档,然后用gzip来压缩归档,用法:tar -zcvf sorting.tar.gz sorting/
  •   tar -zxvf:解压文件,tar -zxvf sorting.tar.gz
  •   tar -jcvf:归档,然后用bzip2来压缩归档,用法:tar -jcvf sorting.tar.bz2 sorting/
  •   tar -jxvf:解压文件,tar -jxvf sorting.tar.bz2

1.15.gzip与bzip2命令

  •   gzip比较常用,bzip2不是那么常用。bzip2压缩率比gzip更大,但是更耗时
  •   .tar.gz是用gzip命令压缩后的文件后缀名;.tar.bz2是用bzip2命令压缩后的文件后缀名

 

压缩归档文件.tar用法:

  •   gzip命令:gzip sorting.tar
  •   bzip2命令:bzip2 sorting.tar

解压缩用法:

  •   gunzip:gunzip sorting.tar.gz,使用此命令会将.tar.gz压缩文件解压缩为sorting.tar的归档文件
  •   bunzip2:bunzip2 sorting.tar.bz2,使用此命令会将.tar.bz2压缩文件解压缩为sorting.tar.bz2

显示用gzip/bzip2压缩的文件的内容

zcat/zmore/zless sorting.tar.gz

bzcat/bzmore/bzless sorting.tar.bz2

posted on 2021-01-02 01:33  人无名,则可专心练剑  阅读(187)  评论(0编辑  收藏  举报