Linux(二)常用命令

发布时间:2023年12月21日

一、文件管理命令

??操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。通过 ls -l 命令我们可以 查看某个目录下的文件或目录的权限。示例:

??第一列的内容的信息:

??文件的类型:

d: 代表目录
-: 代表文件
l: 代表软链接

??Linux中权限分为以下几种:

r:代表权限是可读,r也可以用数字4表示
w:代表权限是可写,w也可以用数字2表示
x:代表权限是可执行,x也可以用数字1表示

??对文件和目录而言,读写执行表示不同的意义。
??对于文件:

权限名称可执行操作
r可以使用cat查看文件的内容
w可以修改文件的内容
x可以将其运行为二进制文件

??对于目录:

权限名称可执行操作
r可以查看目录下列表
w可以创建和删除目录下文件
x可以使用cd进入目录

??超级用户可以无视普通用户的权限,即使文件目录权限是000,依旧可以访问。在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。

  • 所有者
    ??一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 。
  • 文件所在组
    ??当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组 用ls ‐ahl命令可以看到文件的所有组 也可以使用chgrp 组名 文件名来修改文件所在的组。
  • 其它组
    ??除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。

1.1 chmod

??该命令用于改变Linux系统文件或目录的访问权限。有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
??语法:

     chmod [-R] xyz 文件或目录

??常用参数:

	-c 当发生改变时,报告处理信息
	-R 处理指定目录以及其子目录下所有文件

??设置目录权限时,要一般使用-R参数,保证目录下的所有文件和目录的权限相同。
??使用示例:

    #增加文件t.log所有用户可执行权限
	chmod a+x t.log
	#和下面的语句一个意思
	chmod 755 t.log
    #给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的
    #权限,给其他用户分配执行(1)的权限
	chmod 751 t.log -c
    #将test目录及其子目录所有文件添加可读权限
	chmod u+r,g+r,o+r -R text/ -c

1.2 chown

??chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
??语法:

     chown -R 用户[:用户组] 目录或文件

??常用参数:

	-c 显示更改的部分的信息
	-R 处理指定目录及子目录

??使用示例:

     #将2.txt所属的用户改为bow,用户组改为bows
     chown bow:bows 2.txt 
     #将data目录及它子目录文件的所属用户改为bow,用户组改为bows
     chown -R bow:bows data 
     #将2.txt的所属用户改为bow
     chown bow 2.txt 
     #改变文件群组
	 chown -c :mail t.log
     #改变文件夹及子文件目录属主及属组为mail
	 chown -cR mail: test/

1.3 cat

??该命令用于查看文本文件的内容。
??语法:

    cat filename

??使用示例:

    #查看单个文件的内容
    cat filename
    #从键盘创建一个文件
    #创建文件名后,再输入文件内容,Ctrl + C结束文件内容输入
	cat > filename
    #将几个文件合并为一个文件
	cat file1 file2 > file

1.4 cp

??将源文件复制至目标文件,或将多个源文件复制至目标目录。
??语法:

    #连同文件的所有特性把文件file1复制成文件file2
    cp -a file1 file2   
    #把文件file1、file2、file3复制到目录dir中  
    cp file1 file2 file3 dir 

??常用参数:

	-i 提示
	-r 复制目录及目录内所有项目
	-a 复制的文件与原文件时间一样

??使用示例:

    #复制a.txt到test目录下,保持原文件时间,如果原文件存在提示是否覆盖
	cp -ai a.txt test
    #-r参数表示将目录和目录下的文件一起拷贝,将a目录拷贝到data目录
    cp -r a data 

1.5 find

??用于在文件树中查找文件。
??语法:

	find pathname -options [-print -exec -ok ...]

??命令参数:

	pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
	-print: find命令将匹配的文件输出到标准输出。

??使用示例:

    #查找48小时内修改过的文件
	find -atime -2
    #在当前目录查找 以.log结尾的文件( . 代表当前目录)
	find ./ -name '*.log'
    #查找/opt目录下,权限为777的文件
	find /opt -perm 777
    #查找大于1K的文件
	find -size +1000c

1.6 head

??用于查看纯文本文档的前N行,打印其相应文件的开头10行。
??语法:

    head [选项] 文件

??常用参数:

	-n<行数> 显示的行数(行数为复数表示从最后向前数)

??使用示例:

    #显示1.log文件中前20行
	head 1.log -n 20
    #显示1.log文件前20字节
	head -c 20 log2014.log
    #显示t.log最后10行
	head -n -10 t.log

