??操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在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中每个文件有所有者、所在组、其它组的概念。
??该命令用于改变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
??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/
??该命令用于查看文本文件的内容。
??语法:
cat filename
??使用示例:
#查看单个文件的内容
cat filename
#从键盘创建一个文件
#创建文件名后,再输入文件内容,Ctrl + C结束文件内容输入
cat > filename
#将几个文件合并为一个文件
cat file1 file2 > file
??将源文件复制至目标文件,或将多个源文件复制至目标目录。
??语法:
#连同文件的所有特性把文件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
??用于在文件树中查找文件。
??语法:
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
??用于查看纯文本文档的前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
??用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。因为可以查看文件动态追加的内容,常用查看日志文件。
??语法:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
??常用参数:
-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)
??循环读取逐渐增加的文件内容:
#默认查看后10行追加的内容
tail -f ping.log
#动态查看最新的20行内容
tail -20f filename
??用于查看文本文件,语法:
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
??功能类似于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
??移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。
??当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。
??使用示例:
#将文件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 * ../
??删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。如果使用rm来删除文件,通常仍可以将该文件恢复原状。
??语法:
rm [选项] 文件…
??使用示例:
#删除任何.log文件,删除前逐一询问确认
rm -i *.log
#删除test子目录及子目录中所有档案删除,并且不用一一确认
rm -rf test
??用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
??语法:
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
??Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
??基本上vi/vim共分为三种模式,分别是命令模式
(Command mode),输入模式
(Insert mode)和底线命令模式
(Last line mode)。
??语法:
vi filename
vim filename
??使用示例:
#打开文件并跳到第10行
vim +10 filename
??输出符号,将内容输出到文件中,>表示覆盖(会删除原文件内容) >>表示追加。
#将Hello World输出到当前目录下的1.txt文件
#1.如果当前目录下没有1.txt文件会创建一个新文件
#2.如果当前目录下有1.txt,则会删除原文件内容,写入Hello World
echo Hello World > 1.txt
#将1234追加到当前目录下的1.txt中,如果文件不存在会创建新文件
echo 1234 >> 1.txt
??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/
??为文件在另外一个位置建立一个同步的链接。
??链接分类:软件链接及硬链接。
??软链接:
- 软链接,以路径的形式存在。类似于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
??Linux查看日志的命令有多种:
#编辑方式查看,可修改
vi 文件名
#显示全部文件内容
cat 文件名
#分页显示文件内容
more 文件名
#与more相似,更好的是可以往前翻页
less 文件名
#仅查看尾部,还可以指定行数
tail 文件名
#仅查看头部,还可以指定行数
head 文件名
??以下介绍几种常用的方法。
#查询日志尾部最后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 或者 空格键可以快捷键)
#查询日志文件中的头10行日志
head -n 10 test.log
#查询日志文件除了最后10行的其他所有日志
head -n -10 test.log
??强大的文本搜索命令,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
??wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出。
??语法:
wc [option] file..
??命令参数:
-c 统计字节数
-l 统计行数
-m 统计字符数
-w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串
??使用示例:
#查找文件的行数、单词数、字节数、文件名
#如:7 8 70 test.txt
wc text.txt
#统计输出结果的行数
cat test.txt | wc -l
??输出命令,可以打印变量,字符串的值。示例:
#打印Hello World
echo Hello World
#打印环境变量PATH的值,其中$是取变量值的符号,用法:$变量名 或者 ${变量名}
echo $PATH
#打印内容但不换行
echo -n Hello World
??echo也可以向文件中增加内容。示例:
#echo “内容”>> 文件名:将输入的内容在文件最后一行后插入
echo '21345' >> text.txt
#echo “内容”> 文件名:将想要的内容覆盖到对应的文件当中去
echo '21345' > text.txt
/
开始的路径。.
表示当前目录。…
表示当前目录的上一级目录,它可以多个一起使用。~
表示当前用户的根目录。例如:root用户时,~
表示/root目录。bow用户时,~
表示/home/bow目录。??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
??显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以KB为单位进行显示。
??参数:
-a 全部文件系统列表
-h 以方便阅读的方式显示信息
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地磁盘
-T 列出文件系统类型
??使用示例:
#显示磁盘使用情况
df -l
#以易读方式列出所有文件系统及其类型
df -haT
#查看硬盘使用,并以合适单位显示大小
df -h
??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/
?? 列出指定目录中的目录,包括大小字节数,可读可写可执行的权限等。
??就是 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
??用于创建文件夹。
??可用选项:
-m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
??使用示例:
#当前工作目录下创建名为 t的文件夹
mkdir t
#在tmp目录下创建路径为test/t1/t的目录,若不存在,则创建
mkdir -p /tmp/test/t1/t
??从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
??使用示例:
#当parent子目录被删除后使它也成为空目录的话,则顺便一并删除
rmdir -p parent/child/child11
??查看当前工作目录(绝对)路径。
??使用示例:
#查看当前路径
pwd
#查看软链接的实际路径
pwd -P
??可以查看ip地址及接口信息。
??使用示例:
#查看所有网络接口及其状态
ifconfig -a
#启动网卡eth0
ifconfig eth0 up
#关闭网卡eth0
ifconfig eth0 down
??显示网络状态,利用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
??。
??令通过ICMP(Internet控制消息协议)工作;ping可以用来测试本机与目标主机是否联通、联通速度如何、稳定性如何。
??使用示例:
#每隔0.6秒ping一次,一共ping 5次
ping -c 5 -i 0.6 qq.com
??Telnet指令主要用于与远程主机建立连接并进行远程登录,常用来测试一个主机的某个端口连通性。
??语法:
telnet [远程主机IP地址] [端口号]
??使用示例:
#登录IP为192.168.0.5的远程主机,未指定端口的话,使用默认的Telnet端口(通常为23)
telnet 192.168.0.5
??网络服务管理命令。
??示例:
#启动网卡
service network start
#关闭网卡
service network stop
#重启网络
service network restart
??显示或设定系统的日期与时间。
??命令参数:
-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
??显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
??命令参数:
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合
??使用示例:
#显示内存使用情况
free
free -k
free -m
#以总和的形式显示内存的使用信息
free -t
#周期性查询内存使用情况
free -s 10
#查看内存使用情况,并且以合适的单位显示大小
free -h
??发送指定的信号到相应进程。不指定型号将发送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)
??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)'
??用于安装.rpm格式的安装包。
??使用示例:
#查看系统自带jdk
rpm -qa | grep jdk
#删除系统自带jdk
rpm -e --nodeps 查看jdk显示的数据
#安装jdk
rpm -ivh jdk-7u80-linux-x64.rpm
??软件安装部管理命令。
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
??显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等。
??使用示例:
#查看具体的进程的内存占用
top -p 进程id
#查看用户的进程内存
Top -u 用户名
#查看进程下的线程
top -H -p 进程ID
??查看使用的命令的历史记录。
??允许用户启动、停止、重启、查看和配置系统服务。语法:
#命令: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
??压缩文件。语法:
gzip(选项)(参数)
??使用示例:
#创建一个*.gz的压缩文件
gzip test.txt
#解压 *.gz 文件
gzip -d test.txt.gz
??用来压缩和解压文件。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
??解压 *.zip文件。
??使用示例:
#压缩文件解压缩到当前目录中
unzip test.zip
#不解压文件,查看压缩包内的文件
unzip -l 压缩文件名
#查看da.zip压缩文件中包含的文件
unzip -l da.zip
#将压缩文件解压到指定目录
unzip da.zip -d 目标目录
#将压缩文件da.zip解压到tm目录下
unzip da.zip -d tm/
??压缩文件或目录。
??语法:
zip [选项] 压缩包名 源文件或源目录列表
??使用示例:
#将2.txt压缩到2.zip中
zip 2.zip 2.txt
#只会压缩文件夹,不会压缩文件夹下的内容
zip data.zip data
#压缩文件夹和文件夹内的文件(压缩文件夹和它的下一级文件)
zip da.zip da/*
#-r表示递归地将文件夹及它的子目录文件全部压缩
zip -r data.zip date