命令常用参数整理

文章目录

  • 1.xargs
  • 2.tar
  • 3.awk
  • 4.grep
  • 5.sed
  • 6.wget
  • 7.curl
  • 8.find
  • 9.watch
  • 10.scp
  • 11.diff
  • 12.screen
  • 13.unique
  • 14.top
  • 15.tree
  • 16.mount

1.xargs

NAME
xargs - build and execute command lines from standard input

SYNOPSIS
xargs [options] [command [initial-arguments]]

常用参数:

-d 指定分隔符,例如:

sss@ubuntu:~$ echo aabbcddeeff |xargs -d c echo
aabb ddeeff

-I或-i指定一个替换字符串,initial-arguments中的出现的替换字符串将会被替换为从标准输入读取的内容。

sss@ubuntu:~$ find ./ -name foo.c -type f|xargs -t -I {} mv {} ./test/
mv ./foo.c ./test/

上述命令中-t -I {}这部分是options,mv是command ,{} ./test/是initial-arguments。前面-I指定了{}为替换字符串,那么后续执行mv时,就会把initial-arguments中的{}替换为find输出的内容。
-P交互式执行命令,每条命令需要确认

sss@ubuntu:~$ echo sss|xargs -p echo
echo sss ?...y
sss
sss@ubuntu:~$

-t在执行前打印执行的命令

2.tar

NAME
tar - an archiving utility

SYNOPSIS Traditional usage
tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG…]

常用操作模式(以下模式有且仅能有一个):
-c:创建新的tar文件

sss@ubuntu:~$ tar -acvf pro.tar.xz ./programme/
./programme/
./programme/test.sh
./programme/test.c
./programme/makefile.makefile
sss@ubuntu:~$ ls
Desktop  Documents  Downloads  linux  linux-0.01.tar.gz  Music  Pictures  programme  pro.tar.xz  Public  snap  Templates  Videos

-d:查看差异
删除./programme下的makefile.makefile,修改test.sh后执行命令

sss@ubuntu:~$ tar -df pro.tar.xz ./programme/
./programme/test.sh: 修改时间不同
./programme/test.sh: 大小不同
tar: ./programme/makefile.makefile:警告:无法 stat: 没有那个文件或目录

-r:附加新的文件到tar文件中
-t:列出tar文件中包含的文件的信息
-x:解开tar文件
常用参数:
-v:显示解压缩执行过程
-f:指定要处理的文件名
-C:改变至指定目录解压
压缩选项:
-a, --auto-compress 使用归档后缀名来决定压缩程序
-j, --bzip2 通过 bzip2 过滤归档
-J, --xz 通过 xz 过滤归档
–lzip 通过 lzip 过滤归档
–lzma 通过 xz 过滤归档
–lzop 通过 lzop 过滤归档
–no-auto-compress 不使用归档后缀名来决定压缩程序
-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档
–zstd 通过 zstd 过滤归档
-Z, --compress, --uncompress 通过 compress 过滤归档(其实就是打包的tar)

3.awk

grep 更适合单纯的查找或匹配文本
sed 更适合编辑匹配到的文本
awk 更适合格式化文本,对文本进行较复杂格式处理

首先,awk是门语言,我一直以为是个命令来着。。。

awk [-W option] [-F value] [-v var=value] [–] ‘program text’ [file …]

常见的使用方法是这样的:

ss@ubuntu:~$ cat /etc/passwd|awk -F : '{print $1}'
root
daemon
bin

其中’{print $1} '的被'所包裹的部分是awk语言部分,前面部分则是命令与参数。下面解释这两个部分。
命令参数:
-F:指定域分隔符,也就是切割字段的标识。可以是字符串,也可以是正则表达式
-v:分配一个自定义变量

awk语言:
awk语言是一系列的pattern {action} 对和用户函数定义。这里只学习了最简单的使用命令的相关内容。
模式pattern可以是以下几种:

1.BEGIN
2.expression
3.expression , expression
4.END

下面对这些模式进行一一介绍:

  1. BEGIN后紧跟着动作,这个动作块awk处理任何输入文件之前执行。
  2. END不匹配任何的输入文件,但是执行动作块中的所有动作,它在整个输入文件处理完成后被执行。
  3. expression代表表达式作为模式,每条记录时执行,这里列举其中几种情况:
    • 正则表达式:
      形式:/regular expression/
      作用:如果输入行包含字符串与 正则表达式 相匹配,则执行语句
    • 与或非等逻辑表达式
      形式:pattern && pattern
      pattern || pattern
      ! pattern
      作用:求表达式的逻辑运算结果,为真则执行语句
    • 三目等表达式
      形式:pattern ?pattern:pattern
      作用:和c的三目运算符一样,如果第一个为真则选第二个,否则选第三个
  4. 最后一种则是范围模式expression , expression
    范围模式(range pattern)匹配从与 模式1 相匹配的行到与 模式2 相匹配的行(包含该行)之间的所有行,对于这些输入行,执行 语句 。
    注意:BEGIN和END不与其他模式组合。范围模式不可以是任何其他模式的一部分。BEGIN和END是仅有的必须搭配动作的模式。

