继上次输出【面试-八股文】mysql 万字总结,助你吊打面试官,业界反响还不错
从 linux 基础、三剑客(grep\sed\awk)、shell 脚本编程、文件管理命令、磁盘管理命令、网络通讯命令、系统备份命令 以及 高频面试题角度出发的呕心力作(呵呵呵*2)
只为助你拿下高薪 offer
建议小伙伴先一键三连点赞、关注、收藏(其实收藏对你们帮助大,你点赞+关注就当是温大大的朋友啦,日后朋友有难温大大第一个站出来帮你哟,咱们拒绝白嫖)
if
语法如何嵌套?case
语句的语法?for
循环语法?while
循环语法?从大的方面讲,Linux 体系结构可以分为两块:
为什么 Linux 体系结构要分为用户空间和内核空间的原因?
BASH 和 DOS 控制台之间的主要区别在于 3 个方面:
了解即可
了解即可
- grep [OPTIONS] PATTERN [FILE...]
- --color=auto 对匹配到的文本着色显示
- -v 显示不被pattern匹配到的行
- -i 忽略字符大小写
- -n 显示匹配的行号
- -c 统计匹配的行数
- -o 仅显示匹配到的字符串
- -q 静默模式,不输出任何信息
- -A # after, 后#行
- -B # before, 前#行
- -C # context, 前后各#行
- -e 实现多个选项间的逻辑or关系
- grep –e ‘cat ’ -e ‘dog’ file
- -w 匹配整个单词
- -E 使用ERE,相当于egrep
- -F 相当于fgrep,不支持正则表达式
例:
1、包含 root: grep -n root
2、不包含 root: grep -nv root
3、s 开头: grep ^s
4、以 n 结尾: grep -n n$
- sed [option]... 'script' inputfile
- 选项
- -n 不输出模式空间内容到屏幕,即不自动打印
- -e 多点编辑
- -f /PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
- -r 支持使用扩展正则表达式
- -i 直接编辑文件
- -i.bak 备份文件并原处编辑
- script 地址定界
- 不给地址:对全文进行处理
- 单地址:
- #: 指定的行,$:最后一行
- /pattern/:被此处模式所能够匹配到的每一行
- 地址范围:
- #,#
- #,+#
- /pat1/,/pat2/
- `#,/pat1/
- ~:步进
- 1~2 奇数行
- 2~2 偶数行
- 编辑命令:
- d 删除模式空间匹配的行,并立即启用下一轮循环
- p 打印当前模式空间内容,追加到默认输出之后
- a [\]text1 在指定行后面追加文本,支持使用\n实现多行追加
- i [\]text 在行前面插入文本
- c [\]text 替换行为单行或多行文本
- w /path/somefile 保存模式匹配的行至指定文件
- r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后
- = 为模式空间中的行打印行号
- ! 模式空间中匹配行取反处理
- s///:查找替换,支持使用其它分隔符,s@@@,s###
- 替换标记:
- g 行内全局替换
- p 显示替换成功的行
- w /PATH/TO/SOMEFILE 将替换成功的行保存至文件中
举例子:
1、打印第 2 行: sed -n 2p passwd
2、打印 2-5 行: sed -n 2,5p passwd
3、root 全替换 abc: sed -i 's/root/abc/g' passwd
- [root@debugresetreset54142x1 ~]# awk --help
- Usage: awk [POSIX or GNU style options] -f
- progfile [--] file ...
- Usage: awk [POSIX or GNU style options]
- [--] 'program' file ...
- POSIX options: GNU long options: (standard)
- -f progfile --file=progfile
- -F fs --field-separator=fs
- -v var=val --assign=var=val
- Short options: GNU long options: (extensions)
- -b --characters-as-bytes
- -c --traditional
- -C --copyright
- -d[file] --dump-variables[=file]
- -e 'program-text' --source='program-text'
- -E file --exec=file
- -g --gen-pot
- -h --help
- -L [fatal] --lint[=fatal]
- -n --non-decimal-data
- -N --use-lc-numeric
- -O --optimize
- -p[file] --profile[=file]
- -P --posix
- -r --re-interval
- -S --sandbox
- -t --lint-old
- -V --version
举例子:
1、打印文件第一列:
这里的分隔符是冒号 ,然后 print 打印第一列
2、输出字段 1,3,6,以制表符作为分隔符
在 Shell 脚本,我们可以使用两种类型的变量:
在写一个 Shell 脚本时,如果你想要检查前一命令是否执行成功,在 if 条件中使用 $? 可以来检查前一命令的结束状态。
- root@localhost:~## ls /usr/bin/shar
- /usr/bin/shar
- root@localhost:~## echo $?
- 0
如果结束状态不是 0,说明命令执行失败。例如:
- root@localhost:~## ls /usr/bin/share
- ls: cannot access /usr/bin/share: No such file or directory
- root@localhost:~## echo $?
- 2
if
语法如何嵌套?- if [ 条件 ]
- then
- 命令1
- 命令2
- …..
- else
- if [ 条件 ]
- then
- 命令1
- 命令2
- ….
- else
- 命令1
- 命令2
- …..
- fi
- fi
- #!/bin/bash
- x=10
- y=20
- if [ $x -gt $y ]
- then
- echo “x is greater than y”
- else
- echo “y is greater than x”
- fi
case
语句的语法?- case 变量 in
- 值1)
- 命令1
- 命令2
- …..
- 最后命令
- !!
- 值2)
- 命令1
- 命令2
- ……
- 最后命令
- ;;
- esac
for
循环语法?- for 变量 in 循环列表
- do
- 命令1
- 命令2
- ….
- 最后命令
- done
while
循环语法?- while [ 条件 ]
- do
- 命令…
- done
do-while 语句的基本格式?
do-while 语句类似于 while 语句,但检查条件语句之前先执行命令(LCTT 译注:意即至少执行一次。)。下面是用 do-while 语句的语法:
- do
- {
- 命令
- } while (条件)
cat 简介
cat filename
2.从键盘创建一个文件:
cat > filename
3.将几个文件合并为一个文件:
cat file1 file2 > file
chmod 简介
chmod 权限说明:
-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log
chmod 常用参数:
- -c 当发生改变时,报告处理信息
- -R 处理指定目录以及其子目录下所有文件
chmod 权限范围:
- u :目录或者文件的当前的用户
- g :目录或者文件的当前的群组
- o :除了目录或者文件的当前用户或群组之外的用户或者群组
- a :所有的用户及群组
chmod 权限代号:
- r :读权限,用数字4表示
- w :写权限,用数字2表示
- x :执行权限,用数字1表示
- - :删除权限,用数字0表示
- s :特殊权限
chmod 实例:
chmod a+x t.log
(2)撤销所有的权限 + 赋予可读权限:u=r
chmod u=r t.log
chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log)
chown 简介
- -c 显示更改的部分的信息
- -R 处理指定目录及子目录
实例:
chown -c mail:mail log2012.log
chown -c :mail t.log
(3)改变文件夹及子文件目录属主及属组为 mail
chown -cR mail: test/
cp 简介
- -i 提示
- -r 复制目录及目录内所有项目
- -a 复制的文件与原文件时间一样
实例:
cp -ai a.txt test
(2)为 a.txt 建议一个链接(快捷方式)
cp -s a.txt link_a.txt
find 命令
find pathname -options [-print -exec -ok ...]
命令参数:
- pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
- -print: find命令将匹配的文件输出到标准输出。
- -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
- -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
命令选项:
- -name 按照文件名查找文件
- -perm 按文件权限查找文件
- -user 按文件属主查找文件
- -group 按照文件所属的组来查找文件。
- -type 查找某一类型的文件,诸如:
- b - 块设备文件
- d - 目录
- c - 字符设备文件
- l - 符号链接文件
- p - 管道文件
- f - 普通文件
实例:
find -atime -2
(2)在当前目录查找 以 .log 结尾的文件。 . 代表当前目录
find ./ -name '*.log'
(3)查找 /opt 目录下 权限为 777 的文件
find /opt -perm 777
(4)查找大于 1K 的文件
find -size +1000c
(5)查找等于 1000 字符的文件
find -size 1000c
常用参数:
-n<行数> 显示的行数(行数为复数表示从最后向前数)
实例:
head 1.log -n 20
(2)显示 1.log 文件前 20 字节
head -c 20 log2014.log
(3)显示 t.log 最后 10 行
head -n -10 t.log
常用命令参数:
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- -o <文件名> 将less 输出的内容在指定文件中保存起来
- -s 显示连续空行为一行
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- -x <数字> 将“tab”键显示为规定的数字空格
- b 向后翻一页
- d 向后翻半页
- h 显示帮助界面
- Q 退出less 命令
- u 向前滚动半页
- y 向前滚动一行
- 空格键 滚动一行
- 回车键 滚动一页
- [pagedown]: 向下翻动一页
- [pageup]: 向上翻动一页
实例:
ps -aux | less -N
(2)查看多个文件
less 1.log 2.log
ln 命令
链接分接
软链接
硬链接
常用参数:
实例:
ln -sv source.log link.log
(2)给文件创建硬链接,并显示操作信息
ln -v source.log link1.log
(3)给目录创建软链接
ln -sv /opt/soft/test/test3 /opt/soft/test/test5
常用参数:
- -l num(要显示的行数)
- -f 将特定的档案系统排除在外,如将proc排除在外
- -r 使用正则运算式做为寻找条件
实例:
locate pwd
(2)搜索 etc 目录下所有以 sh 开头的文件
locate /etc/sh
(3)查找 /var 目录下,以 reason 结尾的文件
locate -r '^/var.*reason$'(其中.表示一个字符,*表示任务多个;.*表示任意多个字符)
命令参数:
- +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
实例:
more +3 text.txt
(2)在所列出文件目录详细信息,借助管道使每次显示 5 行
ls -l | more -5
mv 命令
实例:
mv test.log test1.txt
(2)将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中
- mv llog1.txt log2.txt log3.txt /test3
-
(3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖
mv -i log1.txt log2.txt
(4)移动当前文件夹下的所有文件到上一级目录
mv * ../
rm [选项] 文件…
实例:
rm -i *.log
(2)删除 test 子目录及子目录中所有档案删除,并且不用一一确认:
rm -rf test
(3)删除以 -f 开头的文件
rm -- -f*
常用参数:
- -f 循环读取(常用于查看递增的日志文件)
- -n<行数> 显示行数(从后向前)
例子
tail -f ping.log
语法
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
参数说明:
- a 改变档案的读取时间记录。
- m 改变档案的修改时间记录。
- c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
- f 不使用,是为了与其他 unix 系统的相容性而保留。
- r 使用参考档的时间记录,与 --file 的效果一样。
- d 设定时间与日期,可以使用各种不同的格式。
- t 设定档案的时间记录,格式与 date 指令相同。
- –no-create 不会建立新档案。
- –help 列出指令格式。
- –version 列出版本讯息。
实例
$ touch testfile #修改文件的时间属性
首先,使用 ls 命令查看 testfile 文件的属性,如下所示:
- $ ls -l testfile #查看文件的时间属性
- #原来文件的修改时间为16:09
- -rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile
执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示:
- $ touch testfile #修改文件时间属性为当前系统时间
- $ ls -l testfile #查看文件的时间属性
- #修改后文件的时间属性为当前系统时间
- -rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile
$ touch file #创建一个名为“file”的新的空白文件
Vim 是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
一图胜千言:
whereis 命令
常用参数:
- -b 定位可执行文件。
- -m 定位帮助文件。
- -s 定位源代码文件。
- -u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
实例:
whereis locate
(2)查找 locate 的源码文件
whereis -s locate
(3)查找 lcoate 的帮助文件
whereis -m locate
在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
- which 查看可执行文件的位置。
- whereis 查看文件的位置。
- locate 配合数据库查看文件位置。
- find 实际搜寻硬盘查询文件名称。
常用参数:
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
实例:
which ls
(2)查看 which
- which which
-
-
(3)查看 cd
which cd(显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)
强大的文本搜索命令,grep
命令格式:
grep [option] pattern file|di
常用参数:
- -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 #匹配文字和数字,如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
- \W #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
- \b #单词锁定符,如: '\bgrep\b'只匹配grep。
实例:
ps -ef | grep svn
(2)查找指定进程个数
ps -ef | grep svn -c
(3)从文件中读取关键词
cat test1.txt | grep -f key.log
grep -lR '^grep' /tmp
(5)查找非 x 开关的行内容
grep '^[^x]' test.txt
(6)显示包含 ed 或者 at 字符的内容行
grep -E 'ed|at' test.txt
wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出
命令格式:
wc [option] file..
命令参数:
- -c 统计字节数
- -l 统计行数
- -m 统计字符数
- -w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串
实例:
- wc text.txt
-
- 结果:
-
- 7 8 70 test.txt
(2)统计输出结果的行数
cat test.txt | wc -l
实例:
cd /
(2)进入 “home” 目录
cd ~
(3)进入上一次工作路径
cd -
(4)把上个命令的参数作为 cd 参数使用。
- cd !$
df 命令
- -a 全部文件系统列表
- -h 以方便阅读的方式显示信息
- -i 显示inode信息
- -k 区块为1024字节
- -l 只显示本地磁盘
- -T 列出文件系统类型
实例:
df -l
(2)以易读方式列出所有文件系统及其类型
df -haT
命令格式:
du [选项] [文件]
常用参数:
- -a 显示目录中所有文件大小
- -k 以KB为单位显示文件大小
- -m 以MB为单位显示文件大小
- -g 以GB为单位显示文件大小
- -h 以易读方式显示文件大小
- -s 仅显示总计
- -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
实例:
du -h scf/
(2)以易读方式显示文件夹内所有文件大小
du -ah scf/
(3)显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
du -hc test/ scf/
du -hc --max-depth=1 scf/
常用参数搭配:
- ls -a 列出目录所有文件,包含以.开始的隐藏文件
- ls -A 列出除.及..的其它文件
- ls -r 反序排列
- ls -t 以文件修改时间排序
- ls -S 以文件大小排序
- ls -h 以易读大小显示
- ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
实例:
ls -lhrt
(2) 按大小反序显示文件详细信息
- ls -lrS
-
(3)列出当前目录中所有以"t"开头的目录的详细内容
ls -l t*
(4) 列出文件绝对路径(不包含隐藏文件)
ls | sed "s:^:`pwd`/:"
find $pwd -maxdepth 1 | xargs ls -ld
mkdir 命令用于创建文件夹。
可用选项:
- -m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
- -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
- 实例:
(1)当前工作目录下创建名为 t 的文件夹
- mkdir t
-
(2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:
mkdir -p /tmp/test/t1/t
pwd 命令用于查看当前工作目录路径。
实例:
pwd
(2)查看软链接的实际路径
pwd -P
实例:
rmdir -p parent/child/child11
ifconfig 命令
iptables 命令
- iptables -A INPUT -p tcp --dport 80 -j ACCEP
- 另外,要注意使用 iptables save 命令,进行保存。否则,服务器重启后,配置的规则将丢失。
netstat 命令
语法
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"参数相同。
实例
- [root@centos6 ~ 13:20 #55]# netstat -lnp
- Active Internet connections (only servers)
- Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
- tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1035/sshd
- tcp 0 0 :::22 :::* LISTEN 1035/sshd
- udp 0 0 0.0.0.0:68 0.0.0.0:* 931/dhclient
- Active UNIX domain sockets (only servers)
- Proto RefCnt Flags Type State I-Node PID/Program name Path
- unix 2 [ ACC ] STREAM LISTENING 6825 1/init @/com/ubuntu/upstart
- unix 2 [ ACC ] STREAM LISTENING 8429 1003/dbus-daemon /var/run/dbus/system_bus_socket
如何查看网络连接状况?
- [root@centos6 ~ 13:22 #58]# netstat -an
- Active Internet connections (servers and established)
- Proto Recv-Q Send-Q Local Address Foreign Address State
- tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
- tcp 0 0 192.168.147.130:22 192.168.147.1:23893 ESTABLISHED
- tcp 0 0 :::22 :::* LISTEN
- udp 0 0 0.0.0.0:68 0.0.0.0:*
如何统计系统当前进程连接数?
- 输入命令 netstat -an | grep ESTABLISHED | wc -l 。
- 输出结果 177 。一共有 177 连接数。
ping 命令
ping -c 2 www.baidu.com
telnet 命令
- 语法
- telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]
参数说明:
- -8 允许使用8位字符资料,包括输入与输出。
- -a 尝试自动登入远端系统。
- -b<主机别名> 使用别名指定远端主机名称。
- -c 不读取用户专属目录里的.telnetrc文件。
- -d 启动排错模式。
- -e<脱离字符> 设置脱离字符。
- -E 滤除脱离字符。
- -f 此参数的效果和指定"-F"参数相同。
- -F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
- -k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
- -K 不自动登入远端主机。
- -l<用户名称> 指定要登入远端主机的用户名称。
- -L 允许输出8位字符资料。
- -n<记录文件> 指定文件记录相关信息。
- -r 使用类似rlogin指令的用户界面。
- -S<服务类型> 设置telnet连线所需的IP TOS信息。
- -x 假设主机有支持数据加密的功能,就使用它。
- -X<认证形态> 关闭指定的认证形态。
实例
- # 登录IP为 192.168.0.5 的远程主机
- telnet 192.168.0.5
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)-d 参数使用
- date -d "nov 22" 今年的 11 月 22 日是星期三
- date -d '2 weeks' 2周后的日期
- date -d 'next monday' (下周一的日期)
- date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
- date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
- date -d last-month +%Y%m(上个月是几月)
- date -d next-month +%Y%m(下个月是几月)
free 命令
命令参数:
- -b 以Byte显示内存使用情况
- -k 以kb为单位显示内存使用情况
- -m 以mb为单位显示内存使用情况
- -g 以gb为单位显示内存使用情况
- -s<间隔秒数> 持续显示内存
- -t 显示内存使用总合
-
实例:
- free
- free -k
- free -m
(2)以总和的形式显示内存的使用信息
free -t
(3)周期性查询内存使用情况
free -s 10
kill 命令
常用参数:
- -l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
- -a 当处理当前进程时,不限制命令名和进程号的对应关系
- -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
- -s 指定发送信号
- -u 指定用户
实例:
kill -9 $(ps -ef | grep pro1)
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
(2)显示当前所有进程
ps -A
(3)与 grep 联用查找某进程
ps -aux | grep apache
(4)找出与 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
-
top 命令
常用参数:
- -c 显示完整的进程命令
- -s 保密模式
- -p <进程号> 指定进程显示
- -n <次数>循环显示次数
实例:
- top - 14:06:23 up 70 days, 16:44, 2 users, load average: 1.25, 1.32, 1.35
- Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie
- Cpu(s): 5.9%us, 3.4%sy, 0.0%ni, 90.4%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
- Mem: 32949016k total, 14411180k used, 18537836k free, 169884k buffers
- Swap: 32764556k total, 0k used, 32764556k free, 3612636k cached
- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- 28894 root 22 0 1501m 405m 10m S 52.2 1.3 2534:16 java
- 5.9%us — 用户空间占用CPU的百分比。
- 3.4% sy — 内核空间占用CPU的百分比。
- 0.0% ni — 改变过优先级的进程占用CPU的百分比
- 90.4% id — 空闲CPU百分比
- 0.0% wa — IO等待占用CPU的百分比
- 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
- 0.2% si — 软中断(Software Interrupts)占用CPU的百分比
-
- 32949016k total — 物理内存总量(32GB)
- 14411180k used — 使用中的内存总量(14GB)
- 18537836k free — 空闲内存总量(18GB)
- 169884k buffers — 缓存的内存量 (169M
第五行,swap 交换分区信息,具体信息说明如下:
- 32764556k total — 交换区总量(32GB)
- 0k used — 使用的交换区总量(0K)
- 32764556k free — 空闲交换区总量(32GB)
- 3612636k cached — 缓冲的交换区总量(3.6GB)
- PID — 进程id
- USER — 进程所有者
- PR — 进程优先级
- NI — nice值。负值表示高优先级,正值表示低优先级
- VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR — 共享内存大小,单位kb
- S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU — 上次更新到现在的CPU时间占用百分比
- %MEM — 进程使用的物理内存百分比
- TIME+ — 进程使用的CPU时间总计,单位1/100秒
- COMMAND — 进程名称(命令名/命令行)
top 交互命令
- h 显示top交互命令帮助信息
- c 切换显示命令名称和完整命令行
- m 以内存使用率排序
- P 根据CPU使用百分比大小进行排序
- T 根据时间/累计时间进行排序
- W 将当前设置写入~/.toprc文件中
- o或者O 改变显示项目的顺序
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
- [root@www ~]# yum install pam-devel
-
gzip 命令
tar 命令
常用参数:
- -c 建立新的压缩文件
- -f 指定压缩文件
- -r 添加文件到已经压缩文件包中
- -u 添加改了和现有的文件到压缩包中
- -x 从压缩包中抽取文件
- -t 显示压缩文件中的内容
- -z 支持gzip压缩
- -j 支持bzip2压缩
- -Z 支持compress解压文件
- -v 显示操作过程
有关 gzip 及 bzip2 压缩:
gzip 实例:
bz2 实例:
实例:
tar -cvf log.tar 1.log,2.log 或tar -cvf log.*
(2)将 /etc 下的所有文件及目录打包到指定目录,并使用 gz 压缩
tar -zcvf /tmp/etc.tar.gz /etc
(3)查看刚打包的文件内容(一定加 z,因为是使用 gzip 压缩的)
tar -ztvf /tmp/etc.tar.gz
(4)要压缩打包 /home, /etc ,但不要 /home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
unzip 命令
关注我,加我好友拉你进面试群,一起讨论面试干货 / 套路,大家一起升职加薪,【999】领取学习资料