1.7 tail

??用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。因为可以查看文件动态追加的内容,常用查看日志文件。
??语法:

    tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

??常用参数:

 -f 循环读取(常用于查看递增的日志文件)
 -n<行数> 显示行数(从后向前)

??循环读取逐渐增加的文件内容:

    #默认查看后10行追加的内容
	tail -f ping.log
	#动态查看最新的20行内容
	tail -20f filename

1.8 less

??用于查看文本文件,语法:

    less [options] file

??常用命令参数:

	-i  忽略搜索时的大小写
	-N  显示每行的行号
	-o  <文件名> 将less 输出的内容在指定文件中保存起来
	-s  显示连续空行为一行
	/字符串:向下搜索“字符串”的功能
	?字符串:向上搜索“字符串”的功能
	n:重复前一个搜索(与 / 或 ? 有关)
	N:反向重复前一个搜索(与 / 或 ? 有关)
	-x <数字> 将“tab”键显示为规定的数字空格
	b  向后翻一页
	d  向后翻半页
	h  显示帮助界面
	Q  退出less 命令
	u  向前滚动半页
	y  向前滚动一行
	空格键 滚动一行
	回车键 滚动一页
	[pagedown]: 向下翻动一页
	[pageup]:   向上翻动一页

??使用示例:

    #ps查看进程信息并通过less分页显示
	ps -aux | less -N
    #查看多个文件
	less 1.log 2.log

1.9 more

??功能类似于cat,more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示。
??语法:

    more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

??命令参数:

	+n      从笫 n 行开始显示
	-n       定义屏幕大小为n行
	+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示 
	-c       从顶部清屏,然后显示
	-d       提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
	-l        忽略Ctrl+l(换页)字符
	-p       通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
	-s       把连续的多个空行显示为一行
	-u       把文件内容中的下画线去掉

??常用操作命令:

	Enter    向下 n 行,需要定义。默认为 1 行
	Ctrl+F   向下滚动一屏
	空格键  向下滚动一屏
	Ctrl+B  返回上一屏
	=       输出当前行的行号
	:f     输出文件名和当前行的行号
	V      调用vi编辑器
	!命令   调用Shell,并执行命令
	q       退出more

??使用示例:

    #显示文件中从第3行起的内容
    more +3 text.txt
    #在所列出文件目录详细信息,借助管道使每次显示5行
	ls -l | more -5

1.10 mv

??移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。
??当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。
??使用示例:

    #将文件test.log重命名为test1.txt
	mv test.log test1.txt
    #将文件log1.txt、log2.txt、log3.txt,移动到根的test3目录中
	mv llog1.txt log2.txt log3.txt /test3
    #将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
	mv -i log1.txt log2.txt
    #移动当前文件夹下的所有文件到上一级目录
	mv * ../

1.11 rm

??删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。如果使用rm来删除文件,通常仍可以将该文件恢复原状。
??语法:

	rm [选项] 文件…

??使用示例:

    #删除任何.log文件,删除前逐一询问确认
	rm -i *.log
    #删除test子目录及子目录中所有档案删除,并且不用一一确认
	rm -rf test

1.12 touch

??用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
??语法:

	touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

??参数:

	a 改变档案的读取时间记录。
	m 改变档案的修改时间记录。
	c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
	f 不使用,是为了与其他 unix 系统的相容性而保留。
	r 使用参考档的时间记录,与 --file 的效果一样。	
	d 设定时间与日期,可以使用各种不同的格式。
	t 设定档案的时间记录,格式与 date 指令相同。
	–no-create 不会建立新档案。
	–help 列出指令格式。
	–version 列出版本讯息。

??使用示例:

    #修改文件"testfile"的时间属性为当前系统时间
	touch testfile               
    #在当前目录下,使用该指令创建一个空白文件"file"
	touch file        

1.13 vim

??Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
??基本上vi/vim共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

??语法:

    vi filename
    vim filename

??使用示例:

    #打开文件并跳到第10行
    vim +10 filename

1.14 >和>>

??输出符号,将内容输出到文件中,>表示覆盖(会删除原文件内容) >>表示追加。

    #将Hello World输出到当前目录下的1.txt文件
    #1.如果当前目录下没有1.txt文件会创建一个新文件
    #2.如果当前目录下有1.txt,则会删除原文件内容,写入Hello World
    echo Hello World > 1.txt 
    #将1234追加到当前目录下的1.txt中,如果文件不存在会创建新文件
    echo 1234 >> 1.txt 