pattern 和{action} 这两者可以被忽略其中一个,像上例中的awk -F : '{print $1}'就是忽略了模式。而如果把动作省略,则会默认执行print动作。
由于模式和动作两者任一都是可选的,所以需要使用大括号包围动作以区分于其他模式。

一个典型的awk语言片段:

BEGIN { FS = "[^A-Za-z]+" }
{ for(i = 1 ; i <= NF ; i++)  word[$i] = "" }
END { delete word[""]
for ( i in word )  cnt++
print cnt
}

这个片段比较复杂,下面找一个简单来解析下:
针对如下片段:

echo "11 22 33 44
55 66 77 88
99 00"|
awk -F ' '  '
BEGIN{printf("start\n")}
NR!=2 {print $2}
END{printf("end\n")}
'

输出如下:

start
22
00
end

下面来分析下发生了什么,BEGIN和END只各执行一次(就像前面说的,各自在开始结束只执行一次),而{print $2}执行了2次,BEGIN和END中间的部分,将会在每条记录执行一次。
其中记录就是最开始输入的每行,而字段就是被分隔的字段数。比如这个例子中,有3条记录,4个字段。

运算符

运算符 描述
= += -= *= /= %= ^= **= 赋值
?: C条件表达式
|| 逻辑或
&& 逻辑与
~ 和 !~ 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
空格 连接
  • |加,减
  • / % |乘,除与求余

    • ! |一元加,减和逻辑非
      ^ *** |求幂
      ++ -- |增加或减少,作为前缀或后缀
      $ |字段引用
      in |数组成员
      变量:

分为内置变量和自定义变量;输入分隔符FS和输出分隔符OFS都属于内置变量。
内置变量就是awk预定义好的、内置在awk内部的变量,而自定义变量就是用户定义的变量。

  1. built-in变量:
变量 描述
$n 当前记录的第n个字段,字段间由FS分隔
$0 完整的输入记录
NF 一条记录的字段的数目
NR 已经读出的记录数,就是行号,从1开始
FNR 各文件分别计数的行号
FS 字段分隔符(默认是任何空格)
RS 记录分隔符(默认是一个换行符)
OFS 输出字段分隔符,默认值与输入字段分隔符一致。
ORS 输出记录分隔符(默认值是一个换行符)
ARGC 命令行参数的数目
ARGIND 命令行中当前文件的位置(从0开始算)
ARGV 包含命令行参数的数组
CONVFMT 数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组
ERRNO 最后一个系统错误的描述
FIELDWIDTHS 字段宽度列表(用空格键分隔)
FILENAME 当前文件名
IGNORECASE 如果为真,则进行忽略大小写的匹配
OFMT 数字的输出格式(默认值是%.6g)
RLENGTH 由match函数所匹配的字符串的长度
RSTART 由match函数所匹配的字符串的第一个位置
SUBSEP 数组下标分隔符(默认值是/034)
2.自定义变量
方法一:-v varname=value ,变量名区分字符大小写。
方法二:在program中直接定义。
函数
函数也有build-in和自定义函数
内置函数有算数函数,字符串函数,时间函数,位操作函数等等
数组
AWK 可以使用关联数组这种数据结构,索引可以是数字或字符串。
AWK关联数 组也不需要提前声明其大小,因为它在运行时可以自动的增大或减小。
使用delete删除数组元素

4.grep

-e指定正则表达式作为模式
-E 指定扩展的正则表达式作为模式,按我的理解就是可以使用正则的更多功能
-i忽略大小写
-v:排除模式对应字符串
-w:全单词匹配
-x:全行匹配
输出控制:
-c:只显示匹配行数
-n:带行号输出
–color:带颜色输出
-m:匹配一定数目后停止查找
-o:只输出匹配部分
-r:递归目录下所有文件查看
-R:跟踪所有符号链接
-i:忽略大小写
-I:不比较二进制数据
-h:不带文件名
-H:带文件名
-s:不输出错误
应用:在目录下查找字符串:egrep -iHrns
匹配行上下文控制:
-A是显示匹配后和它后面的n行。after
-B是显示匹配行和它前面的n行。 before
-C是匹配行和它前后各n行。 context
egrep等价于grep -E,我在Man手册中看到Egrep的使用不被赞成。
另外关于grep的匹配模式,请看这篇文章,我之前用\d匹配不到数字,就是因为模式问题。
具体匹配模式请看:通配符与正则表达式

