wget 参数
参数 | 作用 |
---|---|
-b | 后台下载模式。 |
-O | 下载到指定目录。 |
-t | 最大尝试次数。 |
-c | 断点续传 |
-p | 下载页面内所有资源,包括图片、视频等。 |
-r | 递归下载 |
pidof
pidof XXX 找到参数名的PID.
killall
killall XXX 找到并kill找到的进程, 有点像kill+pidof
常用文件命令
- stat 显示文件属性信息
- file 查看文件类型
常用负载监控
- watch -n 1 uptime
- top
- df -h
- ps aux | grep xx
- free -h
tr
替换文本
tr [a-z] [A-Z]
常用安全监控
- who 当前在线用户和终端设备
- last 登陆日志
- history 默认保存1000条, 修改/etc/profile的HISTSIZE
- .bash_history 这个文件用于保存每个用户的操作历史, 在用户根目录
- /etc/passwd 系统的账户信息
/etc/passwd 详解
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
/etc/shadow
真正的密码文件
LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
如果PASSWORD字段中的第一个字符是*的话,那么,就表示该账号被查封了
cut
按列切割文件
cut -d: -f1 /etc/passwd
-d 后面是分隔符
-f 查看第几列
touch
难点- 设置文件系统信息,擦除文件修改记录
参数 | 作用 |
---|---|
-a | 仅修改“访问时间”(atime) |
-m | 仅修改“更改时间”(mtime) |
-d | 同时修改atime与mtime |
tar
.tar或.tar.gz或.tar.bz2
参数 | 用途 |
---|---|
-c | 创建压缩文件 |
-x | 解压缩 |
-z | 指定使用Gzip格式来压缩/解压 |
-j | 指定使用bzip2参数来压缩/解压文件 |
-v | 显示进度 |
-C | 定要解压到的那个指定的目录 |
-f | 必须放到参数的最后一位,要压缩或解压的软件包名称 |
tar czvf etc.tar.gz /etc
tar xzvf etc.tar.gz -C /root/etc
grep
关键词搜索匹配
参数 | 用途 |
---|---|
-A | 输出找到行及的下N行 |
-B | 输出找到行及的上N行 |
-C | 输出找到行及的上/下各N行 |
-n | 显示行号 |
-v | 反选 |
find
find ./ -name "test*"
管道输入输出
2> 文件 将错误输出重定向到一个文件中(清空原有文件的数据)
>> 文件 2>&1 或 &> 文件将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
ls test32 > readme.txt 2> error.txt
正常输出到readme
错误输出到error.txt
管道符 |
其实管道命令符的作用一句话就能概括:“将前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入”
echo "linuxprobe" | passwd --stdin root
用管道为root修改密码
常见转义字符
字符 | 用法 |
---|---|
反斜杠(\) | 转义后面的一个字符变为单纯的字符串 |
单引号('') | 转义其中所有的字符为单纯的字符串 |
双引号("") | 保留其中的变量属性不转义为普通字符串 |
反引号(``) | 将其中的字符串当做命令执行后返回一个结果 |
#命令执行的四个步骤
- 第一步骤阶段是判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行。
- 检查用户输入的命令是否为“别名命令”, alias/unalias 进行别名处理
- SHELL解释器(Bash)来判断用户输入的是内部命令还是外部命令
- 内部命令是解释器内部的指令,会被直接的执行
- 外部指令进入步骤4
- type 可以手动查看指令类型
- 系统在多个路径中查找用户输入的命令文件
- 在系统的环境变量PATH中寻找
- 冒号间隔
yum 仓库配置
文件位置 : /etc/yum.repos.d/
文件名称 *.repo
[rhel-media]: yum源的名称,可自定义。
name=linuxprobe : yum仓库的名称,可自定义。
baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)
enabled=1 : 设置此源是否可用,1为可用,0为禁用。
gpgcheck=1 : 设置此源是否校验文件,1为校验,0为不校验。
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若为校验请指定公钥文件地址。
shell基础
- 条件测试语法能够判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值。
条件判断
[ -e /home/ow ]
文件操作符 | 作用 |
---|---|
-d | 测试是否为目录。 |
-e | 测试文件或目录是否存在。 |
-f | 判断是否为文件。 |
-r | 测试当前用户是否有权限读取。 |
-w | 测试当前用户是否有权限写入。 |
-x | 测试当前用户是否有权限执行。 |
整数操作符 | 作用 |
---|---|
-eq | 判断是否等于 |
-ne | 判断是否不等于 |
-gt | 判断是否大于 |
-lt | 判断是否小于 |
-le | 判断是否等于或小于 |
-ge | 判断是否大于或等于 |
判断计算机内存
FreeMem=free -m | grep "Mem:" | awk '{print $4}'
[ $FreeMem -lt 1024 ] && echo "less memory" || echo "memory enough"
字符串判断
- -z 判断是否为空
- =/!=
循环
if [] then;
elif [] then
else
fi
for xx in xx
do
done
while []
do
done
日期处理
初始化一个参数,将指定的日期作为参数处理
START_DATE=`date -d '2015-06-01' "+%Y-%m-%d"`
将一个日期+1天
START_DATE=`date -d "next-day $START_DATE" "+%Y-%m-%d"`
- -1 month
- -1 day
- next day
- 2 days ago
- -1 week...
awk
awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
- 执行BEGIN{ commands }语句块中的语句;
- 从文件或标准输入(stdin)读取一行,然后执行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行重复这个过程,直到文件全部被读取完毕。
- 当读至输入流末尾时,执行END{ commands }语句块
echo -e "line1 f2 f3\nline2 f4 f5\nline3 f6 f7" | awk '{print "Line No:"NR", No of fields:"NF, "$0="$0, "$1="$1, "$2="$2, "$3="$3}'