1.15 scp

??scp 远程拷贝命令,它可以将本地文件拷贝到远程服务器,也可以将远程服务器的文件拷贝到本地,也可以将一台服务器文件拷贝到另一台。
??语法:

    #将本地文件拷贝到远程服务器
    scp -r 本地文件路径 用户名@ip[:port]:远程路径 

??使用示例:

    #将本地的2.txt拷贝到192.168.5.105的/root/data目录下
    scp -r 2.txt root@192.168.5.105:/root/data/ 
    #将远程的/root/3.bak文件拷贝到本地的/root/data目录
    scp -r root@192.168.5.105:/root/3.bak /root/data 
    #将/root/tmp拷贝到远程的/root/data目录下
    scp -r root@192.168.5.105:/root/tmp root@192.168.5.105:/root/data/ 

1.16 ln

??为文件在另外一个位置建立一个同步的链接。
??链接分类:软件链接及硬链接。
??软链接:

  1. 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  2. 软链接可以 跨文件系统 ,硬链接不可以
  3. 软链接可以对一个不存在的文件名进行链接
  4. 软链接可以对目录进行链接

??硬链接:

  1. 硬链接,以文件副本的形式存在。但不占用实际空间。
  2. 不允许给目录创建硬链接
  3. 硬链接只有在同一个文件系统中才能创建

??需要注意:

???第一:ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
???第二:ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
???第三:ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

??语法:

     #软链接
    ln -s slink source
    #硬链接
    ln link source

??常用参数:

	-b 删除,覆盖以前建立的链接
	-s 软链接(符号链接)
	-v 显示详细处理过程

??使用示例:

    #给文件创建软链接,并显示操作信息
	ln -sv source.log link.log
    #给文件创建硬链接,并显示操作信息
	ln -v source.log link1.log
    #给目录创建软链接
	ln -sv /opt/soft/test/test3 /opt/soft/test/test5

1.17 怎么用命令查看日志

??Linux查看日志的命令有多种:

    #编辑方式查看,可修改
   vi 文件名 
   #显示全部文件内容
   cat 文件名 
   #分页显示文件内容
   more 文件名 
   #与more相似,更好的是可以往前翻页
   less 文件名 
   #仅查看尾部,还可以指定行数
   tail 文件名 
   #仅查看头部,还可以指定行数
   head 文件名 

??以下介绍几种常用的方法。

  • 1、tail
    ??最常用的一种查看方式。
    ??使用示例:
    #查询日志尾部最后10行的日志
    tail -n 10 test.log 
    #查询10行之后的所有日志
    tail -n +10 test.log 
    #循环实时查看最后1000行记录(最常用的)
    tail -fn 10 test.log 

??一般还会配合着grep搜索用,例如 :

    tail -fn 1000 test.log | grep '关键字'

??如果一次性查询的数据量太大,可以进行翻页查看,例如 :

    tail -n 4700 aa.log |more -1000 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
  • 2、head
    ??跟tail是相反的head是看前多少行日志。示例:
    #查询日志文件中的头10行日志
    head -n 10 test.log 
    #查询日志文件除了最后10行的其他所有日志
    head -n -10 test.log 
  • 3、cat
    ??cat命令用来产看一个文件的所有内容。
  • 4、more和less
    ??less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。

二、文档管理命令

2.1 grep

??强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索。
??grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板。
??语法:

	grep [option] pattern file|dir

??常用参数:

	-A n --after-context显示匹配字符后n行
	-B n --before-context显示匹配字符前n行
	-C n --context 显示匹配字符前后n行
	-c --count 计算符合样式的列数
	-i 忽略大小写
	-l 只列出文件内容符合指定的样式的文件名称
	-f 从文件中读取关键词
	-n 显示匹配内容的所在文件中行数
	-R 递归查找文件夹

??grep的规则表达式:

	^  #锚定行的开始 如:'^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。

??使用示例:

    #查找指定进程
	ps -ef | grep svn
    #查找指定进程个数
	ps -ef | grep svn -c
    #从文件中读取关键词
	cat test1.txt | grep -f key.log
    #从文件夹中递归查找以grep开头的行,并只列出文件
	grep -lR '^grep' /tmp
    #显示包含ed或者at字符的内容行
	grep -E 'ed|at' test.txt

2.2 wc

??wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出。
??语法:

	wc [option] file..

??命令参数:

	-c 统计字节数
	-l 统计行数
	-m 统计字符数
	-w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串

