Linux(二)常用命令

文章目录

    • 一、文件管理命令
      • [1.1 chmod](#1.1 chmod)
      • [1.2 chown](#1.2 chown)
      • [1.3 cat](#1.3 cat)
      • [1.4 cp](#1.4 cp)
      • [1.5 find](#1.5 find)
      • [1.6 head](#1.6 head)
      • [1.7 tail](#1.7 tail)
      • [1.8 less](#1.8 less)
      • [1.9 more](#1.9 more)
      • [1.10 mv](#1.10 mv)
      • [1.11 rm](#1.11 rm)
      • [1.12 touch](#1.12 touch)
      • [1.13 vim](#1.13 vim)
      • [1.14 >和>>](#1.14 >和>>)
      • [1.15 scp](#1.15 scp)
      • [1.16 ln](#1.16 ln)
      • [1.17 怎么用命令查看日志](#1.17 怎么用命令查看日志)
    • 二、文档管理命令
      • [2.1 grep](#2.1 grep)
      • [2.2 wc](#2.2 wc)
      • [2.3 echo](#2.3 echo)
    • 三、磁盘管理命令
      • [3.1 cd](#3.1 cd)
      • [3.2 df](#3.2 df)
      • [3.3 du](#3.3 du)
      • [3.4 ls](#3.4 ls)
      • [3.5 mkdir](#3.5 mkdir)
      • [3.6 rmdir](#3.6 rmdir)
      • [3.7 pwd](#3.7 pwd)
    • 四、网络通讯命令
      • [4.1 ifconfig](#4.1 ifconfig)
      • [4.3 netstat](#4.3 netstat)
      • [4.4 ping](#4.4 ping)
      • [4.5 telnet](#4.5 telnet)
      • [4.6 network](#4.6 network)
    • 五、系统管理命令
      • [5.1 date](#5.1 date)
      • [5.2 free](#5.2 free)
      • [5.3 kill](#5.3 kill)
      • [5.4 ps](#5.4 ps)
      • [5.5 rpm](#5.5 rpm)
      • [5.6 yum](#5.6 yum)
      • [5.7 top](#5.7 top)
      • [5.8 history](#5.8 history)
      • [5.9 service](#5.9 service)
    • 六、备份压缩命令
      • [6.1 gzip](#6.1 gzip)
      • [6.2 tar](#6.2 tar)
      • [6.3 unzip](#6.3 unzip)
      • [6.4 zip](#6.4 zip)

一、文件管理命令

操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在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系统文件或目录的访问权限。有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

语法:

shell 复制代码
     chmod [-R] xyz 文件或目录

常用参数:

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

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

使用示例:

shell 复制代码
    #增加文件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;文件是以空格分开的要改变权限的文件列表,支持通配符。

语法:

shell 复制代码
     chown -R 用户[:用户组] 目录或文件

常用参数:

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

使用示例:

shell 复制代码
     #将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

该命令用于查看文本文件的内容。

语法:

shell 复制代码
    cat filename

使用示例:

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

1.4 cp

将源文件复制至目标文件,或将多个源文件复制至目标目录。

语法:

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

常用参数:

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

使用示例:

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

1.5 find

用于在文件树中查找文件。

语法:

shell 复制代码
	find pathname -options [-print -exec -ok ...]

命令参数:

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

使用示例:

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

1.6 head

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

语法:

shell 复制代码
    head [选项] 文件

常用参数:

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

使用示例:

shell 复制代码
    #显示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

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

语法:

shell 复制代码
    tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

常用参数:

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

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

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

1.8 less

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

shell 复制代码
    less [options] file

常用命令参数:

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

使用示例:

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

1.9 more

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

语法:

shell 复制代码
    more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

命令参数:

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

常用操作命令:

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

使用示例:

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

1.10 mv

移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。

当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。

使用示例:

shell 复制代码
    #将文件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来删除文件,通常仍可以将该文件恢复原状。

语法:

shell 复制代码
	rm [选项] 文件...

使用示例:

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

1.12 touch

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

语法:

shell 复制代码
	touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录...]

参数:

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

使用示例:

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

1.13 vim

Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

基本上vi/vim共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

语法:

shell 复制代码
    vi filename
    vim filename

使用示例:

shell 复制代码
    #打开文件并跳到第10行
    vim +10 filename

1.14 >和>>

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

shell 复制代码
    #将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 远程拷贝命令,它可以将本地文件拷贝到远程服务器,也可以将远程服务器的文件拷贝到本地,也可以将一台服务器文件拷贝到另一台。

语法:

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

使用示例:

shell 复制代码
    #将本地的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指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

语法:

shell 复制代码
     #软链接
    ln -s slink source
    #硬链接
    ln link source

常用参数:

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

使用示例:

shell 复制代码
    #给文件创建软链接,并显示操作信息
	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查看日志的命令有多种:

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

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

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

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

shell 复制代码
    tail -fn 1000 test.log | grep '关键字'

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

shell 复制代码
    tail -n 4700 aa.log |more -1000 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
  • 2、head
      跟tail是相反的head是看前多少行日志。示例:
shell 复制代码
    #查询日志文件中的头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 的工作方式是这样的,它在一个或多个文件中搜索字符串模板。

语法:

shell 复制代码
	grep [option] pattern file|dir

常用参数:

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

grep的规则表达式:

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

使用示例:

shell 复制代码
    #查找指定进程
	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)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出。

语法:

shell 复制代码
	wc [option] file..

命令参数:

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

使用示例:

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

2.3 echo

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

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

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

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

三、磁盘管理命令

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

3.1 cd

cd(changeDirectory) 命令语法:

shell 复制代码
	cd [目录名]

使用示例:

shell 复制代码
    #表示进入系统根目录
	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为单位进行显示。

参数:

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

使用示例:

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

3.3 du

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

命令格式:

shell 复制代码
	du [选项] [文件]

常用参数:

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

使用示例:

shell 复制代码
    #以易读方式显示文件夹内及子文件夹大小
	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 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)、查看目录信息等等。

常用参数:

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

使用示例:

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

3.5 mkdir

用于创建文件夹。

可用选项:

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

使用示例:

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

3.6 rmdir

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

使用示例:

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

3.7 pwd

查看当前工作目录(绝对)路径。

使用示例:

shell 复制代码
    #查看当前路径
    pwd
    #查看软链接的实际路径
    pwd -P

四、网络通讯命令

4.1 ifconfig

可以查看ip地址及接口信息。

使用示例:

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

4.3 netstat

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

语法

shell 复制代码
     netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

参数说明:

shell 复制代码
-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"参数相同。

使用示例:

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

4.4 ping

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

使用示例:

shell 复制代码
    #每隔0.6秒ping一次,一共ping 5次
    ping -c 5 -i 0.6 qq.com

4.5 telnet

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

语法:

shell 复制代码
    telnet [远程主机IP地址] [端口号]

使用示例:

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

4.6 network

网络服务管理命令。

示例:

shell 复制代码
    #启动网卡
	service network start 
    #关闭网卡
	service network stop 
    #重启网络
	service network restart 

五、系统管理命令

5.1 date

显示或设定系统的日期与时间。

命令参数:

shell 复制代码
-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 年份(以四位数来表示)。

使用示例:

shell 复制代码
    #显示下一天的日期
   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)和内核缓冲区内存。

命令参数:

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

使用示例:

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

5.3 kill

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

常用参数:

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

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

shell 复制代码
    kill -9 $(ps -ef | grep pro1)

5.4 ps

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

linux上进程有5种状态:

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

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

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

命令参数:

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

使用示例:

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

5.5 rpm

用于安装.rpm格式的安装包。

使用示例:

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

5.6 yum

软件安装部管理命令。

shell 复制代码
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

使用示例:

shell 复制代码
    #安装pam-devel
    yum install pam-devel

5.7 top

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

使用示例:

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

5.8 history

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

5.9 service

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

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

使用示例:

shell 复制代码
    #遍历网络
    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

压缩文件。语法:

shell 复制代码
    gzip(选项)(参数)

使用示例:

shell 复制代码
    #创建一个*.gz的压缩文件
    gzip test.txt 
    #解压 *.gz 文件
    gzip -d test.txt.gz 

6.2 tar

用来压缩和解压文件。tar本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。

弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

语法:

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

常用参数:

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

使用示例:

shell 复制代码
    #将文件全部打包成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文件。

使用示例:

shell 复制代码
    #压缩文件解压缩到当前目录中
    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

压缩文件或目录。

语法:

shell 复制代码
     zip [选项] 压缩包名 源文件或源目录列表

使用示例:

shell 复制代码
    #将2.txt压缩到2.zip中
    zip 2.zip 2.txt 
    #只会压缩文件夹,不会压缩文件夹下的内容
    zip data.zip data 
    #压缩文件夹和文件夹内的文件(压缩文件夹和它的下一级文件)
    zip da.zip da/* 
    #-r表示递归地将文件夹及它的子目录文件全部压缩
    zip -r data.zip date 
相关推荐
hjjdebug1 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
Spring_java_gg1 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
✿ ༺ ོIT技术༻1 小时前
Linux:认识文件系统
linux·运维·服务器
会掉头发2 小时前
Linux进程通信之共享内存
linux·运维·共享内存·进程通信
我言秋日胜春朝★2 小时前
【Linux】冯诺依曼体系、再谈操作系统
linux·运维·服务器
饮啦冰美式2 小时前
22.04Ubuntu---ROS2使用rclcpp编写节点
linux·运维·ubuntu