cd
- cd -可以在最近工作的两个目录间切换
pwd
- 输出当前工作目录
ls [选项] [目录名]
列出目标目录中所有的子目录和文件。
常用参数:
a:列出目录下的所有文件,包括以 . 开头的隐含文件
A:同 -a,但不列出 “.”(表示当前目录)和 ”..”(表示当前目录的父目录)
h:以容易理解的格式列出文件大小(如 1K,234M,2G)
l:除文件名外,还将文件的权限、所有者、文件大小等信息详细列出
r, –reverse 依相反次序排列
t:以文件最后修改时间降序列出
例子:
列出当前目录中所有以“t”开头的目录的详细内容
$ ls -l t*
列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归
$ find $PWD -maxdepth 1 | xargs ls -ld
递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径
$ find $PWD | xargs ls -ld
在ls中列出文件的绝对路径
$ ls | sed "s:^:
pwd/:"
rm
删除文件前先确认
$ rm -i filename.txt
在文件名中使用shell的元字符会非常有用。删除文件前先打印文件名并进行确认
$ rm -i file*
递归删除文件夹下所有文件,并删除该文件夹
$ rm -r file
cat
可以一次查看多个文件的内容,下面的命令会先打印file1的内容,然后打印file2的内容
$ cat file1 file2
-n命令可以在每行的前面加上行号
$ cat -n /etc/logrotate.conf
vim
打开文件并跳到第10行
$ vim +10 filename.txt
打开文件跳到第一个匹配的行
$ vim +/search-term filename.txt
以只读模式打开文件
$ vim -R /etc/passwd
tar
创建一个新的tar文件
$ tar cvf file_name.tar dirname/
解压tar文件
$ tar xvf file_name.tar
查看tar文件
$ tar tvf file_name.tar
uzip
解压*.zip文件
$ unzip test.zip
diff
- 比较的时候忽略空白符
$ diff -w file1.txt file2.txt
grep
在文件中查找字符串(不区分大小写)
$ grep -i "the" demo_file
输出成功匹配的行,以及该行之后的三行
$ grep -A 3 -i "example" demo_text
在一个文件夹中递归查询包含指定字符串的文件
$ grep -r "ramesh" *
find
查找指定文件名的文件(不区分大小写)
$ find -iname "MyProgram.c"
对找到的文件执行某个命令
$ find -iname "MyProgram.c" -exec md5sum {} \;
查找home目录下的所有空文件
$ find ~ -empty
ps
ps命令用于显示正在运行中的进程的信息
查看当前正在运行的所有进程
$ ps -ef | more
以树状结构显示当前正在运行的进程,H选项表示显示进程的层次结构
$ ps -efH | more
free
这个命令用于显示系统当前内存的使用情况,包括已用内存、可用内存和交换内存的情况
默认情况下free会以字节为单位输出内存的使用量,如果想以其他单位输出内存的使用量,需要加一个选项,-g为GB,-m为MB,-k为KB,-b为字节。如果想查看所有内存的汇总,使用-t选项会在输出中加一个汇总行。
$ free -t
df
显示文件系统的磁盘使用情况,默认情况下df -k 将以字节为单位输出磁盘的使用量,使用-h选项可以以更符合阅读习惯的方式显示磁盘使用量;使用-T选项显示文件系统类型。
$ df -h
awk
删除重复行
$ awk '!($0 in array) { array[$0]; print}' temp
打印/etc/passwd中所有包含同样的uid和gid的行
$ awk -F ':' '$3=$4' /etc/passwd
打印文件中的指定部分的字段
$ awk '{print $2,$5;}' employee.txt
kill
kill用于终止一个进程。一般会先用ps -ef查找某个进程得到它的进程号,然后再使用kill -9 进程号终止该进程。还可以使用killall、pkill、xkill来终止进程。
$ ps -ef | grep vim
ramesh 7243 7222 9 22:43 pts/2 00:00:00 vim
$ kill -9 7243