??使用示例:

    #查找文件的行数、单词数、字节数、文件名
    #如:7     8     70     test.txt
	wc text.txt
    #统计输出结果的行数
	cat test.txt | wc -l

2.3 echo

??输出命令,可以打印变量,字符串的值。示例:

    #打印Hello World
    echo Hello World 
    #打印环境变量PATH的值,其中$是取变量值的符号,用法:$变量名 或者 ${变量名}
    echo $PATH 
    #打印内容但不换行
   echo -n Hello World

??echo也可以向文件中增加内容。示例:

    #echo “内容”>> 文件名:将输入的内容在文件最后一行后插入
    echo '21345' >> text.txt
    #echo “内容”> 文件名:将想要的内容覆盖到对应的文件当中去
    echo '21345' > text.txt

三、磁盘管理命令

  • Linux中的路径
    ??相对路径:以非/开始的路径。
    ??.表示当前目录。
    ??表示当前目录的上一级目录,它可以多个一起使用。
    ??~表示当前用户的根目录。例如:root用户时,~表示/root目录。bow用户时,~表示/home/bow目录。

3.1 cd

??cd(changeDirectory) 命令语法:

	cd [目录名]

??使用示例:

    #表示进入系统根目录
	cd / 
	#表示进入当前目录下的usr目录
	cd usr/
	#表示进入当前目录下的bin目录 
	cd ./bin 
	#表示进入当前目录的上一级目录
	cd .. 
	#表示进入当前目录的上级目录的上一级目录
	cd ../.. 
	#进入/usr/local/bin目录,usr在根目录下
	cd /usr/local/bin 
	#表示进入和当前目录同级的etc目录
	cd ../etc 
	#表示进入当前用户的根目录(cd ~ 和直接执行cd后不加目录的效果相同)
	cd ~ 
	#表示进入当前用户根目录下的data目录
	cd ~/data  

3.2 df

??显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以KB为单位进行显示。
??参数:

	-a 全部文件系统列表
	-h 以方便阅读的方式显示信息
	-i 显示inode信息
	-k 区块为1024字节
	-l 只显示本地磁盘
	-T 列出文件系统类型

??使用示例:

    #显示磁盘使用情况
	df -l
    #以易读方式列出所有文件系统及其类型
	df -haT
    #查看硬盘使用,并以合适单位显示大小
    df -h 

3.3 du

??du命令也是查看使用空间的,但是与df命令不同的是,Linux du命令是对文件和目录磁盘使用的空间的查看:
??命令格式:

	du [选项] [文件]

??常用参数:

	-a 显示目录中所有文件大小
	-k 以KB为单位显示文件大小
	-m 以MB为单位显示文件大小
	-g 以GB为单位显示文件大小
	-h 以易读方式显示文件大小
	-s 仅显示总计
	-c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和

??使用示例:

    #以易读方式显示文件夹内及子文件夹大小
	du -h scf/
    #以易读方式显示文件夹内所有文件大小
	du -ah scf/
    #显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
	du -hc test/ scf/
    #输出当前目录下各个子目录所使用的空间
	du -hc --max-depth=1 scf/
  • du和df的区别
    ??du:df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。du会显示指定的目录或文件所占用的磁盘空间。

3.4 ls

?? 列出指定目录中的目录,包括大小字节数,可读可写可执行的权限等。
??就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)、查看目录信息等等。
??常用参数:

     #列出目录所有文件,包含以.开始的隐藏文件
    -a 
    #反序排列
    -r 
    #以文件修改时间排序
    -t 
    #以文件大小排序
    -S 
    #以易读大小显示
    -h 
    #除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
    -l 

??使用示例:

    #按易读方式按时间反序排序,并显示文件详细信息
    ls -lhrt
    #按大小反序显示文件详细信息
    ls -lrS
    #列出当前目录中所有以"t"开头的目录的详细内容
    ls -l t*
    #表示查看当前目录下的文件
    ls 
    #表示查看当前目录下的详细信息
    ls -l 
    #表示查看当前目录下的所有文件(包含隐藏文件)
    ls -a 
    #表示查看当前目录下的所有文件(包含隐藏文件)的详细信息
    ls -la 
    #查看当前目录下的文件的详细信息,并以合适单位显示文件大小
    ls -lh 

3.5 mkdir

??用于创建文件夹。
??可用选项:

   -m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
   -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

??使用示例:

    #当前工作目录下创建名为 t的文件夹
    mkdir t
    #在tmp目录下创建路径为test/t1/t的目录,若不存在,则创建
    mkdir -p /tmp/test/t1/t

