记不得命令名字时可以用关键字,语法是man -k
手册页有对应的内容区域,每个区域都分配一个数字,默认是1,如man 7 hostname
区域号 | 所涵盖内容 |
---|---|
1 | 可执行程序或shell命令 |
2 | 系统调用 |
3 | 库调用 |
4 | 特殊文件 |
5 | 文件格式与约定 |
6 | 游戏 |
7 | 概览、约定及杂项 |
8 | 超级用户和系统管理员命令 |
9 | 内核例程 |
– | – |
cd :遍历目录;pwd:显示当前目录;ls:显示当前目录下的文件和目录;
tree:以树状结构展示目录、子目录及其中的文件。
cd destination
christine@server01:~$ cd /usr/bin //绝对路径 ,波浪号表明shell会话位于你的主目录中
christine@server01:~/Documents$ cd ../Downloads //相对路径方式遍历
单点符(.),表示当前目录
双点符(. .),表示当前目录的父目录
ls -F //-F参数的ls命令轻松区分文件和目录,在目录名后加了正斜线(/),可执行
文件的后面加个星号
ls -a //把隐藏文件和普通文件及目录一起显示出来,隐藏文件通常是文件名
以点号开始的文件
ls -F -R //-R参数叫作递归选项。它列出了当前目录下包含的子目录中的文件。
ls -l //-l参数会产生长列表格式的输出
ls -l my_scr?pt //
问号(?)代表任一个字符; 星号(*)代表零个或多个字符。
ls -l f[a-i]ll //中括号用于指定字符范围
ls -l f[!a]ll //感叹号!将不需要的内容排除在外
制表键自动补齐:制表键自动补全允许你在输入文件名或目录名时按一下制表键,让shell帮忙将内容补充完整
touch ,cp,ln,mv,rm,mkdir,rmdir,file,cat,more,less,tail,head
touch 创建一个空文件
cp 复制文件 :cp source destination,可以是文件也可以是目录
touch test_one
cp -i test_one test_two //-i选项,强制shell询问是否需要覆盖已有文件
cp -R Scripts/ Mod_Scripts//递归地复制整个目录的内容
链接文件 符号链ln -s,硬链接ln
符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此的内容并不相同
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件。引用硬链接文件等同于引用了源文件。
ln -s data_file sl_data_file
ls -li *code_file //i表示显示inode编号
mv:命令可以将文件和目录移动到另一个位置或重新命名。移动文件不改变inode编号和时间戳,因为mv只影响文件名。
rm:删除文件
rm -i f?ll //i命令参数提示你是不是要真的删除该文件,?是通配符
-f参数:使得删除很多文件且不受提示符的打扰
mkdir:创建目录
mkdir -p New_Dir/Sub_Dir/Under_Dir //同时创建多个目录和子目录用-p参数
rmdir:删除目录,默认情况下
rmdir命令只删除空目录,可用rm -rf来删除目录及目录里面所有内容
file: 查看文件类型
cat:显示文本文件中所有数据,适合小型文件
cat -n test1 //-n参数会给所有的行加上行号,-b给有文本的行加上行号
more:分页显示文本,可以通过按空格键或回车键以逐行向前的方式浏览文本文件,按q键退出
less:比more更高级
tail:显示文件最后几行的内容,默认后10行
head:显示文件开头那些行的内容
tail -n 2 log_file //只显示文件的最后两行
-f参数 允许你在其他进程使用该文件时查看文件的内容。tail命令会保持活动状态,并不断显示添加到文件中的内容。这是实时监测系统日志的绝妙方式。
ps,top,kill,mount,umount,df,du
ps:显示某个特定时间点的信息,默认情况下, ps命令只会显示运行在当前控制台下的属于当前用户的进程。
ps的输出参数:
ps --forest //ps -forest命令展示了这些子shell间的嵌套结构
UID:启动这些进程的用户
PID:进程的进程ID。
PPID:父进程的进程号(如果该进程是由另一个进程启动的)
C:进程生命周期中的CPU利用率
STIME:进程启动时的系统时间
TTY:进程启动时的终端设备
TIME:运行进程需要的累计CPU时间
CMD:启动的程序名称
F:内核分配给进程的系统标记
S:进程的状态(O代表正在运行; S代表在休眠; R代表可运行,正等待运行; Z代表僵化,进程已结束但父进程已不存在; T代表停止)。
PRI:进程的优先级(越大的数字代表越低的优先级)
NI:谦让度值用来参与决定优先级。
ADDR:进程的内存地址
SZ:假如进程被换出,所需交换空间的大致大小
WCHAN:进程休眠的内核函数的地址
top:实时监测进程
kill:结束进程,必须是进程的属主或登录为root用户,默认情况下, kill命令会向命令行中列出的全部PID发送一个TERM信号。
kill 3940 //用进程的PID结束进程,TERM信号告诉进程可能的话就停止运行,进程也可能会忽略
如果要强制终止, -s参数支持指定其他信号(用信号名或信号值)
kill -s HUP 3940
killall
killall http* //killall命令非常强大,它支持通过进程名而不是PID来结束进程,也支持通配符
mount:挂载媒体,默认情况下, mount命令会输出当前系统上挂载的
设备列表。
umount:卸载,umount命令支持通过设备文件或者是挂载点来指定要卸载的设备
mount -t vfat /dev/sdb1 /media/disk
umount /home/rich/mnt
df:查看所有已挂载磁盘的使用情况,输出中的磁盘空间按照用户易读的形式显示用-h参数
du:显示某个特定目录(默认情况下是当前目录)的磁盘使用情况。
du的几个参数
-c:显示所有已列出文件总的大小
-h:按用户易读的格式输出大小,即用K替代千字节,用M替代兆字节,用G替代吉字节
-s:显示每个输出参数的总计
sort,grep,tar
sort:排序数据,默认情况下, sort命令会把数字当做字符来执行标准的字符排序
sort -n file2 //-n参数作用把数字识别成数字而不是字符
-M:按月排序
-r:反序排序
可以用-t参数来指定字段分隔符,然后用-k参数来指定排序的字段
sort -t ':' -k 3 -n /etc/passwd //
grep:搜索数据,输出是包含了匹配模式的行
grep three file1 //在file1文件中搜索含有three的行
参数 : -v:输出不匹配该模式的行
-n:显示匹配模式的行所在的行号
-c:输出匹配的行数
-e:指定多个匹配模式 grep -e t -e f file
tar:归档数据
tar -cvf test.tar test/ test2/
参数:
z 打包同时压缩 c 产生.tar打包文件 v 显示详细信息
f 指定打包后的文件名 x 解包.tar文件
正常使用-zcvf压缩文件或目录
正常使用-zxvf解压文件或目录
exit,sleep,jobs,coproc,type,history,alias
进程列表:( )
在一行依次运行多个命令
(pwd ; ls ; cd /etc ; pwd ; cd ; pwd ; ls) //进程列表是在子shell中运行的
echo $BASH_SUBSHELL //如果该命令返回0,则没有子shell;返回大于等于1,则存在子shell。
后台 :&
sleep 3000& // &把sleep命令置入后台模式
(sleep 2 ; echo $BASH_SUBSHELL ; sleep 2)& //将进程列表置入后台运行
jobs:显示后台作业信息
jobs -l //l参数可用显示PID
协程:coproc,在后台生成一个子shell,并在这个子shell中执行命令
coproc sleep 10 //用jobs命令发现进程名字是COPROC(默认的)
coproc My_Job { sleep 10; } //My_Job是进程名字
外部命令:存在于bash shell之外的程序,执行时,会创建出一个子进程
内建命令和外部命令的区别在于前者不需要使用子进程来执行
可用type查看
type cd //内建命令cd
type -a ps //外部命令,返回命令所在文件
历史命令:history
!! //当输入!!时, bash首先会显示出从shell的历史记录中唤回的命令。然后执行该命令
bash命令的历史记录是先存放在内存中,当shell退出时才被写入到历史文件中
history -a //在退出shell会话之前强制将命令历史记录写入.bash_history文件
!10 //取出命令列表中第10个命令
命令别名:alias
alias -p //查看当前可用的别名
alias li='ls -li'