文章目录
- 一、文件管理命令
- 1.1 chmod
- 1.2 chown
- 1.3 cat
- 1.4 cp
- 1.5 find
- 1.6 head
- 1.7 tail
- 1.8 less
- 1.9 more
- 1.10 mv
- 1.11 rm
- 1.12 touch
- 1.13 vim
- 1.14 >和>>
- 1.15 scp
- 1.16 ln
- 1.17 怎么用命令查看日志
- 二、文档管理命令
- 2.1 grep
- 2.2 wc
- 2.3 echo
- 三、磁盘管理命令
- 3.1 cd
- 3.2 df
- 3.3 du
- 3.4 ls
- 3.5 mkdir
- 3.6 rmdir
- 3.7 pwd
- 四、网络通讯命令
- 4.1 ifconfig
- 4.3 netstat
- 4.4 ping
- 4.5 telnet
- 4.6 network
- 五、系统管理命令
- 5.1 date
- 5.2 free
- 5.3 kill
- 5.4 ps
- 5.5 rpm
- 5.6 yum
- 5.7 top
- 5.8 history
- 5.9 service
- 六、备份压缩命令
- 6.1 gzip
- 6.2 tar
- 6.3 unzip
- 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系统文件或目录的访问权限
。有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
语法:
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,用户组改为bowschown bow:bows 2.txt #将data目录及它子目录文件的所属用户改为bow,用户组改为bowschown -R bow:bows data #将2.txt的所属用户改为bowchown bow 2.txt #改变文件群组chown -c :mail t.log#改变文件夹及子文件目录属主及属组为mailchown -cR mail: test/
1.3 cat
该命令用于查看文本文件的内容。
语法:
cat filename
使用示例:
#查看单个文件的内容cat filename#从键盘创建一个文件#创建文件名后,再输入文件内容,Ctrl + C结束文件内容输入cat > filename#将几个文件合并为一个文件cat file1 file2 > file
1.4 cp
将源文件复制至目标文件,或将多个源文件复制至目标目录。
语法:
#连同文件的所有特性把文件file1复制成文件file2cp -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.txtmv 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 filenamevim filename
使用示例:
#打开文件并跳到第10行vim +10 filename
1.14 >和>>
输出符号,将内容输出到文件中,>表示覆盖(会删除原文件内容) >>表示追加。
#将Hello World输出到当前目录下的1.txt文件#1.如果当前目录下没有1.txt文件会创建一个新文件#2.如果当前目录下有1.txt,则会删除原文件内容,写入Hello Worldecho 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
为文件在另外一个位置建立一个同步的链接。
链接分类:软件链接及硬链接。
软链接:
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 软链接可以 跨文件系统 ,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
硬链接:
- 硬链接,以文件副本的形式存在。但不占用实际空间。
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
需要注意:
第一:
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.txtwc text.txt#统计输出结果的行数cat test.txt | wc -l
2.3 echo
输出命令,可以打印变量,字符串的值。示例:
#打印Hello Worldecho 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#启动网卡eth0ifconfig eth0 up #关闭网卡eth0ifconfig 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 显示内存使用总合
使用示例:
#显示内存使用情况freefree -kfree -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格式的安装包。
使用示例:
#查看系统自带jdkrpm -qa | grep jdk#删除系统自带jdkrpm -e --nodeps 查看jdk显示的数据#安装jdkrpm -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: 清除缓存目录下的 headersyum clean oldheaders: 清除缓存目录下旧的 headersyum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
使用示例:
#安装pam-develyum 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/dmtsaitar --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.gztar 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