3.6 rmdir

??从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
??使用示例:

    #当parent子目录被删除后使它也成为空目录的话,则顺便一并删除
    rmdir -p parent/child/child11

3.7 pwd

??查看当前工作目录(绝对)路径。
??使用示例:

    #查看当前路径
    pwd
    #查看软链接的实际路径
    pwd -P

四、网络通讯命令

4.1 ifconfig

??可以查看ip地址及接口信息。
??使用示例:

    #查看所有网络接口及其状态
    ifconfig -a
    #启动网卡eth0
    ifconfig eth0 up   
    #关闭网卡eth0
    ifconfig eth0 down   

4.3 netstat

??显示网络状态,利用netstat指令可让你得知整个Linux系统的网络情况。
??语法

     netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

??参数说明:

-a或–all 显示所有连线中的Socket。
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示FIB。
-g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的Socket。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistice 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定"-A unix"参数相同。
–ip或–inet 此参数的效果和指定"-A inet"参数相同。

??使用示例:

    #查看系统都开启了哪些端口
    netstat -lnp
    #查看网络连接状况
    netstat -an
    #统计系统当前进程连接数,如输出结果177,则表示一共有177个连接数
    netstat -an | grep ESTABLISHED | wc -l 

??。

4.4 ping

??令通过ICMP(Internet控制消息协议)工作;ping可以用来测试本机与目标主机是否联通、联通速度如何、稳定性如何。
??使用示例:

    #每隔0.6秒ping一次,一共ping 5次
    ping -c 5 -i 0.6 qq.com

4.5 telnet

??Telnet指令主要用于与远程主机建立连接并进行远程登录,常用来测试一个主机的某个端口连通性。
??语法:

    telnet [远程主机IP地址] [端口号]

??使用示例:

    #登录IP为192.168.0.5的远程主机,未指定端口的话,使用默认的Telnet端口(通常为23)
    telnet 192.168.0.5 

4.6 network

??网络服务管理命令。
??示例:

    #启动网卡
	service network start 
    #关闭网卡
	service network stop 
    #重启网络
	service network restart 

五、系统管理命令

5.1 date

??显示或设定系统的日期与时间。
??命令参数:

-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u  显示GMT。
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%m 月份(以01-12来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)

??使用示例:

    #显示下一天的日期
   date +%Y%m%d --date="+1 day"  
   #查看2周后的日期
   date -d '2 weeks' 
   #查看下周一的日期
   date -d 'next monday' 
   #查看明天的日期
   date -d next-day +%Y%m%d
   #查看昨天的日期
   date -d last-day +%Y%m%d
   #查看上个月是几月
   date -d last-month +%Y%m
   #查看下个月是几月
   date -d next-month +%Y%m

5.2 free

??显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
??命令参数:

-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合

??使用示例:

    #显示内存使用情况
    free
    free -k
    free -m
    #以总和的形式显示内存的使用信息
    free -t
    #周期性查询内存使用情况
    free -s 10
    #查看内存使用情况,并且以合适的单位显示大小
    free -h

5.3 kill

??发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用"-KILL" 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
??常用参数:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户

??示例:先使用ps查找进程pro1,然后用kill杀掉。

    kill -9 $(ps -ef | grep pro1)

5.4 ps

??ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top
??linux上进程有5种状态:

运行(正在运行或在运行队列中等待)
中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

??ps工具标识进程的5种状态码:

D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process

??命令参数:

 -A 显示所有进程
a 显示所有进程
-a 显示同一终端下所有进程
c 显示进程真实名称
e 显示环境变量
f 显示进程间的关系
r 显示当前终端运行的进程
-aux 显示所有包含其它使用的进程

??使用示例:

    #显示当前所有进程环境变量及进程间关系
    ps -ef
    #显示当前所有进程
    ps -A
    #与grep联用查找某进程
    ps -aux | grep apache
    #找出与cron与syslog这两个服务有关的 PID 号码
   ps aux | grep '(cron|syslog)'

5.5 rpm

??用于安装.rpm格式的安装包。
??使用示例:

    #查看系统自带jdk
    rpm -qa | grep jdk
    #删除系统自带jdk
    rpm -e --nodeps 查看jdk显示的数据
    #安装jdk
   rpm -ivh jdk-7u80-linux-x64.rpm

5.6 yum

??软件安装部管理命令。

1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install <package_name>
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包 命令:yum search
8.清除缓存命令:
	yum clean packages: 清除缓存目录下的软件包
	yum clean headers: 清除缓存目录下的 headers
	yum clean oldheaders: 清除缓存目录下旧的 headers
	yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

