一、基础命令
1.ls命令
ls命令显示指定目录的内容,默认参数为当前目录。ls -l显示详细的列表,ls -F显示文件类型信息。
下面是文件详细列表的一个示例,其中第三列是文件的所有者,第四列是用户组,第五列是文件大小,后面是文件更改的时间、日期以及文件名。
2.cp命令
cp命令用来复制文件。下面的命令将文件file1复制到文件file2:
cp file1.txt file2.txt
下面的命令将多个文件(file1 ... fileN)复制到目录dir:
cp file1.txt file2.txt ../ztestDir2
3.mv命令
mv命令有点类似cp,用来重命名文件。下面的命令将文件名从file1重命名为file3:
mv file1.txt file3.txt
你也可以使用mv将多个文件移动到某个目录:
mv file3.txt file4.txt ../ztestDir
4.touch命令
touch命令用来创建文件。如果文件已经存在,则该命令会更新文件的时间戳,就是我们在ls -l命令的执行结果中看到的文件更新时间和日期。下面的命令创建一个新的文件,内容为空:
touch file6.txt
4.rm命令
rm命令用来删除文件,文件一旦被删除通常无法恢复:
rm file6.txt
5.echo命令
echo命令将它的参数显示到标准输出,例如:
echo helloworld
二、浏览目录命令
1.cd命令
cd命令用来设置当前工作目录。当前工作目录是指你的进程和shell当前所在的目录。
如果不带dir参数,cd命令会返回你的个人主目录,指的是你登录系统后进入的目录。
2.mkdir命令
mkdir命令用来创建新目录,例如,下面的命令创建一个名为dir的新目录:
3.rmdir命令
rmdir命令用来删除目录,如果要删除的目录里面有内容(文件和其他目录),上面的命令会执行失败。因为rmdir只能删除空目录,你可以使用rm -rf来删除一个目录以及其中的所有内容。
使用这个命令的时候要非常小心,尤其是当你是超级用户(root或superuser)的时候。因为-r选项会依次删除dir中的所有文件和子目录,-f选项代表强制删除。所以使用-rf时尽量不要在参数里使用通配符(如*),并且执行命令前最好检查参数是否正确。
4.shell通配符
shell可以使用通配符来匹配文件名和目录名。其他的操作系统也有通配符这个概念。比如*代表任意字符和数字。下面的命令列出当前目录中的所有文件:
shell根据参数中的通配符来匹配文件名。shell将命令中的参数替换为实际的文件名,这个过程我们称为展开。比如:
❑ at*展开为所有以at开头的文件名;
❑ *at展开为所有以at结尾的文件名;
❑ *at*展开为所有包含at的文件名。
如果通配符没有匹配的文件名,shell就不进行任何的展开,参数按照原样来执行,比如:echo*dfkdsafh。
另外一个shell通配符问号(?)帮助shell确切匹配任意一个字符,如b? at与boat和brat相匹配。
三、中间命令
1.grep命令
grep命令显示文件和输入流中和参数匹配的行。如下面的命令显示文件/etc/passwd中包含文本root的所有行:
在对多个文件进行批量操作的时候,grep命令非常好用,因为它显示文件名和匹配的内容。如果你想查看目录/etc中所有包含root的文件,可以执行以下命令:
grep命令有两个比较重要的选项,一个是-i(不区分大小写),一个是-v(反转匹配,就是显示所有不匹配的行)。
grep -i ROOT /etc/passwd
grep -v root /etc/passwd
grep还有一个功能强大的变种叫作egrep(实际上就是grep -E)。
grep命令能够识别正则表达式。
很多场景,都是在别的进程查询结果后,再进行筛选,如:
在进程中,查询包含java这个字符串的进程名。
ps -ef|grep java
2.less命令
当要查看的文件过大或者内容多得需要滚动屏幕的时候,可以使用less命令。
less命令可以将内容分屏显示,按空格键可查看下一屏,B键查看上一屏,Q键退出。
你可以在less命令的输出结果中进行搜索。例如:使用/word从当前位置向前搜索word这个词,使用?word从当前位置向后搜索。当找到一个匹配的时候,按N键可以跳到下一个匹配。
3.pwd命令
显示当前目录。
4.diff命令
diff命令用来查看两个文件之间的不同,例如:
5.file命令
如果你想知道一个文件的格式信息,可以执行file命令:
6.find和locate命令
根据文件名在指定路径下查找文件。
find 目标路径 -name 文件名(支持匹配符)
locate 文件名
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
updatedb
7.head和tail命令
head命令显示文件的前10行内容(例如head /etc/passwd)。tail命令显示文件的最后10行内容(如tail /etc/passwd)。
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
tail [参数] [文件]
- -f 循环读取
- -q 不显示处理信息
- -v 显示详细的处理信息
- -c<数目> 显示的字节数
- -n<行数> 显示文件的尾部 n 行内容
- --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
- -q, --quiet, --silent 从不输出给出文件名的首部
- -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
8.sort命令
sort命令将文件内的所有行按照字母顺序快速排序。你可以使用-n选项按照数字顺序排序那些以数字开头的行。使用-r选项反向排序。
四、其他命令归总
1.tar命令
压缩3个文件到abc.tar。
tar -cvf 压缩包名称 被压缩的文件们
解压缩abc.tar到指定目录。
tar -xf 被解压的压缩包 -C 解压后文件存放地
2.chmod命令
使用chmod命令更改文件权限。
chmod 711 文件名