涉及工作中Linux常用命令详解

涉及工作中Linux常用命令详解

一、Linux

1.汇总

lz按照自己实际工作中(类别是从一些教学网站上截取的)

文件/目录操作磁盘操作网络通讯系统操作备份压缩其他命令
catcdtelnetpstarbc
findpwdnetstattopziphead
greplsifconfigfreeunziptail
sedmkdirpingcrontabgzipxargs
cutrmdirdateip
awkdfkillnohup
chmodpasswdman
chownexportcurl
readsetwget
mvunsetifconfig
rmresetlsof
touchsetenvwatch
cpsudo
scpclear
rcpuname
exprwhoami
wcrpm
letuseradd
moreuserdel
sortusermod
uniqgroupadd
lnexit
diffsleep
reboot
shutdown
halt
id
chkconfig
2.具体使用
cat
1.语法
	cat [option] filename

2.作用:查看文件,也可新建 or 修改文件

2.option
	-b	对非空行输出行号
	-n	输出所有行号

3.eg
    cat filename     // 查看文件
    cat >filename    // 新建文件 or 覆盖原有文件内容
    cat >>filename   // 追加内容到文件的末尾
    cat f1 f2 > file // 合并f1 f2文件到file中
	cat -b filename
	cat -n filename
	
	结合其他命令使用(伪代码)
	cat filename | grep
	cat filename | cut
	cat filename | sed

回到顶部

find
1.语法
	find pathname [option...] [-print/-exec/-ok ...]
	
2.作用:查找指定文件,并执行相应的命令

3.option
	-name	// 根据文件名称,可正则匹配
	-type	// 根据文件类型 d:目录 f:文件
	-user	// 根据文件属组
	-group	// 根据文件所属的组
	-size n	// 查找指定文件大小的文件 +1000c
	-mmin n // 查找系统中最后n分钟被改变文件数据的文件
	-amin n //  查找系统中最后n分钟访问的文件
	-atime n	// 查找系统中最后n*24小时访问的文件 (用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件)
	-maxdepth n 最大查找目录深度


	-print	// 匹配到的文件输出到标准输出中
	-exec	// 匹配到的文件执行该参数给出的shell命令,模板:'command' {} \;
	-ok  	// 以安全模式执行shell命令,以询问的方式
	
4.eg
	find ./ -name '*.log'	// 查找当前目录下以.log为后缀的文件
	
	find -atime -2	// 查找48h内修改过的文件
	find -mmin -5	// 查找5min内修改过的文件
	find ./ -type f -mmin +1 -name "*.log"	// 查找1min前修改过的并且是文件名以.log为后缀的文件
	
	find -size +1000c	// 查找大于1K的文件
	find /tmp -size +100M	// 查找tmp下文件大小大于100M的文件
	
	
	find ./ -type f "*.log" -exec 'rm' {} \;	// 查找文件名以.log为后缀的文件并且删除
	find ./ -type f -mmin -10 -name "*.log" -exec 'rm' {} \;	// 查找当前目录下5min内修改过内容的并且文件名以.log为后缀的文件然后执行删除命令
	
	find ./ -type f "*.log"	| xargs rm -f	// 通过结合xargs执行rm命令	

回到顶部

grep
Global Regular Expression Print(全局正则表达式搜索)
1.语法
	grep [option] pattern file|dir
    	
2.作用:对数据进行行提取,不改变源文件内容-可搭配正则使用

3.option
    -v #对内容进行取反提取(打印出不符合条件的内容)
    -n #对提取的内容显示行号
    -w #精确匹配
    -i #忽略大小写
    ^ #匹配开头行首
    -E #正则匹配
    -r 递归查找文件(当前目录以及子目录下所有所有的文件)
    -c --count 计算匹配的列数
    -f 从文件中读取关键词
 
