操作系统的基本操作(cp mv ls cd rm mkdir 重定向 管道)
网络基本配置(ifconfig ping mii-tool dhclient)
用户权限(useradd userdel passwd su sudo)
网络安全(iptables tcpdump netstat)
磁盘管理(df mount fdisk gdisk dd mkfs [LVM/磁盘配额])
软件管理(rpm/yum dpkg/apt autconf cmake tar)
启动管理(grub)
服务管理(service)
进程管理(ps top kill pstree)
文本处理(cat head tail find grep wc sort uniq sed awk tr cut)
时间任务(crontab)
脚本(bash shell)
-------------------------------------------------------------------------------
进程管理
进程: 将程序执行起来,相对操作系统系统对此运行程序起的名字
软件 -> 程序 -> 进程 -> 线程
进程管理即管理操作系统之上正在运行的程序
每个进程都有一个唯一的标识符: PID
ps -aux / ps -ef
列出当前操作系统正在运行的程序(即所有进程)
进程所属用户
PID
CPU/内存使用量
TTY 此进程使用的输入输出设备文件
? 代表此进程为守护进程,不使用I/O设备文件
进程对应的程序名及参数
进程状态
S 可中断睡眠
D 不可中断睡眠
R 运行
T 暂停
Z 僵尸
pstree -p 列出当前进程树
kill 给对应进程发信号
kill -15 PID
给对应PID发送终止信号(进程有可能会忽略此信号)
kill -9 PID
给对应PID发送杀死信号(此信号不能忽略)
kill -9 -PID
给某个进程组发信号
kill -9 -1
给所有进程发信号
top 文本版进程管理器
实时检测当前进程状态
q 退出
空格 立即刷新进程列表
c 按CPU使用量排序
m 按内存使用量排序
? 得到top帮助信息
k 选择进程发送信号
jobs 列出当前终端所有后台进程
进程组 包含一个或多个进程 组ID为组长的PID
会话 包含一个或多个进程组
控制终端 TTY,输入输出的设备, 每个会话只有一个控制终端
前台进程组 正在使用控制终端的进程组为前台进程组
后台进程组
fg 切换会话中的前台进程组
ctrl + z 将前台进程组放到后台
后台运行程序: 运行程序后台加&
例: gedit &
killall 按进程名发信号
例: killall -9 vim
-------------------------------------------------------------------------------
软链接(ntfs fat32不支持):
ln -s 目标路径 软链接路径
BASH SHELL:
命令历史 history
! 操作命令历史
!! 执行命令历史中最后一条命令
!567 执行命令历史第567行命令
!ls 执行命令历史从最后向前查找ls关键词的命令
!$ 获取命令历史中最后一条命令的参数
命令历史记录文件: ~/.bash_history
清除当前终端的命令历史: history -c
命令别名 alias
创建命令别名: alias 命令名称='执行的命令'
例: alias u='sudo mount 3.3.3.9:/kyo /mnt'
删除命令别名: unalias 别名名称
例: unalias u
命令别名只影响当前终端, 永久生效将命令别名创建到终端配置脚本 ~/.bashrc
tab补全
一次为补全
二次为列表
快捷键(emacs/vi)
bash终端使用vi操作方式:
set -o vi
bash终端使用emacs操作方式(默认):
set -o emacs
特殊字符
! 命令历史
~ 家目录
`` 执行命令,返回命令的结果
@ 不能单独使用 $@
# 注释
$ 访问变量
& 后台运行
* 匹配所有
$() 与``的功能一样
[] 内部命令,分隔命令使用
{} 匹配范围
\ 脱义其它特殊字符
'' 批量完全脱义
"" 批量不完全脱义 ($不会脱义)
/ 根目录
. 当前目录
.. 上一级目录
- 上次所在目录
; 命令结束符(一行执行多条命令)
| 管道
> >> < << 重定向
? 不能单独使用 $?
-------------------------------------------------------------------------------
查找命令
which 查找$PATH变量指定的目录里的命令
which ifconfig 查出ifconfig命令的路径
whereis 查找命令,显示命令更多的信息
whereis ifconfig 命令路径,帮助文档等
locate 文件查找命令
速度快,通过系统自带的一个数据库去查找
/var/lib/mlocate/mlocate.db
locate hello 查找带hello的文件,如果hello是刚刚新建的就找不到,因为数据库还没有没保存现在的信息
updatedb 手动更新查找数据库,然后再查找就会很快找到刚刚新建的hello文件
find 文件查找命令,功能最强大,速度慢,因为会扫描整个硬盘
find /etc -name grub.conf 查找/etc目录下的grub.conf文件
find / -name "*.conf" 查找/下所有.conf文件
find / -iname grub.conf 查找/目录下的grub.conf文件,忽略大小写
find / -maxdepth 2 -name grub.conf 可以使用-maxdepath参数来控制查找的层次,就是说只查当前目录和子目录,最多查2级目录
find / -mindepth 2 -name grub.conf 最少查二级目录
find /etc -type d 查找/etc/下所有的目录
find /etc -type f 查找/etc/下的所有普通文件
find /etc -type l -name *.conf 查找/etc/下软链接文件是.conf结尾的文件
find /etc -type s 查找/etc/下所有socket文件
find /etc -type c 查找/etc/下的所有字符设备文件
find /etc -type p 查找/etc/下所有管道文件
find /etc -user root 查找/etc/所属用户是root的文件
find /etc -group root 查找/etc/所属用户组是root的文件
find /etc -uid 500 查找/etc/下uid是500的文件,和-user类似
find /etc -gid 500 查找/etc/下gid是500的文件,和-group类似
find /etc -nouser 查找没有所属用户的文件
find /etc -nogroup 查找没有所属用户组的文件
find /etc -perm 777 -type d 查找/etc/下权限为777的目录
find . -perm 111 查找权限是111的文件
find . -size +10M 查找当前目录下大于10M的文件,单位可以有K,M,G,b等
find / -size -2M 查找根目录下少于2M的文件
find / -mtime 1 查找根目录下1小时以前修改的所有文件
find / -mtime +2 查找根目录下2个多小时以前修改的所有文件
find / -mtime -3 查找根目录下最近3小时内修改的所有文件
find / -atime 1 查找根目录下1天以前访问或读过的所有文件
find / -atime -1 查找根目录下最近1天内读过或访问的文件
find / -ctime -3 查找根目录下最近3天内状态发生改变的文件
find / -cmin -3 查找根目录下最近3分钟内状态发生改变的文件
find / -empty 查找根目录下所有空白文件或者空目录
find / -false 查找根目录下总是错误的文件
find / -false -exec ls -l {} \; 查找根目录下总是错误的文件并且用ls -l查看
===============================================================================
字符处理工具
wc 统计命令
wc -c /etc/passwd 统计/etc/passwd文件里有多少个字符
wc -w /etc/passwd 统计/etc/passwd文件里有多少个单词
wc -l /etc/passwd 统计/etc/passwd文件里有多少行
sort 排序命令
sort -n /etc/passwd 按数据排序
sort -u /etc/passwd 去除重复行显示
sort -r /etc/passwd 反向排序
sort -n -k5 /etc/passwd 指定第五列进行按数字排序
sort -t: -n -k5 /etc/passwd 以:为分隔符指定第五列按数字排序
cut 字段载取
cut -f1 /etc/passwd 只显示第一列数据
cut -f1,2,5 /etc/passwd 只显示第一列,第二列,第五列的数据
cut -d: -f1,2,5 /etc/passwd 以:为分隔符只显示第一列,第二列,第五列的数据
uniq 去除文件中相邻的重复行
uniq -u /etc/passwd 只显示没有被重复过的行
uniq -d /etc/passwd 只显示被重复过的行
uniq -i /etc/passwd 忽略大小写去除文件中相邻的重复行
uniq -c /etc/passwd 统计相邻重复行数
diff 比较文件差异
diff -B /etc/passwd passwd 忽略空行造成的不同
grep 搜索文本
grep -i hello /etc/passwd 在/etc/passwd文件里找hello并且忽略大写查找
grep -n hello /etc/passwd 在/etc/passwd文件里找hello并给结果排号,如果是对目录搜索可以显示在文件里出现的行号
grep -w hello /etc/passwd 在/etc/passwd文件里找完全匹配hello单词的行
grep -v hello /etc/passwd 显示出在/etc/passwd文件里没有hello的行
grep -r hello /etc/ 在etc目录里所有文件里找hello显示
tr 替换字符
cat /etc/passwd | tr a b 查看/etc/passwd文件并把里面的a替换成b
tr a-z A-Z /etc/passwd 把/etc/passwd文件里的小写全转成大写
网络基本配置(ifconfig ping mii-tool dhclient)
用户权限(useradd userdel passwd su sudo)
网络安全(iptables tcpdump netstat)
磁盘管理(df mount fdisk gdisk dd mkfs [LVM/磁盘配额])
软件管理(rpm/yum dpkg/apt autconf cmake tar)
启动管理(grub)
服务管理(service)
进程管理(ps top kill pstree)
文本处理(cat head tail find grep wc sort uniq sed awk tr cut)
时间任务(crontab)
脚本(bash shell)
-------------------------------------------------------------------------------
进程管理
进程: 将程序执行起来,相对操作系统系统对此运行程序起的名字
软件 -> 程序 -> 进程 -> 线程
进程管理即管理操作系统之上正在运行的程序
每个进程都有一个唯一的标识符: PID
ps -aux / ps -ef
列出当前操作系统正在运行的程序(即所有进程)
进程所属用户
PID
CPU/内存使用量
TTY 此进程使用的输入输出设备文件
? 代表此进程为守护进程,不使用I/O设备文件
进程对应的程序名及参数
进程状态
S 可中断睡眠
D 不可中断睡眠
R 运行
T 暂停
Z 僵尸
pstree -p 列出当前进程树
kill 给对应进程发信号
kill -15 PID
给对应PID发送终止信号(进程有可能会忽略此信号)
kill -9 PID
给对应PID发送杀死信号(此信号不能忽略)
kill -9 -PID
给某个进程组发信号
kill -9 -1
给所有进程发信号
top 文本版进程管理器
实时检测当前进程状态
q 退出
空格 立即刷新进程列表
c 按CPU使用量排序
m 按内存使用量排序
? 得到top帮助信息
k 选择进程发送信号
jobs 列出当前终端所有后台进程
进程组 包含一个或多个进程 组ID为组长的PID
会话 包含一个或多个进程组
控制终端 TTY,输入输出的设备, 每个会话只有一个控制终端
前台进程组 正在使用控制终端的进程组为前台进程组
后台进程组
fg 切换会话中的前台进程组
ctrl + z 将前台进程组放到后台
后台运行程序: 运行程序后台加&
例: gedit &
killall 按进程名发信号
例: killall -9 vim
-------------------------------------------------------------------------------
软链接(ntfs fat32不支持):
ln -s 目标路径 软链接路径
BASH SHELL:
命令历史 history
! 操作命令历史
!! 执行命令历史中最后一条命令
!567 执行命令历史第567行命令
!ls 执行命令历史从最后向前查找ls关键词的命令
!$ 获取命令历史中最后一条命令的参数
命令历史记录文件: ~/.bash_history
清除当前终端的命令历史: history -c
命令别名 alias
创建命令别名: alias 命令名称='执行的命令'
例: alias u='sudo mount 3.3.3.9:/kyo /mnt'
删除命令别名: unalias 别名名称
例: unalias u
命令别名只影响当前终端, 永久生效将命令别名创建到终端配置脚本 ~/.bashrc
tab补全
一次为补全
二次为列表
快捷键(emacs/vi)
bash终端使用vi操作方式:
set -o vi
bash终端使用emacs操作方式(默认):
set -o emacs
特殊字符
! 命令历史
~ 家目录
`` 执行命令,返回命令的结果
@ 不能单独使用 $@
# 注释
$ 访问变量
& 后台运行
* 匹配所有
$() 与``的功能一样
[] 内部命令,分隔命令使用
{} 匹配范围
\ 脱义其它特殊字符
'' 批量完全脱义
"" 批量不完全脱义 ($不会脱义)
/ 根目录
. 当前目录
.. 上一级目录
- 上次所在目录
; 命令结束符(一行执行多条命令)
| 管道
> >> < << 重定向
? 不能单独使用 $?
-------------------------------------------------------------------------------
查找命令
which 查找$PATH变量指定的目录里的命令
which ifconfig 查出ifconfig命令的路径
whereis 查找命令,显示命令更多的信息
whereis ifconfig 命令路径,帮助文档等
locate 文件查找命令
速度快,通过系统自带的一个数据库去查找
/var/lib/mlocate/mlocate.db
locate hello 查找带hello的文件,如果hello是刚刚新建的就找不到,因为数据库还没有没保存现在的信息
updatedb 手动更新查找数据库,然后再查找就会很快找到刚刚新建的hello文件
find 文件查找命令,功能最强大,速度慢,因为会扫描整个硬盘
find /etc -name grub.conf 查找/etc目录下的grub.conf文件
find / -name "*.conf" 查找/下所有.conf文件
find / -iname grub.conf 查找/目录下的grub.conf文件,忽略大小写
find / -maxdepth 2 -name grub.conf 可以使用-maxdepath参数来控制查找的层次,就是说只查当前目录和子目录,最多查2级目录
find / -mindepth 2 -name grub.conf 最少查二级目录
find /etc -type d 查找/etc/下所有的目录
find /etc -type f 查找/etc/下的所有普通文件
find /etc -type l -name *.conf 查找/etc/下软链接文件是.conf结尾的文件
find /etc -type s 查找/etc/下所有socket文件
find /etc -type c 查找/etc/下的所有字符设备文件
find /etc -type p 查找/etc/下所有管道文件
find /etc -user root 查找/etc/所属用户是root的文件
find /etc -group root 查找/etc/所属用户组是root的文件
find /etc -uid 500 查找/etc/下uid是500的文件,和-user类似
find /etc -gid 500 查找/etc/下gid是500的文件,和-group类似
find /etc -nouser 查找没有所属用户的文件
find /etc -nogroup 查找没有所属用户组的文件
find /etc -perm 777 -type d 查找/etc/下权限为777的目录
find . -perm 111 查找权限是111的文件
find . -size +10M 查找当前目录下大于10M的文件,单位可以有K,M,G,b等
find / -size -2M 查找根目录下少于2M的文件
find / -mtime 1 查找根目录下1小时以前修改的所有文件
find / -mtime +2 查找根目录下2个多小时以前修改的所有文件
find / -mtime -3 查找根目录下最近3小时内修改的所有文件
find / -atime 1 查找根目录下1天以前访问或读过的所有文件
find / -atime -1 查找根目录下最近1天内读过或访问的文件
find / -ctime -3 查找根目录下最近3天内状态发生改变的文件
find / -cmin -3 查找根目录下最近3分钟内状态发生改变的文件
find / -empty 查找根目录下所有空白文件或者空目录
find / -false 查找根目录下总是错误的文件
find / -false -exec ls -l {} \; 查找根目录下总是错误的文件并且用ls -l查看
===============================================================================
字符处理工具
wc 统计命令
wc -c /etc/passwd 统计/etc/passwd文件里有多少个字符
wc -w /etc/passwd 统计/etc/passwd文件里有多少个单词
wc -l /etc/passwd 统计/etc/passwd文件里有多少行
sort 排序命令
sort -n /etc/passwd 按数据排序
sort -u /etc/passwd 去除重复行显示
sort -r /etc/passwd 反向排序
sort -n -k5 /etc/passwd 指定第五列进行按数字排序
sort -t: -n -k5 /etc/passwd 以:为分隔符指定第五列按数字排序
cut 字段载取
cut -f1 /etc/passwd 只显示第一列数据
cut -f1,2,5 /etc/passwd 只显示第一列,第二列,第五列的数据
cut -d: -f1,2,5 /etc/passwd 以:为分隔符只显示第一列,第二列,第五列的数据
uniq 去除文件中相邻的重复行
uniq -u /etc/passwd 只显示没有被重复过的行
uniq -d /etc/passwd 只显示被重复过的行
uniq -i /etc/passwd 忽略大小写去除文件中相邻的重复行
uniq -c /etc/passwd 统计相邻重复行数
diff 比较文件差异
diff -B /etc/passwd passwd 忽略空行造成的不同
grep 搜索文本
grep -i hello /etc/passwd 在/etc/passwd文件里找hello并且忽略大写查找
grep -n hello /etc/passwd 在/etc/passwd文件里找hello并给结果排号,如果是对目录搜索可以显示在文件里出现的行号
grep -w hello /etc/passwd 在/etc/passwd文件里找完全匹配hello单词的行
grep -v hello /etc/passwd 显示出在/etc/passwd文件里没有hello的行
grep -r hello /etc/ 在etc目录里所有文件里找hello显示
tr 替换字符
cat /etc/passwd | tr a b 查看/etc/passwd文件并把里面的a替换成b
tr a-z A-Z /etc/passwd 把/etc/passwd文件里的小写全转成大写