基础Linux命令
关键字 | 描述 | 用法 |
---|---|---|
grep | 查询 | grep [option] pattern file option -v 反向查询 option -n 显示行号 option -c 输出符合条件的列数而不是内容 option -o 输出匹配到的内容而不是整行 |
find | 查找 | find path [option] option -name xx 查找文件名包含xx的文件 option -type xx 查找xx类型的文件 |
| | 上游输出作为下游输入 | |
> | 输出重定向 | 覆盖原文件内容 |
>> | 输出重定向 | 追加 |
< | 输入重定向 | <后面的内容作为输入 |
<< | 输入重定向 | 读接下来的信息,以<<后面的字符结尾 |
md5sum | xx可以是字符串也可以是文件 | md5sum xx |
history | 历史输入指令 | |
cp | 文件复制 | cp [options] source dest option -r 递归复制 option -f 覆盖 option -p 保留源文件信息(修改时间、权限…) \cp 忽略询问 |
scp | 远程传输 | scp [options] source dest option -q 不显示传输进度 option -v 显示详细过程 option -P(大写) 端口 |
mv | 重命名、剪切 | mv sourceFile destFile mv sourceFile destPath |
mkdir | 创建文件夹 | mkdir [options] xx option -p 递归创建 |
rmdir | 删除空目录 | rmdir xx |
dirs | 显示当前目录 | |
tar | 压缩、解压缩 | tar zxf A.tgz 解压 tar zcf A.tgz A 把A压缩成A.tgz tar -cvf log.tar log2012.log 仅打包,不压缩! tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩 tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩 tar -ztvf log.tar.gz 查阅tar包内有哪些文件 |
zip | 压缩 | zip [options] a.zip xx option -q 不显示指令执行过程 option -r 递归 option -d 从压缩文件中删除指定文件 option -v 显示执行过程,版本信息 |
unzip | 解压缩 | unzip [options] a.zip option -P password option -q 不显示过程 option -o overwrite option -n 不覆盖 option -l 查看压缩包内文件 unzip a.zip -d path 指定解压缩位置 |
rm | 删除 | rm [options] xx option -r 递归删除 option -f 强制删除 |
echo | 打印 | echo [options] xx option -e 激活转义 option -n 不换行输出 \`command\`输出命令执行结果 |
cat | 查看、连接、追加 | cat [options] fileName cat file1 file2 > file3 cat >> file << EOF 内容追加 |
crontab | 定时任务 | crontab -l 查看定时任务 crontab -e 编辑定时任务,不需要重启 cron表达式 |
curl | 发送Post和Get请求 | |
sed | 用脚本处理文件 | sed示例 |
read | 读取标准输入 | read [options] param option -p 输出一个提示 option -t 等待的秒数,超时自动退出 option -n 接收输入的字符数,达到自动退出 option -s 不显示在终端,适合接收密码 option -a 空格分割接受一个数组 read示例 |
awk | 扩展性很高的文本分析 | awk ‘BEGIN{ commands } pattern{ commands } END{ commands }’ BEGIN语句块在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中; END语句块在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块; pattern语句块中的通用命令是最重要的部分,它也是可选的。如果没有提供pattern语句块,则默认执行{print},即打印每一个读取到的行,awk读取的每一行都会执行该语句块。 command 以’;‘分割 print的参数中以’,'分割打印输出空格 |
kill | 通过进程号关闭进程 | kill -9 pid 立即关闭 kill -15 pid 发送关闭signal |
pkill | 关闭指定名称的进程 | pkill -9 name pkill -15 name |
ps | 显示当前进程状态 | ps aux ps ef 二者等同,显示所有包含其他使用者的进程 |
机器磁盘和IO
关键字 | 描述 | 用法 |
---|---|---|
df | 磁盘占用统计 | df [option] [file] option -h 可读格式 |
iotop | 监视磁盘io | iotop [option] option -o 只显示正在交互的进程或线程 option -d 刷新间隔,单位秒 option -p 显示指定进程的pid option -b 非交互模式下运行,用来日志记录 |
iostat | 输入输出统计 | iostat [option] option -d 所有设备的IO统计 option -d [deviceName] 具体设备的IO option -p 所有设备和分区的IO统计 option -x 所有设备的详细的 I/O 统计 option -m 以MB为单位显示,默认KB option -number 刷新间隔,单位秒 输出说明 |
服务器网络状态
关键字 | 描述 | 用法 |
---|---|---|
netstat | 网络状态 | netstat [options] option -i 网卡列表 option -a 所有端口 option -t tcp连接状态 option -u udp连接状态 option -l 监听中的端口 option -p 正在使用端口的识别码和程序 option -n 显示ip |
telnet | 通过telnet协议连接目的主机 | telnet hostname port |
ifconfig | 查看用户网络配置 | ifconfig |
示例
read示例
#接收一个字符
#不显示在终端
#五秒内输入执行statement1,否则执行statement2
#标准输入会被传入wesite变量
if read -n1 -s -t 5 -p "请输入网站:" wesite
then
statement1
else
statement2
fi
if read -a -t 10 -p "请输入一个数组" array
sed示例
#删除第二行,替换每行以A开始的第一个A为B
sed -i -e "2d" -e "s/^A/B/" file
#把每行全部A换成B
sed -i -e "s/A/B/g" file
cron表达式
- *(星号) 代表任何时刻都接受
- ,(逗号) 代表分隔时段的意思
- -(减号) 代表一段时间范围内
- /n(斜线) 那个 n 代表数字,每隔 n 单位间隔
- ? 无意义,只在日期和星期可用
秒 | 分钟 | 小时 | 日期 | 月份 | 周 | 年(可选) | 命令 | 解析 |
---|---|---|---|---|---|---|---|---|
5 | 10 | 1 | 5 | * | * | * | command | 每月5号1时10分5秒执行一次 |
iostat输出说明
第一行 | |||
---|---|---|---|
系统版本 | 当前日期 | 操作系统 | cpu |
第二行 | |||||
---|---|---|---|---|---|
%user | %nice | %system | %iowait | %steal | %idle |
用户级别执行所使用的CPU百分比 | nice操作所使用的CPU百分比 | 在系统级别(kernel)执行所使用的CPU百分比 | CPU等待硬件IO时,所占用的百分比 | 当监控程序正服务于另外一个虚拟处理器时无意识的等待CPU所占的时间百分比 | CPU空闲时段所占的百分比 |
第三行 | |||||
---|---|---|---|---|---|
Device | tps | kb_read/s | kb_wrtn/s | kb_read | kb_wrtn |
设备名 | 每秒的IO请求数 | 每秒读取的数据量 | 每秒写入的数据量 | 读入的全部数据量 | 写入的全部数据量 |
内容追加
#EOF可以换成任意输入未出现的字符串
cat >> file << EOF
键盘输入1
键盘输入2
EOF