4.正则表达式
    ^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。 
    $  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 
    .  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。  
    *  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
    .*   #一起用代表任意字符。  
    []   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 
    [^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。  
    \(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   
    \<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
    \>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
    x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 
    x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。  
    x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
    \w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。  
    \W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
    \b    #单词锁定符,如: '\bgrep\b'只匹配grep。
 
5.eg
	grep zhuyz *.txt    // 查找当前路径下后缀为.txt的所有文件中包含zhuyz字符串的文件,并且打印出该文件的行
	
	grep -r zhuyz ./	// 递归查找当前目录下以及子目录下的所有文件中包含zhuyz字符串的文件,并且打印出该文件的行
	
	grep -v zhuyz abc.txt	// 查找文件中不包含有zhuyz字符串的行内容,并且打印出这些行
	
	grep -rn zhuyz *	// 递归查找当前路径下以及子路径下所有文件 && 显示行号
	
	grep '\W' abc.txt	// 正则匹配\W:匹配非字母、数字、下划线
	
	ps -ef | grep zookeeper // 查看zookeeper的进程
	ps -ef | grep zookeeper -c // 查看zookeeper进程个数(查看zk集群有几台节点)
	
	cat abc.txt | grep -f zhuyz	// 从文件中读取关键字zhuyz的行内容
	
	grep -E 'zhuyz|zyz' abc.txt	// 从文件中读取含有zhuyz或者zyz的行内容
	
生产中查看日志:
	grep -n '2021-02-28 12:00:00' *.log | grep -n 'ERROR' *.log | grep -n 'Exception' *.log
    find ./ -type f -name "*.log" | xargs grep "ERROR|Exception" // 匹配找到当前目录以及子目录下以.log后缀的文件,传递给grep命令执行。

回到顶部

sed
Stream Editor(流编辑)
1.语法
	sed [选项][动作] 文件名 | sed [-hnV][-e<script>][-f<script文件>][文本文件]
	
2.对数据行进行处理(选取,新增,替换,删除,搜索)-可搭配正则使用

3.常见的选项与参数:
    -n #把匹配到的行输出打印到屏幕
    -e #表示可以执行多条动作[以选项中指定的script来处理输入的文本文件。]
    
    a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
	c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
	d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
	i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
	p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
	s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
		's' 就是替换的命令, 'g' 为本行中全局替换,如果不加 'g' 只换该行中出现的第一个。
		eg:'s/a/b/g':把a替换成b

4.正则表达式
    ^  #锚定行的开始 如:'^sed'匹配所有以sed开头的行。 
    $  #锚定行的结束 如:'sed$'匹配所有以sed结尾的行。 
    .  #匹配一个非换行符的字符 如:'s.d'匹配s后接一个任意字符,然后是d。  
    *  #匹配零个或多个先前字符 如:'*sed'匹配所有一个或多个空格后紧跟sed的行。
    .*   #一起用代表任意字符。  
    []   #匹配一个指定范围内的字符,如'[Ss]ed'匹配Sed和sed。 
    [^]  #匹配一个不在指定范围内的字符,如:'[^A-H]ed'匹配不包含A-H的一个字母开头,紧跟ed的行。  
    \(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   
    \<      #锚定单词的开始,如:'\<sed'匹配包含以sed开头的单词的行。
    \>      #锚定单词的结束,如'sed\>'匹配包含以sed结尾的单词的行。
    x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 
    x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。  
    x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
    \w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'S\w*ed'匹配以S后跟零个或多个文字或数字字符,然后是ed。  
    \W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
    \b    #单词锁定符,如: '\bsedp\b'只匹配sed。


5.eg
	p #以行为单位进行查询,通常与-n一起使用[打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~]
    eg:df -h | sed -n '2p'
    eg: sed -n '2,$p' df.txt     			// 显示第2行到最后1行
	
    d #删除[删除,因为是删除啊,所以 d 后面通常不接任何咚咚;]
    eg: sed '2d' df.txt	      			// 删除第2行
    eg: sed '2,5d' df.txt    			// 删除第2-5行
    eg: sed '2,$d' df.txt     			// 删除第2行到最后1行

    a #在行的下面插入新的内容[新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~]
    eg: sed '2a 1234567890' df.txt		// 在第2行下面新增1行

    i #在行的上面插入新的内容[插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);]
    eg: sed '2i 1234567890' df.txt		// 在第2行上面新增1行1234567890的内容
    eg: sed '2,5i 1234567890' df.txt	// 灵异插入,自己试试
    eg: sed '$i 1234567890' df.txt	// 在最后1行新增1行1234567890的内容

    c #替换[取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!]
    eg: sed '2c 1234567890' df.txt		// 替换第2行的内容为1234567890
    eg: sed '2,5c 1234567890' df.txt	// 替换第2-5行的内容为1234567890

    s/要被取代的内容/新的字符串/g #指定内容进行替换[取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!]-(可使用正则)
    eg:sed 's/0%/100%/g' df.txt
    eg:cat df.txt | sed 's/[0-9]/\*/g'	// 把数字替换成*(*是元字符,所以需要\转义)

    -i #对源文件进行修改(高危操作,慎用,用之前需要备份源文件)
	eg: sed -i '1i aaa' df.txt        	//	把aaa写入到df.txt的第一行

    搜索:在文件中搜索内容或者搜寻并删除(可使用正则)
    eg:cat -n df.txt | sed -n '/100%/p' // 检索关键字内容行(和p结合使用一定要加—n)
	eg:cat -n df.txt | sed '/100%/d'	// 检索并删除关键字内容行,显示其他行
    eg:cat abc.txt | sed -n '/^e/p'		// 检索并查找以e为开头的行内容
	
    -e #表示可以执行多条动作
    eg:cat -n df.txt | sed -n -e 's/100%/100%-----100%/g' -e '/100%-----100%/p
    eg:cat -n /etc/passwd | sed -e '3,$d' -e 's/root/re-root/g'	// 删除/etc/passwd第3行到末尾的数据,并把root替换为re-root
    
6.正则(如果sed命令想要使用正则匹配,一定要加上/)
	eg:sed -n '/[a-z]/p' df.txt
	eg:sed -r '/^(zhuyz)/'
	
	eg:	
    ifconfig eth1命令输出内容如下:
        eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.11.11  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::a00:27ff:fe8e:2f37  prefixlen 64  scopeid 0x20<link>
            ether 08:00:27:8e:2f:37  txqueuelen 1000  (Ethernet)
            RX packets 107782  bytes 10352968 (9.8 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 104521  bytes 9050220 (8.6 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
	
	# 获取到ip地址:192.168.11.11
	ifconfig eth1 | sed -n '2p' | awk '{print $2}'						// 检索第2行,再检索输出第2列
	ifconfig eth1 | sed -n '2p' | sed 's/^.*et //g' | sed 's/ net.*//g'
	ifconfig eth1 | sed -n '2s/^ *[a-z]* *//gp' | awk '{print $1}'		// 正则替换第2行,再检索输出第1列

回到顶部

cut
1.语法
	cut OPTION... [FILE]...
	
2.作用:对数据进行列的提取

3.option
	-d #指定分割符
	-f #指定截取区域
	-c #以字符为单位进行分割

4.eg
-d和-f
	以':'为分隔符,截取出/etc/passwd的第一列跟第三列
	cut -d ':' -f 1,3 /etc/passwd
	
	以':'为分隔符,截取出/etc/passwd的第一列到第三列
	cut -d ':' -f 1-3 /etc/passwd
	
	以':'为分隔符,截取出/etc/passwd的第二列到最后一列
	cut -d ':' -f 2- /etc/passwd
	
-c
	截取/etc/passwd文件从第二个字符到第九个字符
	cut -c 2-9 /etc/passwd
	

回到顶部

awk
1.语法
	awk [option] 'script' var=value file(s)
	或awk [option] -f scriptfile var=value file(s)
	
	awk '{[pattern] action}' {filenames}
	awk -F "分隔符" 'script' {filenames}
	awk -v  # 设置变量
	awk -f {awk脚本} {文件名}
	
	awk '条件 {执行动作}'文件名
	awk '条件1 {执行动作} 条件2 {执行动作} ...' 文件名
	或awk [选项] '条件1 {执行动作} 条件2 {执行动作} ...' 文件名
	
	
	
2.作用:数据检索(列的操作)

3.option
	-F	// 指定列的分隔符,默认以空格或者制表符为分隔符
	-f	// 调用脚本
	-v	// 定义变量

4.运算符
    $									// 列字段引用	$0:一整行 $1:第1列 $2:第2列	...
    = += -= *= /= %= ^= **= 			// 赋值
    + - * / %							// 加,减 乘,除与求余	
    || && 								// 逻辑或 逻辑与
    ~ !~ 								// 匹配正则表达式和不匹配正则表达式
    < <= > >= != ==						// 关系运算符

log.txt文件内容:
	2 this is a test
	3 Are you like awk
	This's a test
	10 There are orange,apple,mongo	
		
    eg:awk '$1>2' log.txt				// 输出[第1列大于2]的行
    eg:awk '$1>2 {print $1,$2}' log.txt	// 检索[第1列大于2]的行,输出第1列和第2列
	eg:awk '$1*2==4' log.txt			// 检索输出[第1列乘以2等于4]的行
	eg:awk '$1*2%==0 && $1<4' log.txt	// 检索输出[第1列取余等于0并且第1列小于4]的行
	

5.内建变量
	NF          // 字段数量变量,$NF:最后一列,$(NF-1):倒数第2列。以此类推
	NR          // 行号
	\t          // 制表符
	\n          // 换行符
	FS          // BEGIN时定义分隔符
	~           // 包含(可结合正则使用,看下面eg)
	!~          // 不包含(可结合正则使用,看下面eg)
	FS			// Field Separator:输入字段分隔符, 默认为空白字符
	
log.txt文件内容:
	2 this is a test
	3 Are you like awk
	This's a test
	10 There are orange,apple,mongo
    ha hello
    hi hello
    a b
	
	# NF
	eg:awk 'NF<3' log.txt						// 检索输出[列字段数小于3]的行
	eg:awk 'NF<3 && $1 ~ /h/' log.txt			// 检索输出[列字段数小于3并且第1列包含h]的行
	eg:awk 'NF<3 && $1 ~ /^ha/' log.txt			// 检索输出[列字段数小于3并且第1列以ha开头]的行
	eg:awk 'NF<3 && $1 ~ /^ha/ {print $1,$2}'	// 检索[列字段数小于3并且第1列以ha开头]的行,输出第1列和第2列
	# $NF代表最后一列
	eg:cat xxx.log | awk '{print $NF}'			// 检索输出[和倒数第1列]的行
	eg:cat xxx.log | awk '{print $1,$(NF-1)}'	// 检索输出[第1列和倒数第2列]的行
	// sort:排序,uniq -c:统计重复的行和出现的次数
	eg:cat xxx.log | awk '($NF > 2) {print $7}' | sort -n | uniq -c | sort -rn | head -5
	
	# NR
	eg:cat log.txt | awk 'NR==2 {print $3}'		// 检索[行等于2]的行,输出第3列
    eg:awk '(NR>=2 && NR<=5) {print $1}' /etc/passwd	// 检索[行大于等于2并且小于等于5]的行,输出第1列
	
	# \t \n
	eg:awk -F ' ' '{print $1"\t"$2}' log.txt	// 以空格为分隔符,输出第1列、\t、第2列
	eg:awk -F ' ' '{print $1"\n"$2}' log.txt	// 以空格为分隔符,输出第1列、\n、第2列
	
	# BEGIN(执行前的语句,在读取所有行内容前就开始执行) END(处理完所有的行后要执行的语句)
	eg(截取自菜鸟教程,很不错):
	1.cat score.txt
        Marry   2143 78 84 77
        Jack    2321 66 78 45
        Tom     2122 48 77 71
        Mike    2537 87 97 95
        Bob     2415 40 57 62
	
	2.awk脚本文件: score.awk
		#!/bin/awk -f
		#!/bin/awk -f
        #运行前
        BEGIN {
            math = 0
            english = 0
            computer = 0

            printf "NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL\n"
            printf "---------------------------------------------\n"
        }
        #运行中
        {
            math+=$3
            english+=$4
            computer+=$5
            printf "%-6s %-6s %4d %8d %8d %8d\n", $1, $2, $3,$4,$5, $3+$4+$5
        }
        #运行后
        END {
            printf "---------------------------------------------\n"
            printf "  TOTAL:%10d %8d %8d \n", math, english, computer
            printf "AVERAGE:%10.2f %8.2f %8.2f\n", math/NR, english/NR, computer/NR
        }
    
	3.执行命令
	awk -f score.awk score.txt
	
	4.输出:	
        NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL
        ---------------------------------------------
        Marry  2143     78       84       77      239
        Jack   2321     66       78       45      189
        Tom    2122     48       77       71      196
        Mike   2537     87       97       95      279
        Bob    2415     40       57       62      159
        ---------------------------------------------
          TOTAL:       319      393      350
        AVERAGE:     63.80    78.60    70.00
    
    
	# ~ !~	(可结合正则使用)
	eg:awk '$1 ~ /ha/' log.txt					// 检索输出[第1列包含ha]的行内容
	eg:awk '$1 ~ /^h/' log.txt					// 检索输出[第1列以h开头]的行内容
	eg:awk '$1 !~ /^h/' log.txt					// 检索输出[第1列不以h开头]的行内容


6.结合正则使用eg

.....待补充


7.其他的一些eg

    printf #格式化输出,不会自动换行。
    (%ns:字符串型,n代表有多少个字符; %ni:整型,n代表输出几个数字;%.nf:浮点型,n代表的是小数点后有多少个
    小数)
    
    print #打印出内容,默认会自动换行
    \t #制表符
    \n #换行符
    eg:printf '%s\t%s\t%s\t%s\t%s\t%s\n' 1 2 3 4 5 6
    eg:df -h |grep /dev/vda1 | awk '{printf "/dev/vda1的使用率是:"} {print $5}'
    
    小数:echo "scale=2; 0.13 + 0.1" | bc | awk '{printf "%.2f\n", $0}'
    
    -F #指定分割符
    eg:cat /etc/passwd | awk -F":" '{print $1}'
     
8.更多参考
	8个有力的 Awk 内建变量:https://www.runoob.com/w3cnote/8-awesome-awk-built-in-variables.html  

回到顶部

chmod
1.作用:chmod(change mode):控制用户对文件的权限的命令

2.语法
	chmod [-R] mode file...
	
	mode:
		1.ugoa+-=方式:[ugoa][+-=][rwx]
            u:文件所有者
            g:与文件所有者在同一个用户组下的所有其他用户
            o:排除u和g的其他用户
            a:所有用户
            r:可读,代替的数字:4
            w:可写,代替的数字:2
            x:可执行,代替的数字:1
		
            eg:chmod u+x,g+w,o+r abc.txt
            eg:chmod u=rwx,g=r,o=r abc.txt
            eg:chmod u-x,g-w,o-wx abc.txt
            eg:chmod a+r abc.txt				// 给所有用户加上可读权限
	
		2.数字方式
            7	rwx	
            6	rw-	
            5	r-x	
            4	r--
            3	-wx
            2	-w-
            1	--x
            0	---
		
            eg:chmod 755 abc.txt				// 给u加上rwx,给g和o加上rx
            eg:chmod 640 abc.txt				// 给u加上rw,给g加上r,给o不加任何权限
	
3.option
	-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
	-c : 若该文件权限确实已经更改,才显示其更改动作
	-f : 若该文件权限无法被更改也不要显示错误讯息
	-v : 显示权限变更的详细资料
	
	
	eg:chmod -R 755 /demo/abc.txt				// 递归赋予755权限

回到顶部

chown
1.作用:chown(change owner):设置文件所有者和文件关联组的命令

2.语法
	chown [-cfhvR] user[:group] file...
	
3.option
	user : 新的文件拥有者的使用者 ID,用户所属信息查询命令eg:id root
	group : 新的文件拥有者的使用者组(group),用户所属信息查询命令eg:id root
	-R : 递归处理目录以及其子目录下的所有文件
	-c : 显示更改的部分的信息
	-f : 忽略错误信息
	-h :修复符号链接
	-v : 显示详细的处理信息
	
4.eg		
	chown zhuyz:zhuyz abc.txt
	chown -R zhuyz:zhuyz *

回到顶部

read
1.作用:从标准输入读取数值

2.可选参数:
    -p:后面跟提示信息,即在输入前打印提示信息。默认不支持"\n"换行
    -s:隐藏输入的内容
    -t:给出等待的时间,超时会退出read
    -n:限制读取字符的个数,触发到临界值会自动执行
    
3.eg:
	echo "请输入姓名:"
	read name
	echo "您输入的姓名是:${name}"
------------------------------------------
	read -p "请输入姓名:" name            // -p 输入前打印提示信息。和其他命令结合,-p一定要放在最后
	echo "您输入的姓名是:${name}"
------------------------------------------
	read -t 5 -p "请输入姓名:" name       // -t 超时等待5s
	echo "您输入的姓名是:${name}"
------------------------------------------
	read -n 3 -p "请输入姓名:" name       // -n 限制输入的字符数
	echo "您输入的姓名是:${name}"
------------------------------------------
##### eg:读取文件内容	
	1.test.txt文件内容为:
        123
        abc
        zhuyz niupi
	
	2.shell脚本内容:
		count=1
		cat test.txt | while read line; do       // 把cat命令的输出作为read的输入,通过while循环read每一行数据
			echo "第${count}行值为:$line"
			$count=$[ $count + 1 ]
		done
		echo "执行完毕"
		
##### eg:读取ls输出的内容:
	1.shell脚本内容如下
        #!/bin/bash
        # read ls
        ls | while read name; do
        echo $name
        done

回到顶部

netstat
1.作用:显示网络状态,监控TCP/IP网络的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

2.语法
	netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
	
3.option:
    -a或--all 显示所有连线中的Socket。
    -n或--numeric 显示IP地址,而不显示域名服务器。
    -p或--programs 显示程序名称和正在使用Socket的程序识别码。
    -t或--tcp 显示TCP传输协议的连线状况。
    -l或--listening 显示监控中的服务器的Socket。
    
    -i或--interfaces 显示网络界面信息表单。
    -c或--continuous 持续列出网络状态。
    -g或--groups 显示多重广播功能群组组员名单。
    -r或--route 显示Routing Table。
    -s或--statistics 显示网络工作信息统计表。
    
    --ip或--inet 此参数的效果和指定"-A inet"参数相同。

4.命令输出列信息
	Proto:显示连接使用的协议。
	RefCnt:表示连接到本套接口上的进程号。
	Types:显示套接口的类型。
	State:显示套接口当前的状态。
	Path:表示连接到套接口的其它进程使用的路径名。

5.常用命令:
	# 列出所有端口
	netstat -a
	
	# 列出所有tcp端口
	netstat -at
	
	# 只显示监听端口
	netstat -l
	
	# 查看TCP中所有80端口使用情况
	netstat -ntlp | grep 80
	
	# 查看某端口的连接数量,如何8080端口
	netstat -npt | grep :8080 | wc -l
	
	# 查看某一端口的连接客户端IP 比如3306(mysql默认端口)端口
	netstat -anp | grep 3306	

回到顶部

nohup
1.作用:no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

2.语法
	nohup Command [ Arg … ] [ & ]
	
3.option:
    Command:要执行的命令。
	Arg:一些参数,可以指定输出文件。
	&:让命令在后台执行,终端退出后命令仍旧执行。

4.eg:
	# 以守护线程方式执行,不挂断
	nuhup java -jar xxx.jar &
	nuhup python xxx.py &
	
	# !!!如果只加了&,标准输出会输出到命令控制台
	java -jar xxx.jar &
	
	
	# 以守护线程方式不挂断执行,并且将正确信息重定向到normal.log,错误信息重定向到error.log
	nuhup java -jar xxx.jar 1>normal.log 2>error.log &
	

重定向:
	# 将标准错误2重定向到标准输出1中(一句话:标准输出和标准错误输出都放在server.log中)
	nuhup java -jar xxx.jar >server.log 2>&1 &
    2>&1 解释:
    将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 server.log 文件中。

    0 – stdin (standard input,标准输入)
    1 – stdout (standard output,标准输出)
    2 – stderr (standard error,标准错误输出)

回到顶部

ps
process status(进程状态,类似于windows的任务管理器)

ps显示的某一时刻进程的快照,想要动态查看可以使用top命令


1.语法
	ps [options]

    
2.作用:显示当前进程的状态,类似于 windows 的任务管理器


3.base option
	-A  # 显示所有进程
	-e  # 显示所有进程
	-u  # 选择有效用户的名称或者用户ID
	-f  # 全格式列出,格式化输出
	-x  # 显示无控制终端的进程
	-a  # 显示[除了session leaders、与终端无关的进程]的其他进程
		# sesion会话进程,If PID == SID, then this process is a session leader.
		# PID:process ID
		# SID:session ID,可用who -u查看当前session ID
		# 参考博客:https://unix.stackexchange.com/questions/18166/what-are-session-leaders-in-ps
	
	-d  # 显示[除了session leaders]的其他进程
	-h  # 不显示标题
	-C  # 使用-C 参数,后面跟你要找的进程的名字


4.常用option组合

	-aux  # 显示所有包含其他使用者的进程
	
        1.aux输出格式如下:
            USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
		2.列参数含义:
            USER: 进程拥有者
            PID: pid
            %CPU: 占用的CPU使用率
            %MEM: 占用的内存使用率
            STAT: 该行程的状态:
                D: 无法中断的休眠状态 (通常 IO 的进程)
                R: 正在执行中
                S: 静止状态
                T: 暂停执行
                Z: 不存在但暂时无法消除
                W: 没有足够的记忆体分页可分配
                <: 高优先序的行程
                N: 低优先序的行程
                L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
            START: 进程开始时间
            TIME: 执行的时间
            COMMAND:所执行的指令
				
	-ef  # 全列输出所有进程(排除session leaders、与终端无关的进程) 


5.eg
	
	# 显示所有进程信息,连同命令行
	ps -ef
	
	# 显示所有进程信息,包括命令行、CPU占用、内存占用
	ps -aux
	
	# 显示指定用户进程
	ps -u root

	# 显示指定进程并且不包含标题
	ps -C nginx --no-heading
	ps -C nginx h
	
	# 统计进程名为nginx的进程数
	ps -C nginx h | wc -l
	
	# 查找指定进程
	ps -ef | grep nginx
		
	# 查找指定进程
	ps -aux | grep nginx
	
	
6.Usage

     ps [options]

    Basic options:
     -A, -e               all processes
     -a                   all with tty, except session leaders
      a                   all with tty, including other users
     -d                   all except session leaders
     -N, --deselect       negate selection
      r                   only running processes
      T                   all processes on this terminal
      x                   processes without controlling ttys

    Selection by list:
     -C <command>         command name
     -G, --Group <GID>    real group id or name
     -g, --group <group>  session or effective group name
     -p, --pid <PID>      process id
         --ppid <PID>     select by parent process id
     -s, --sid <session>  session id
     -t, t, --tty <tty>   terminal
     -u, U, --user <UID>  effective user id or name
     -U, --User <UID>     real user id or name

      The selection options take as their argument either:
        a comma-separated list e.g. '-u root,nobody' or
        a blank-separated list e.g. '-p 123 4567'

    Output formats:
     -F                   extra full
     -f                   full-format, including command lines
      f, --forest         ascii art process tree
     -H                   show process hierarchy
     -j                   jobs format
      j                   BSD job control format
     -l                   long format
      l                   BSD long format
     -M, Z                add security data (for SELinux)
     -O <format>          preloaded with default columns
      O <format>          as -O, with BSD personality
     -o, o, --format <format>
                          user-defined format
      s                   signal format
      u                   user-oriented format
      v                   virtual memory format
      X                   register format
     -y                   do not show flags, show rss vs. addr (used with -l)
         --context        display security context (for SELinux)
         --headers        repeat header lines, one per page
         --no-headers     do not print header at all
         --cols, --columns, --width <num>
                          set screen width
         --rows, --lines <num>
                          set screen height

    Show threads:
      H                   as if they were processes
     -L                   possibly with LWP and NLWP columns
     -m, m                after processes
     -T                   possibly with SPID column

    Miscellaneous options:
     -c                   show scheduling class with -l option
      c                   show true command name
      e                   show the environment after command
      k,    --sort        specify sort order as: [+|-]key[,[+|-]key[,...]]
      L                   show format specifiers
      n                   display numeric uid and wchan
      S,    --cumulative  include some dead child process data
     -y                   do not show flags, show rss (only with -l)
     -V, V, --version     display version information and exit
     -w, w                unlimited output width

            --help <simple|list|output|threads|misc|all>
                          display help and exit

    For more details see ps(1).	

回到顶部

持续进阶更新…奥利剋

备忘:

1.curl等价于postman,但是在内网环境下,只能通过curl命令来调试接口,重要性也很高
2.sort:排序
3.uniq:去重
4.lsof
5.watch:监听
5.补充一篇关于TCP的原理过程&&连接状态博客,以及使用netstat查看TCP连接状态信息
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
工作采用的 linux 命令 ........................................................................................................ 3 1.从其他机器拷贝文件夹 ........................................................................................................ 3 2.查看哪个程序在用特定端口 ................................................................................................ 3 3.实时监控日志文件内容 ........................................................................................................ 3 4.查看指定用户拥有的进程 .................................................................................................... 3 5.查看磁盘空间使用情况 ........................................................................................................ 3 6.查找某文件出现指定字符串的行 .................................................................................... 3 7.查看内存使用情况 ................................................................................................................ 4 8.查看本机系统内核 ................................................................................................................ 4 9.查看当前路径下的文件/文件夹大小 ................................................................................... 4 10.变更为其它使用者的身份 .................................................................................................. 4 11.远程登陆 .............................................................................................................................. 4 12.不挂断地运行命令 .............................................................................................................. 4 13.查看文件的行数 .................................................................................................................. 4 14.比较两个文件的不同之处 .................................................................................................. 4 15.杀死进程 .............................................................................................................................. 5 16.在 SecureCRT 把文件传给本机的 SecureCRT 安装目录的 download 目录下 ............ 5 17.把本机文件传给 SecureCRT 当前机器的当前目录 ...................................................... 5 18.Vi 文本编辑器 ..................................................................................................................... 5 19.察看文件类型 ...................................................................................................................... 6 20.文本抽取 .............................................................................................................................. 6 21.非交互性文本流编辑器 ...................................................................................................... 7 22.将文件的记录分类 .......................................................................................................... 7 23.去除文本文件的重复行 ...................................................................................................... 7 24.连接两个文本文件 .............................................................................................................. 8 25.从文本文件剪切列或域 .................................................................................................. 8 26.将两个文本文件粘贴在一起 .............................................................................................. 8 27.将大文件进行分割 .............................................................................................................. 9 二.linux 常用命令 ............................................................................................................................ 9 1. cd ........................................................................................................................................... 9 2. pwd ........................................................................................................................................ 9 3. ls ............................................................................................................................................ 9 4. passwd ................................................................................................................................. 10 5. who ...................................................................................................................................... 11 6. cat ........................................................................................................................................ 11 7. mkdir ................................................................................................................................... 12 8. rmdir .................................................................................................................................... 12 9. chmod .................................................................................................................................. 12 10. chown ................................................................................................................................ 13 11. chgrp .................................................................................................................................. 13 12. touch .................................................................................................................................. 14 13. cp ....................................................................................................................................... 15 14. mv ..................................................................................................................................... 15 15. rm ...................................................................................................................................... 15 16. find .................................................................................................................................... 16 17. grep ................................................................................................................................... 16 18. more .................................................................................................................................. 17 19. less..................................................................................................................................... 17 20. head ................................................................................................................................... 17 21. tail ..................................................................................................................................... 18 22. cut ...................................................................................................................................... 18 23. at ........................................................................................................................................ 18 24. crontab ............................................................................................................................... 19 25. sleep .................................................................................................................................. 20 26. mesg .................................................................................................................................. 20 27. wall .................................................................................................................................... 20 28. write .................................................................................................................................. 21 29. kill ..................................................................................................................................... 21 30. ps ....................................................................................................................................... 21 31. pstree ................................................................................................................................. 22 32. top ..................................................................................................................................... 23 33. expr ................................................................................................................................... 23 34. locate ................................................................................................................................. 24 35. split .................................................................................................................................... 24 36. ln ....................................................................................................................................... 25 37. login 、logout .................................................................................................................. 25 38. exit ..................................................................................................................................... 25 39. man,info ......................................................................................................................... 25 40. alias ................................................................................................................................... 26 41. unalias ............................................................................................................................... 26 42. halt ..................................................................................................................................... 26 43. shutdown ........................................................................................................................... 26 44. reboot ................................................................................................................................ 26 45. clear ................................................................................................................................... 26
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值