一些简单又实用的工具:
一、文件以及目录管理
1. 创建和删除文件
# 创建文件
mkdir files
# 强力删除文件或文件夹
rm -rf file
# 移动文件
mv sourceFile targetFile
# 复制文件[/目录]
cp [-r] sourceFile targetFile
2. 列出目录项
3. 查找目录或文件
# 实时查找
find
# 使用索引数据库查找
locate
4. 查看文件内容
# 查看文件
cat filename
# 按页显示列表内容
ls -al | more
# 只看前 n 行
head -n filename
# 显示文件倒数第五行
tail -5 filename
# 查看文件间差别
diff file1 file2
5. 查找文件内容
6. 文件或目录权限修改
# 改变文件所有者
chown
# 改变文件的权限
chmod
# 递归子目录修改
chown -R tuxapp source/
7. 管道和重定向
# 批处理命令连接执行 使用 |
# 串联 使用 ;
# 前面成功,则执行后面一条,否则,不执行:&&
# 前面失败,则后一条执行: ||
8. 打包/解包、压缩/解压缩
# 打包
tar -cvf etc.tar /etc
# 解包
tar -xvf demo.tar
# 压缩
gzip demo
# 解压
gunzip demo.zip
9. lsof 查看系统文件
具体使用,查看链接文章 --> 链接跳转
网络文件(例如:NFS file、网络socket,unix域名socket)
二、文本处理
1. Find 文件查找
find --help
find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]
-name # 按照文件名称查找
-user # 按照文件拥有者查找
-group # 按照文件拥有组查找
-type # 按文件类型查找
-perm # 按文件权限查找
-exec # 对查找的文件执行指定动作
-maxdepth/ -mindepth # 指定查找范围最大/最小为几级目录
-cmin # 按照文件修改时间查找
-size # 按文件大小查找
-o/-a/-not # 查找条件 或/且/非
2. grep 文本搜索
3. xargs 命令行参数转换
xargs 能够将输入数据转化为特定命令的命令行参数;这样,可以配合很多命令来组合使用。比如grep,比如find; - 将多行输出转化为单行输出
# 将单行转化为多行输出
cat single.txt | xargs -n 3
4. sort 排序
5. uniq 消除重复行
# 消除重复行
sort unsort.txt | uniq
# 统计各行在文件中出现的次数
sort unsort.txt | uniq -c
# 统计重复行
sort unsort.txt | uniq -d
6. tr 进行转换
7. cut 按列切分文本
8. paste 按列拼接文本
9. wc 统计行和字符的工具
wc -l file // 统计行数
wc -w file // 统计单词数
wc -c file // 统计字符数
10. sed 文本替换器
11. awk 数据流处理工具
三、进程管理工具
1. 查询进程
# 查看正在运行的进程信息
ps -ef
# 显示进程信息,并实时更新
top
# 使用 lsof
lsof
ps 命令列出的是当前进行的快照,ps 食用文章 --> 跳转链接
2. 终止进程
# 杀死指定进程
kill PID
# 杀死相关进程
kill -9 3434
# 杀死 job 用户的全部工作
kill %job
休眠中, 受阻, 在等待某个条件的形成或接受到信号
收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放
进程收到SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU信号后停止运行运行
3. 进程监控
top 以及 htop 的食用教程 --> 跳转链接
# 实时显示系统中各个进程的资源占用情况
top
# top 的加强版本, Linux 交互式的进程浏览器
htop
4. 分析线程栈
# 使用命令pmap,来输出进程内存的状况,可以用来分析线程堆栈
pmap PID
# pstack 可显示每个进程的栈跟踪,必须由相应进程的宿主或 root 运行
pstack PID
5. crontab 定时任务
# -u #<用户名称> 是指设定指定<用户名称>的定时任务,这个前提是要有其权限,默认是设置自己定时任务
# -l #列出该用户的定时任务设置。
# -r #删除该用户的定时任务设置。
# -e #编辑该用户的定时任务设置。
crontab [-u <用户名称>][配置文件] 或 crontab { -l | -r | -e }
# 使用
crontab -e # 编辑定时任务
i #默认文字编辑器为vim,按i字母键即可添加cron任务
30 3 * * * /usr/local/etc/rc.d/lighttpd restart #将命令代码放入,此命令意义为每天的03:30 重启apache
ESC #按ESC键退出编辑模式
:wq #键入:wq保存
service crond restart #重启crontab服务
四、性能监控
1. 监控 CPU
# 查看 CPU 使用率
sar -u
# 查看 CPU 凭据负载
sar -q 1 2
2. 查询内存
# 查看内存使用状况
sar -r
# 查看内存使用量
free -m
3. 查询页面交换
4. 查询硬盘使用
# 查看磁盘空间利用情况
df -h
# 查询当前目录下空间使用情况
df -sh
# 查看该目录下所有文件夹的排序后的大小
du -sh 'ls'
5. 综合应用
# 查看cpu、内存、使用情况: vmstat n m (n 为监控频率、m为监控次数)
vmstat 1 3
#
watch
五、网络工具
1. 查询网络服务和端口
# netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态, masquerade 连接,多播成员
# 列出所有端口
netstat -a
# lsof 是一个列出当前系统打开文件的工具
# 查询使用该端口的进程 PID
lsof -i:7902 # 查询使用该端口的进程的 PID
ps -fe | grep 30294 # 查询 PID 的进程详细信息
2. 网络路由
# 查看路由状态
route -n
# 探测前往地址IP的路由路径
traceroute IP
# DNS查询,寻找域名domain对应的IP
host domain
# 反向DNS查询
host IP
3. 镜像下载
# 下载文件或者网页
# –limit-rate :下载限速
# -o:指定日志文件;输出都写入日志;
# -c:断点续传
wget url
4. FTP|SFTP|LFTP|SSH
5. 网络复制
六、系统管理以及 IPC 资源管理
1. 系统管理
# 查询系统版本
uname -a
# 查看硬件信息
sar -u 5 10
2. ldd 查看程序依赖库
查看程序运行所需要的共享库
# 第一列: 程序需要依赖什么库
# 第二列: 系统提供的与程序需要的库所对应的库
# 第三列: 库加载的开始地址
/opt/app/todeav1/test$ ldd test
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003996400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039a5600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003995800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003995400000)
3. IPCS 查询进程间通信状态
IPCS 是 Linux 显示进程间通信设施状态的工具,可以显示消息队列、共享内存和信号量的信息
1. IPC 资源查询
# 查看系统使用的 IPC 资源
# -m : 查看系统使用的 IPC 共享内存资源
# -q : 查看系统使用的 IPC 队列资源
# -s : 查看系统使用的 IPC 信号量资源
# -l : 系统 IPC 参数查询
ipcs [-m|q|s|l]
2. 清除 IPC 资源
使用ipcrm 命令来清除IPC资源:这个命令同时会将与ipc对象相关联的数据也一起移除。当然,只有root用户,或者ipc对象的创建者才有这项权利
ipcrm -M shmkey 移除用shmkey创建的共享内存段
ipcrm -m shmid 移除用shmid标识的共享内存段
ipcrm -Q msgkey 移除用msqkey创建的消息队列
ipcrm -q msqid 移除用msqid标识的消息队列
ipcrm -S semkey 移除用semkey创建的信号
ipcrm -s semid 移除用semid标识的信号
# 清除当前用户创建的所有 IPC 资源
ipcs -q | awk '{ print "ipcrm -q "$2}' | sh > /dev/null 2>&1;
ipcs -m | awk '{ print "ipcrm -m "$2}' | sh > /dev/null 2>&1;
ipcs -s | awk '{ print "ipcrm -s "$2}' | sh > /dev/null 2>&1;