??使用示例:

    #安装pam-devel
    yum install pam-devel

5.7 top

??显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等。
??使用示例:

    #查看具体的进程的内存占用
	top -p 进程id
    #查看用户的进程内存
	Top -u 用户名
    #查看进程下的线程
	top -H -p 进程ID

5.8 history

??查看使用的命令的历史记录。

5.9 service

??允许用户启动、停止、重启、查看和配置系统服务。语法:

    #命令:enable|disable|start|stop|restart|status
    #start:启动服务
    #stop:关闭服务
    #restart:重启服务
    #status:查看服务状态
    service 服务名 [命令]

??使用示例:

    #遍历网络
    service network start 
    #关闭网络
    service network stop 
    #重启网络
    service network restart 
    #查看网络状态
    service network status 
    #centos6及6以下版本,启动防火墙的命令
    service iptables start 
    #centos6及6以下版本,关闭防火墙(注意,关闭防火墙,只是临时关闭,下次重启之后防火墙依然会启动)
    service iptables stop 
    #重启防火墙
    service iptables restart 
    #启动mysql数据库
    service mysqld start  
    #启动mysql数据库
    service mysqld restart
    #关闭mysql数据库
   service mysqld stop 

六、备份压缩命令

6.1 gzip

??压缩文件。语法:

    gzip(选项)(参数)

??使用示例:

    #创建一个*.gz的压缩文件
    gzip test.txt 
    #解压 *.gz 文件
    gzip -d test.txt.gz 

6.2 tar

??用来压缩和解压文件。tar本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。
??弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
??语法:

    #压缩.tar包
    tar cvf 压缩文件名 要压缩的文件或目录
    #解压.tar包
    tar xvf 压缩文件名 [-C 指定解压目录]
    #压缩.tar.gz包
    tar zcvf 压缩文件名 要压缩的文件
    #解压.tar.gz包
    tar zxvf 压缩文件名

??常用参数:

-c 建立新的压缩文件
-f 指定压缩文件
-r 添加文件到已经压缩文件包中
-u 添加改了和现有的文件到压缩包中
-x 从压缩包中抽取文件
-t 显示压缩文件中的内容
-z 支持gzip压缩
-j 支持bzip2压缩
-Z 支持compress解压文件
-v 显示操作过程

??使用示例:

    #将文件全部打包成tar包
    tar -cvf log.tar 1.log,2.log 或tar -cvf log.* 
    #将/etc下的所有文件及目录打包到指定目录,并使用gz压缩
    tar -zcvf /tmp/etc.tar.gz /etc
    #解压gz包
    tar -ztvf /tmp/etc.tar.gz
    #压缩打包/home和/etc,但不包含/home/dmtsai
    tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
    #将2.txt压缩为2.tar包
    tar cvf 2.tar 2.txt 
    #将data目录夸张到data.tar包中
    tar cvf data.tar data 
    #将2.tar解压到当前目录
    tar xvf 2.tar 
    #将2.tar解压到a目录
    tar xvf 2.tar -C a/ 
    #解压data.tar到当前目录
    tar xvf data.tar 
    #将当前目录下的tm目录压缩为tm.tar.gz
    tar zcvf tm.tar.gz tm 
    #将tm.tar.gz解压到当前目录
    tar zxvf tm.tar.gz 

6.3 unzip

??解压 *.zip文件。
??使用示例:

    #压缩文件解压缩到当前目录中
    unzip test.zip 
    #不解压文件,查看压缩包内的文件
    unzip -l 压缩文件名 
    #查看da.zip压缩文件中包含的文件
    unzip -l da.zip 
    #将压缩文件解压到指定目录
   unzip da.zip -d 目标目录   
   #将压缩文件da.zip解压到tm目录下
   unzip da.zip -d tm/ 

6.4 zip

??压缩文件或目录。
??语法:

     zip [选项] 压缩包名 源文件或源目录列表

??使用示例:

    #将2.txt压缩到2.zip中
    zip 2.zip 2.txt 
    #只会压缩文件夹,不会压缩文件夹下的内容
    zip data.zip data 
    #压缩文件夹和文件夹内的文件(压缩文件夹和它的下一级文件)
    zip da.zip da/* 
    #-r表示递归地将文件夹及它的子目录文件全部压缩
    zip -r data.zip date 
文章来源:https://blog.csdn.net/m0_37741420/article/details/110677835
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。