本文按命令的常用程度排序,未完待续。
一、基础命令
ls 列出文件
-R递归遍历 -1单列显式 -m逗号分隔 -a显示隐藏 -F文件类型 –color彩色 -l权限和所有者 -X扩展名排序 -t时间排序 -S大小排序 -h易读模式
cd 切换目录
-切换到以前目录
cp 复制文件
-R复制目录 -v显示细节 -i询问覆盖(有些系统已经做了alias cp=’cp -i’) -a复制作为存档(不复制符号链接,只保留关键的文件属性)
mv 移动、重命名文件
参数同cp
rm 删除文件
-v -i同cp -Rf删除文件和非空目录(-f不要因为文件夹非空等问题烦扰用户) –后面的内容不作为选项(用于特殊的文件名)
rmdir 删除空目录
mkdir 创建目录
-p同时创建所有父级目录 -v显示细节
su 变更用户
-l含环境变量 后面不写用户名就是变更为root -变更为root并含环境变量
pwd 显示当前路径
touch 更新文件时间,创建新文件
-t指定时间
二、学习命令
whereis 查找命令的可执行文件、源文件和man page的路径
-b只搜索二进制文件 -m只搜索man page -s只搜索源文件
which 找出将要运行的命令的版本
-a搜索全部版本,同whereis -b
man 查看命令的用法
-k搜索名称和简介 -f查看简介 -u重建数据库 -t打印
info 比man更容易理解、更友好
whatis 功能同man -f
-w支持正则表达式和通配符 -r正则表达式
apropos 功能同man -k
-w -r同whatis -e精确匹配单词
三、组合命令
; 连续运行多个命令
&& 只有前面的命令运行成功,才运行下一个命令
|| 只有前面的命令运行失败,才运行下一个命令
$() 只有前面的命令运行失败,才运行下一个命令
举个栗子:mkdir $(date “+%Y-%m-%d”)
| 将一个命令的输出用作另一个命令的输入
举个栗子:ls -1 | less
> 将命令的输出重定向到文件
举个栗子:ls -1F abc/* > abc.txt
“set -o noclobber”防止重定向时覆盖文件,运行后,如果要覆盖需要使用>|,或者“set +o noclobber”
>> 将命令的输出追加到文件
< 将文件作为命令的输入
举个栗子:echo < abc.txt
四、查看文件
cat 查看文件、拼接文件
-n带上行号 dog功能比cat更强大,tac是反向拼接文件
less 分屏查看文本文件
-N带上行号
进入less后,”/搜索模式”向前搜索使用正则表达式来表示的模式;”n”向前重复搜索;”N”向后重复搜索;”v”使用默认编辑器打开(export EDITOR=vim可以修改默认编辑器)
head 查看文件前10行内容
-n查看前几行内容 -c查看前几个字节的内容(head -c 100[k,m] abc.txt)
tail 查看文件最后10行内容
-f查看不断更新的最后几行
五、权限
chown 修改文件(目录)的拥有者
“chown owner:group”同时修改用户组和拥有者
chgrp 修改文件(目录)的用户组
-R递归修改 -v显示细节 -c显示改变
六、归档和压缩
zip 压缩文件
-[0-9]压缩率(0是不压缩) -P后面直接跟密码 -e回车后输入密码
unzip 解压文件
-l不解压,列出文件 -t测试
gzip 用gzip压缩
-[0-9]压缩率 -t测试 -r递归 使用gzip压缩原始文件会删掉,如果要保留,使用”gzip -c abc.txt > abc.txt.gz”,其中-c是将结果输出到shell;使用gzip压缩多个文件,会形成多个gz,而不是zip一样的一个文件
gunzip 解压gzip
bzip2&bunzip2 参数同gzip,扩展名是bz2
tar 归档,不压缩
-c创建tarball -f为tarball指定文件名(tar -cf abc.tar *.txt) -zxvf解压tar.gz -zvtf测试tar.gz
-zcvf进行压缩归档(“tar -zcvf abc.tar.gz abc/”同”tar -cf abc.tar abc/ | gzip -c > abc.tar.gz”,-z表示gzip,-j表示bzip2)
七、查找资料
locate 搜索文件名数据库
-i忽略大小写 -n前几个结果
updatedb 更新locate的数据库
grep 在文本文件中搜索匹配的模式
-R递归 -i忽略大小写 -w精确匹配单词 -n显示行号 -A,-B,-C显示上下文,后面跟整数 -v显示没有包含搜索结果的行 -l列出包含结果的文件名 “grep | grep”在结果中再搜索
find 实时搜索
-name根据文件名搜索 -user根据拥有者 -group根据组 -size根据大小(“find . -size +10M”搜索大于10M的文件) -type根据类型 -a连接2个选项,当表达式为true的时候显示结果 -o只要有一个为true显示结果 -n为not true显示结果 -fprint打印到文件
-exec对搜索结果执行命令,举个栗子:find . -name “*MP3” -exec rename ‘s/MP3/mp3/g’ {} \;