5.sed

sed - stream editor for filtering and transforming text

sed是一个流编辑器,可以用来过滤或转换文本

sed [-hnV][-e<script>][-f<script文件>][文本文件]

我在学习这个命令的时候参考了很多这个博主的系列文章,他对sed的man手册进行了翻译,并给出了不少例子以及自己的理解,有兴趣的小伙伴可以去看下
参数说明:
-n或–quiet或–silent 仅显示script处理后的结果。
p: 打印匹配行(和-n选项一起合用)
-e<script>或–expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或–file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-r :使用扩展的正则表达式和grep -E中的参数作用类似
-s:将文件作为独立的而不是作为一个单独的连续流,这里针对的是多个文件的情况
-V或–version 显示版本信息。
-h或–help 显示帮助。
-i:直接编辑文件,会将文件直接修改,慎用,如果指定了-i的值(suffix),sed将会备份一份原文件。-i选项后面直接加备份文件后缀,-i和后缀之间没有空格。


关于sed的实际使用,还是从他那里引用的,如下:

如果命令行上只有一个指令的时候可以不用写-e,但是如果有多个指令的话一定要在每个指令的前面加-e选项;
sed指令用引号单引号和双引号指定都可以,或者可以不用引号,这个时候如果指令中有特殊字符,要用反斜杠\来屏蔽掉特殊字符比如“空格”、“;”等,所以sed命令:sed -e ‘1p’ sed.txt 可以这样写: sed ‘1p’ sed.txt 不用指定-e,直接加命令‘1p’或者:sed 1p sed.txt不用加引号,如果指令中有特殊字符的话一定要用反斜杠来转义比如:
sed 1s/ line/LINE/p sed.txt (在line前指定了空格)会出现unterminated `s’ command的错误,如果加了反斜杠sed 1s/\ line/LINE/p sed.txt (在line前的空格前加了/)就可以正确运行,但是建议用单引号,同时写上-e,否则阅读难度增大。
哦差点忘了,如果指令有多个指令,可以有三种书写方式:1.多个指令写在一起,用分号分隔;2.多个指令分开写,但是要在每个指令前放置-e;3.使用Bash的分行指令功能,注意在输入单引号后按回车键(Enter)就会出现多行输入的提示符“>”。

script应当由两种东西组成,一个是要完成的命令/动作,另一个是地址(要操作的行)。下面分别对这两个部分进行描述,只列举了常用的,具体请参考man手册。地址应在命令前 : [address]command。地址是可以省略的,省略后应当是对全局操作,比如sed d test.txt就会吧test.txt当中的东西全部删掉。


命令概要:
1.不需要地址的命令:
:lable 作为分支(b)和测试(t)命令的标签,不懂啥意思,好像就是像标签一样的东西。
#comment 这个是注释,会一直延续到下一行(或者一个-e脚本片段的末尾)
}:命令组{}的结尾
2.不需要地址或一个地址的命令
=: 显示文件行号
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

值得注意的是,在官方的man手册里,新增,插入,修改操作的要新增插入修改的数据,都是通过反斜杠\折行到下一行输入的

q:立即退出sed命令,不再处理任何输入
r:从指定的文件中读取内容,附加到选定行之后。
3.指定地址范围的命令
{: 可以用大括号将多个命令集中起来对当前行进行操作。如果想指定行的范围,然后在这个范围内指定另一个地址,则可以嵌套地址。用}结尾
b label:将跳转到标签后执行,感觉比较像c的jump.如果标签未指定,将跳转到脚本末尾。
t label :如果s指令发生替换操作,尽管已经读入输入的最后一行,或者已经是最后的t、T,都会转移到指定的标签后;如果忽略具体的标签,将会将控制转移到脚本末尾。
T:和t差不多,只是这里是s指令没有发生替换操作然后就转移控制到指定标签,如果s指令发生替换,就不转移控制。
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
h H:将模式空间(Pattern space)中的数据复制/追加到保留空间(Hold space)中。
补充:sed有两个缓冲区:模式空间(Pattern space)和保留空间(Hold space);所有的命令都工作在模式空间上,模式空间保存着sed刚刚从输入中读取的行,保留空间作为临时缓冲区,可以在sed script操作模式空间中的数据的时候用来暂存模式空间上的数据,在将数据放入保留空间的之前,保留空间的内容为空;h将模式空间中的内容复制到保留空间中,同时保留空间中原来的数据将会全部丢失,H只会将模式空间的内容附加到保留空间原有内容的后面同时用一个换行符隔开。

g G:将保留空间(Hold space)的数据复制/追加到模式空间(Pattern space)中。就是刚刚用h或H保存的。
n N:将当前行的下一行数据覆盖/追加进当前模式空间(Pattern space)的内容。
提示:其中n表示将模式空间中内容的下一行数据读取进来,这个时候模式空间中原有的内容将会被覆盖;N表示将模式空间中内容的下一行数据读取,然后追加到模式空间中原有的内容后,并用反斜杠隔开.
p P:
打印当前模式空间(Pattern space)中内容的第一行数据。
打印当前模式空间(Pattern space)中的全部内容。
提示:之前说过模式空间是可以存在多行数据的,p(小写)和P(大写)作用不同在于,前者打印全部,而后者只打印第一行。
s/regexp/replacement/ :
尝试对模式空间中的内容进行正则表达式“regexp”的匹配,如果匹配成功,将会用“replacement”来代替匹配的部分;“replacement”可以包含特殊字符“&”,“&”用来代替匹配“regexp”的模式空间的内容,而/1、/2、/3……/9表示“regexp”的子表达式的匹配内容。
1、2、3……等数据第几个子表达式的意思,参考正则表达式中()捕获内容的反向引用。
w filename:
将当前模式空间(Pattern space)的全部内容写入到文件“filename”中
W filename:
将当前模式空间(Pattern space)内容中的第一行写入到“filename”中。
y/source/dest/:
用另一种字母体系将模式空间(Patter space)内出现的“source”字符替换成对应的“dest”字符。
提示:这个命令说白了就是转换数据中的字元,例如指令:y/abc…/xyz…/针对这个指令 /abc…/xyz…/(x、y、z、a、b、c 代表某些字元)为y的参数,其中 abc… 与 xyz… 的字元个数必须相同;sed 执行转换时,将 模式空间内数据中的 a 字元转换成 x 字元 、b 字元转换成 y 字元 、c 字元转换成 z 字元……


在地址后面,和在命令之前之间可能会插入一个感叹号(!),它代表这个命令只有在前面的地址不匹配的时候才会被执行。
指定地址的方式:
number :只匹配指定数字的行
first~step: 匹配以first开始的,以step为步长的所有行
$: 匹配最后一行
/regexp/ :匹配匹配这个正则表达式的行
cregexpc : 匹配匹配这个正则表达式的行,c可以是任何字符。(说白了就是用c来指定正则表达式,平时我们都用斜杠,就是c默认的是斜杠,你可以指定其他字符)
举例:

sed -e "s@://@://admin:admin\@@g"

看看chatgpt的回答:

Q:解释这段shell代码的含义 sed -e "s@://@://admin:admin\@@g"A:这段 Shell 代码使用了 sed 命令,用于在文本字符串中查找所有的 "://" 字符串,并将其替换为 "://admin:admin@" 字符串。具体来说:sed 是一个流编辑器,可用于从文本输出中选取和转换文本。
-e 参数表示后面紧跟着的字符串是 sed 命令。
s 表示替换操作,@ 符号是分隔符,用于分隔不同的字段(在这里忽略斜杠字符可能会引起歧义)。
// 是要查找的模式。
://admin:admin@ 是要替换的目标字符串。其中 admin:admin 可能是登录凭据,用于访问某些需要身份验证的 URL 的情况下。
g 表示全局替换模式,即将所有匹配到的模式都进行替换。

gnu sed还支持特殊的双地址的形式:
0,addr2 :仅当addr2为正则表达式时才有效 。开始于匹配首行状态,直到addr2被找到 他和1,addr2很相似,区别在于,假如第一行第二行都匹配addr2,则0,addr2一开始就能检测到,而1,addr2第二行才能检测到,所以最后0,addr2匹配到了第1行,1,addr2匹配到了1,2两行
addr1,+N : 匹配addr1以及之后的N行
addr1,~N :从addr1开始,以N为步长的行

6.wget

NAME
Wget - The non-interactive network downloader.
SYNOPSIS
wget [option]… [URL]…

常用的参数有:
-b, --background 启动后转入后台。
-o, --output-file=FILE 将信息写入 FILE。
-nc, --no-clobber 不要重复下载已存在的文件。
-L, --relative 只跟踪有关系的链接。
-c, --continue 继续下载部分下载的文件。
-P, --directory-prefix=PREFIX 以 PREFIX/… 保存文件
-O,使用一个大写O做参数表示另存为
可以在本地/dev/null的帮助下,无痕测试文件下载速度

wget -O /dev/null http://nginx.org/download/nginx-1.19.0.tar.gz

–spider,试图做计划下载时候,需要先检查一下下载链接是否有效。
-i,下载多个文件使用wget -i=,将多个下载链接写入到一个download-file-list.txt文件中,而后用

wget -i download-file-list.txt

-r, –recursive 递归下载--慎用!
-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷)
-A, –accept=LIST 分号分隔的被接受扩展名的列表
-R, –reject=LIST 分号分隔的不被接受的扩展名的列表
-np, –no-parent 不要追溯到父目录

7.curl

NAME
curl - transfer a URL

SYNOPSIS
curl [options / URLs]
常用参数:
-F:向服务器上传二进制文件。
-I:仅抓取包头
-L:重定向到新的服务器地址,如果请求的页面已经被移动到了新位置。
-o:将服务器的回应保存成文件,等同于wget命令。
-O:将服务器回应保存成文件,并将 URL 的最后部分当作文件名。
-u:设置服务器认证的用户名和密码。
-s:静默模式,不输出任何信息
-x:使用指玎代理服务器
-#:显示下载进度条
此命令参数非常多,待补充…
可使用通配下载多个文件:

curl -O https://www.baidu.com/2531170[1-5].JPG

8.find

NAME
find - search for files in a directory hierarchy

SYNOPSIS
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point…] [expression]

常用参数:
-name “PATERN”
-iname “PATERN” :不区分名称字母大小写
-type:根据不同的文件类型筛选
具体类型
f 普通文件
d 目录文件
l 符号链接文件
b 块设备 文件
c 字符设备文件
p 管道文件
s 套接字文件

-amin n : 在过去 n 分钟内被读取过
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-anewer file : 比文件 file 更晚被读取过的文件
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件

9.watch

NAME
watch - execute a program periodically, showing output fullscreen

SYNOPSIS
watch [options] command

周期性的执行命令,并输出第一屏(如果有多屏输出)。默认两秒一次执行周期。
常用参数:
-d:高亮差异部分
-n:执行执行周期,最小不小于0.1秒。
-t:关闭watch命令在顶部的时间间隔,命令,当前时间的输出
-b:非正常退出响铃。
-e:停在命令失败时,直到按下按键
-g:输出改变时退出

10.scp

NAME
scp — OpenSSH secure file copy

SYNOPSIS
scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option]
[-P port] [-S program] source … target
scp把文件通过网络在主机间拷贝。
常用参数:
-B: 使用批处理模式(传输过程中不询问传输口令或短语)待验证
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。

11.diff

NAME
GNU diff - compare files line by line

SYNOPSIS
diff [OPTION]… FILES

常用参数:
-q 仅显示有无差异,不显示详细的信息。
-s 若没有发现任何差异,仍然显示信息。
-c  显示默认3行上下文,同时用修改前后做比较标出不同之处。
-u  显示默认3行上下文,以合并的方式来显示文件内容的不同。
-y 以并列的方式显示文件的异同之处。
-W 指定最大宽度。
-p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
-F 以正则过滤显示最近的行
-t 在输出时,将tab字符展开为空格。
-T 在每行前面加上tab字符以便对齐。
-l  将结果交由pr程序来分页。
-r或–recursive  比较子目录中的文件。
-N 在比较目录时,若文件A仅出现在某个目录中,预设会显示:
-x<文件名或目录> 不比较选项中所指定的文件或目录。
-X<文件> 将文件或目录类型存成文本文件,然后在<文件>中指定此文本文件。
-S<文件> 在比较目录时,从指定的文件开始比较。
-i:忽略大小写
-E:忽略由tab扩展带来的差异
-Z:忽略行末空格
-b :不检查空格字符的不同。
-w:不检查任何空白字符
-B 不检查空白行。
-I<字符或字符串> 用正则指定排除差异的规则,即不去比较的模式
-a 把所有文件都当文本比较

12.screen

NAME
screen - screen manager with VT100/ANSI terminal emulation

SYNOPSIS
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]

screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
常用参数:
-A  将所有的视窗都调整为目前终端机的大小。
-d<作业名称>  将指定的screen作业离线。
-dr重新附加会话,如有必要,先将其分离。
-dR重新附加会话,如有必要,先分离甚至创建会话。
-dRR重新附加会话,并在必要时分离或创建会话。如果有多个会话可用,请使用第一个会话。
-Dr重新附加会话。如有必要,先远程分离并注销。
-DR此时此地附上。详细来说,这意味着:如果会话正在运行,则重新附加。如有必要,先远程分离并注销。如果它未运行,请创建它并通知用户。这是此命令作者的最爱。
-h<行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-S<作业名称>  指定screen作业的名称。
-ls或–list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

C-a代表控制键,在screen内,控制键+某个键将对应某个特定的功能,比如C-a ?将输出可用命令及其绑定的列表,这个帮助里显示的单字母代表Ctrl+a,放开后再跟这个字母。而^X x这种形式,则代表Ctrl+a后不放ctrl接着按x。

常用:
1、新建子窗口:
可以通过Ctrl+a+c 组合快捷键在当前的screen下创建一个新的子窗口,并跳转到上面去。

2、查询当前的子界面状态:
可以通过Ctrl+a+w组合快捷键,在屏幕的左下角就会出现类似:0-$ bash 1*$ bash之类的样式。这个表示当前screen下有两个子窗口,当前在的是1号子窗口。当然,这个子窗口的数目可以有很多。

3、切换子窗口:
方法很多,可以通过Ctrl+a+a组合快捷键在最近的两个窗口中切换,也可以用Ctrl+a+n 切换到下一个窗口,或是Ctrl+a+p 切换到上一个窗口,或是Ctrl+a+num 切换到第num个窗口。ctrl+a ',选项式选择。

4、锁定当前窗口:
可以用Ctrl+a+x 来锁住当前的界面,此时所有的快捷键都无法使用,直到输入了密码。。

5、关闭当前窗口:
这个可以直接用Ctrl+d 或者exit 来关闭,当这个窗口是现有screen的最后一个窗口时,就会触发上面讲的关闭当前screen的事件了。

6、暂离当前screen:
这个也是screen命令的精髓,用组合键Ctrl+a+d 就能detached当前的screen,回到默认界面。

其他:
ctrl+a+[ 有点像vim的可视模式一样复制,可跨越行
ctrl+a+] 粘贴
ctrl+a >将复制的内容写入文件
ctrl+a S分隔窗口
ctrl+a tab 切换分隔窗口,切换后可以把当前分隔窗口切到其他终端(ctrl+a+a)
ctrl+a I 好像也可以切换分隔窗口
ctrl+a Q关闭其他分隔窗口
ctrl+a X关闭当前分隔窗口
ctrl+a A更改窗口名字
ctrl+a F窗口适应
ctrl+a h记录当前窗口的日志
ctrl+a H从登录到退出的日志
ctrl+a \关闭所有窗口并退出

13.unique

NAME
uniq – report or filter out repeated lines in a file

SYNOPSIS
uniq [-c | -d | -D | -u] [-i] [-f num] [-s chars] [input_file [output_file]]

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
常用参数:
-c或–count 在每列旁边显示该行重复出现的次数。
-d或–repeated 仅显示重复出现的行列。
-D:与-d类似,但是所有重复的列都输出
-i:忽略大小写
-f<栏位>或–skip-fields=<栏位> 在每一行开始忽略比较指定的字段数。
-s<字符位置>或–skip-chars=<字符位置> 在每一行开始忽略比较指定的字符。
-u或–unique 仅显示不重复的列。
–help 显示帮助。
–version 显示版本信息。
[输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
[输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

14.top

NAME
top – display sorted information about processes

SYNOPSIS
top [-a | -d | -e | -c mode]
[-F | -f]
[-h]
[-i interval]
[-l samples]
[-ncols columns]
[-o key | -O skey]
[-R | -r]
[-S]
[-s delay-secs]
[-n nprocs]
[-stats keys]
[-pid processid]
[-user username]
[-U username]
[-u]
top命令周期性的显示系统进程的有序列表,默认的排序关键字是pid,也可以替换成其他字段。
可参考这篇文章,里面介绍的特别详细,突然发现top命令这么复杂
top命令在执行时可以使用按键交互,按h可查看帮助:
按键 功能
h键 会显示帮助画面, 同时会显示目前的设置,比如模式,延迟等

E键 切换顶部内存显示单位
e键 切换进程内存显示单位

l键 切换显示平均负载和启动时间信息。
t键 切换显示CPU状态信息
m键 切换显示内存信息
f,F键 从当前显示中添加或者删除项目

R键 反转排序
H键 统计线程
c键 命令行/程序名切换,用于更改COMMAND字段展示的程序名还是命令行
i键 开/关忽略闲置和僵死进程
S键 切换到累计模式
x键 高亮排序字段,在搜索和过滤的时候,列高亮是关闭的。
y键 高亮运行中的任务
o,O键 改变显示项目的顺序
V键 树形结构模式 开关
v键 隐藏/显示子进程 切换
在树形结构模式中,这个命令可以显示或隐藏子进程。如果被选定的进程没有子进程,就无事发生。

k键 终止一个进程
r键 重新设置一个进程的优先级别(数值越高优先级越低)

d|s键 更改刷新间隔时间,单位秒

M键 根据驻留内存大小(RES)排序
P键 根据CPU使用百分比大小进行排序
T键 根据时间/累计时间进行排序

= :退出任务限制
删除任务展示的限制。这个命令会使’i’(空闲任务)、‘n’(最大任务)、‘v’(隐藏子任务)这些命令的效果反转。它还提供了从 PID 监控、用户过滤、其他过滤和定位处理的退出。另外,如果窗口已经滚动了,这个命令也可以重置窗口。

15.tree

NAME
tree - list contents of directories in a tree-like format.

SYNOPSIS
tree [-acdfghilnpqrstuvxACDFQNSUX] [-L level [-R]] [-H baseHREF] [-T
title] [-o filename] [–nolinks] [-P pattern] [-I pattern] [–inodes]
[–device] [–noreport] [–dirsfirst] [–version] [–help] [–filelimit
#] [–si] [–prune] [–du] [–timefmt format] [–matchdirs] [–]
[directory …]
常用参数:
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*“,”/“,”=“,”@“,”|"号。
-i 不以阶梯状列出文件或目录名称。
-L level 限制目录显示层级。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

16.mount

NAME
mount - mount a filesystem

SYNOPSIS
mount [-l|-h|-V]

   mount -a [-fFnrsvw] [-t fstype] [-O optlist]mount [-fnrsvw] [-o options] device|dirmount [-fnrsvw] [-t fstype] [-o options] device dir

相关常识:

  1. 列出mount的目标
    更推荐使用findmnt
  2. 指示设备和文件系统
    分卷名是易变的,所以推荐使用分卷的标识符,例如UUID或LABEL。可以使用lsblk --fs对所有块设备的概览进行查看,而blkid -p针对特定分卷提供更详细的信息。
  3. 移动挂载点
    mount -M/–move olddir newdir
    常用参数:
    -a:将 /etc/fstab 中定义的所有档案系统挂上。
    -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
    -f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
    -n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
    -s:容忍草率的挂载选项,而不是失败。这将忽略文件系统类型不支持的挂载选项。并非所有文件系统都支持此选项。目前它是由挂载支持的。仅限NFS挂载帮助器。
    -r:等于 -o ro
    -w:等于 -o rw
    -L:将含有特定标签的硬盘挂上。
    -l:给挂在的分区添加标签
    -U:将档案分割序号为特定uuid的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
    -t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
    -R 重新挂载
    文件系统无关选项
    -o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
    -o sync:在同步模式下执行。
    -o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
    -o auto、-o noauto:打开/关闭自动挂上模式。
    -o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.依赖与内核和文件系统。
    -o dev、-o nodev允许/不允许字符和块设备等被解释
    -o exec、-o noexec允许执行档被执行。
    -o user、-o nouser:使用者可以执行 mount/umount 的动作。
    -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
    -o ro:用唯读模式挂上。
    -o rw:用可读写模式挂上。
    文件系统相关选项
    文件系统有很多种,下面是相应的手册:

    这里只关注cifs和nfs。
    nfs:
    只对nfs2或nfs3有效:
    udp 与指定proto=udp效果相同,包含它是为了与其他操作系统兼容。
    tcp 与指定proto=tcp效果相同,包含它是为了与其他操作系统兼容。
    在不稳定的复杂网络环境中建议使用tcp参数,在稳定的网络下可以使用udp参数。NFSv3/NFSv4支持tcp/udp,NFSv2只支持udp。
    port=n 服务器NFS服务端口的数值。如果指定端口上服务器的NFS服务不可用,则挂载请求失败。如果未指定此选项,或者指定的端口值为0,则NFS客户端使用服务器的rpcbind服务发布的NFS服务端口号。如果服务器的rpcbind服务不可用,服务器的NFS服务没有注册到它的rpcbind服务,或者服务器的NFS服务在发布的端口上不可用,则挂载请求失败。
    mountport=n 服务器挂载端口的数值。如果服务器的挂载服务在指定的端口上不可用,则挂载请求失败。
    如果未指定此选项,或者指定的端口值为0,则mount(8)命令使用服务器的rpcbind服务发布的mount服务端口号。如果服务器的rpcbind服务不可用,服务器的挂载服务没有注册到它的rpcbind服务,或者服务器的挂载服务在发布的端口上不可用,则挂载请求失败。
    当通过阻止rpcbind协议的防火墙挂载NFS服务器时,可以使用此选项。
    mounthost=name 正在运行mount的主机名。如果不指定该选项,则mount(8)命令假定mount服务与NFS服务运行在同一台主机上。
    lock / nolock 选择是否使用NLM边带协议锁定服务器上的文件。如果两个选项都没有指定(或者指定了lock),则对这个挂载点使用NLM锁定。当使用nolock选项时,应用程序可以锁定文件,但是这种锁只对运行在同一客户机上的其他应用程序提供排斥。远程应用程序不受这些锁的影响。
    当使用NFS挂载/var时,必须使用nolock选项禁用NLM锁定,因为/var包含Linux上NLM实现使用的文件。在不支持NLM协议的NFS服务器上挂载导出文件时,也需要使用nolock选项。

挂载nfs的常见选项:

sudo mount -o rw,async,nolock link.local:/  /mnt/link

如果出错了可以使用 -vvv看更详细的信息
使用showmount -e可以查看nfs服务器的mount信息

showmount -e link.local

需要注意的是,若是使用的是容器为客户端,那么需要设置privileged参数 ,不然挂载不上,然后还有就是我这边指定udp也会出错,去掉就可以了。

linux常用终端命令参数整理相关推荐

  1. Linux常用终端命令

    Linux常用终端命令 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应功能的英文单词或单词的缩写 [-options] : 选项,可用 ...

  2. Linux常用终端命令之cat、grep、echo、shuf

    grep grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本, ...

  3. 树莓派-Linux常用终端命令nano和vi编辑器的使用(3)

    原文地址: 每天会分钟带你学会树莓派--基础篇09Linux系统操作命令和编辑器的使用_哔哩哔哩_bilibili 一.nano编辑器 终端窗口使用nano nano file #使用nano编辑文件 ...

  4. linux+top+常用参数,linux的top命令参数详细说明

    Linux中的top命令是个常用的命令之一,下面由学习啦小编为大家整理了Linux的top命令参数详细说明,希望对大家有帮助! linux的top命令简介 top命令是Linux下常用的性能分析工具, ...

  5. 在linux系统环境中 常用的关机命令,Linux常用基础命令整理:关机命令、查看目录下文件命令等...

    整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能 Ctrl+c按键---停掉正在运行的程序 Ctrl+d按键---相当于exit ...

  6. linux常用基础命令整理

    linux常用基础命令整理 su - 用户名 ->切换到指定用户下 ls ------>查看当前目录下的目录及文件 clear ------>清理屏幕 cd 路径 -----> ...

  7. 八、Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程(中)

    @Author : Runsen @Date:2020/9/11 文章是Runsen在Gitchat付费文章分享:Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程 顺便同步到C ...

  8. Linux常用脚本命令总结

    基本操作 通用操作 1. export 显示所有的环境变量,也可以获取到某个变量的详细信息: export # 显示所有 echo $SHELL # 只显示SHELL 2. whereis 使用系统自 ...

  9. Linux常用基础命令198个

    Linux常用基础命令198个 1.mkdir 创建目录 * 主要选项:-p 递归创建目录 主要案列:mkdir /xujun mkdir -p /xujun/oldboy mkdir -p /xuj ...

最新文章

  1. 关于XDC约束文件,你需要知道的几点
  2. cocos2dxFlappyBird开发总结二:开发环境介绍
  3. [Logstash]使用详解
  4. 开源的网页防篡改监控工具推荐——WGCLOUD
  5. python 包之 Pygame 游戏开发教程
  6. iOS逆向工程开发技巧
  7. Android软键盘删除键触发Activity的返回事件
  8. iphone双重认证关闭不了怎么办_怎么关闭iPhone手机双重认证? 关闭苹果手机双重认证的两种操作方法...
  9. 构建具有时间依存协变量的Elastic-net Cox模型
  10. 华为云发布《云原生2.0架构白皮书》,GaussDB技术再升级
  11. WiFi DFS(动态频率选择)
  12. U-BOOT 下载 GitHub
  13. 离职 需要注意三个问题
  14. webpack安装及配置
  15. 传奇私服中检查人物穿戴指定装备的两种方法
  16. 数据库SQL实战题目详解(全61题)---(41-61)部分
  17. cdm 图片 转_从CDP到CDM的转变
  18. [易飞]关于易飞ERP进货单审核过程的总结
  19. C++ 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对
  20. 信息系统项目管理师(2022年)—— 重点内容:信息系统项目管理基础(2)

热门文章

  1. IDEA报错:前言中不允许有内容
  2. Microsoft Edge 从老版本升级到chromium 内核后,打开所有网页报此页存在问题
  3. C语言中define的用法
  4. 姜昆相声里提到过的同时进放水问题非方程解答
  5. 关机状态下启动微型计算机叫什么,微机的冷启动方式是什么?
  6. 分享几款常用远程连接工具
  7. ctf php sql注入,【CTF-Web Learning 1】0x01 SQL注入之宽字节注入
  8. iApp 的销售模式的重要性?
  9. vcf转化为plink报错
  10. python数据库环境详解_python中MySQL数据库相关操作