[Linux Shell学习系列三]常用Shell(Bash)命令

D6

3.1 查看文件和目录

1. ls命令

$ ls #列出当前目录下所有文件和目录,但不显示详细信息
a  b  c.txt  d.txt  e.txt


$ ls -1 #每行显示一条记录
a
b
c.txt
d.txt
e.txt


$ ls -l #以长列表格式显示文件和目录,包括文件类型、大小、修改日期和时间、权限等信息
total 8
drwxrwxr-x. 3 user1 user1 4096 May 11 15:01 a
drwxrwxr-x. 3 user1 user1 4096 May 11 15:01 b
-rw-rw-r--. 1 user1 user1    0 May 11 15:50 c.txt
-rw-rw-r--. 1 user1 user1    0 May 11 15:52 d.txt
-rw-rw-r--. 1 user1 user1    0 May 11 15:50 e.txt
#第一个字符:文件类型,--普通文件,d-目录,s-套接字文件,l-链接文件
#字段1:文件权限,9个字符,前三个-所有者,中间三个-用户组,后面三个-其他用户的读、写、执行权限
#字段2:链接数
#字段3:所有者,此处为user1
#字段4:用户组,user1
#字段5:文件大小,默认字节
#字段6:文件最近一次修改时间
#字段7:文件名


$ls -lh #将文件大小显示为适合阅读的格式
total 8.0K
drwxrwxr-x. 3 user1 user1 4.0K May 11 15:01 a
drwxrwxr-x. 3 user1 user1 4.0K May 11 15:01 b
-rw-rw-r--. 1 user1 user1    0 May 11 15:50 c.txt
-rw-rw-r--. 1 user1 user1    0 May 11 15:52 d.txt
-rw-rw-r--. 1 user1 user1    0 May 11 15:50 e.txt


$ ls -F #使用不同的特殊字符归类不同的文件类型
a/  b/  c.txt  d.txt  e.txt
#/——表示目录
#无特殊字符——表示普通文件
#@——表示链接文件
#*——表示可执行文件


$ ls -ld a #以长列表格式列出某个目录的信息
drwxrwxr-x. 3 user1 user1 4096 May 11 15:01 a

$ ls -R #递归地列出子目录的内容
.:
a  b  c.txt  d.txt  e.txt

./a:
test

./a/test:
a.txt  file1.txt  file2.txt

./b:
test

./b/test:
b.txt  file10.txt  file3.txt  file4.txt


$ ls -ltr #以长列表格式按文件或目录的修改时间倒序地列出文件和目录
total 8
drwxrwxr-x. 3 user1 user1 4096 May 11 15:01 b
drwxrwxr-x. 3 user1 user1 4096 May 11 15:01 a
-rw-rw-r--. 1 user1 user1    0 May 11 15:50 c.txt
-rw-rw-r--. 1 user1 user1    0 May 11 15:50 e.txt
-rw-rw-r--. 1 user1 user1    0 May 11 15:52 d.txt


$ ls -ls #以长列表格式按文件大小顺序列出目录和文件
total 8
4 drwxrwxr-x. 3 user1 user1 4096 May 11 15:01 a
4 drwxrwxr-x. 3 user1 user1 4096 May 11 15:01 b
0 -rw-rw-r--. 1 user1 user1    0 May 11 15:50 c.txt
0 -rw-rw-r--. 1 user1 user1    0 May 11 15:52 d.txt
0 -rw-rw-r--. 1 user1 user1    0 May 11 15:50 e.txt


$ ls -a #列出包括隐藏文件或目录在内的所有文件和目录,包括.(当前目录)和..(父目录)
.  ..  a  b  c.txt  d.txt  e.txt


$ ls -A #列出包括隐藏文件或目录在内的所有文件和目录,不包括.(当前目录)和..(父目录)
a  b  c.txt  d.txt  e.txt

$ ls -i #显示文件或目录的inode编号,可能在系统维护操作时需要(如find命令中用inode编号移除文件名中有特殊字符的文件)
265182 a  917505 b  265183 c.txt  265184 d.txt  265185 e.txt

$ ls -n #类似于-l,但用uid和gid代替显示所有者和用户组
total 8
drwxrwxr-x. 3 1001 1001 4096 May 11 15:01 a
drwxrwxr-x. 3 1001 1001 4096 May 11 15:01 b
-rw-rw-r--. 1 1001 1001    0 May 11 15:50 c.txt
-rw-rw-r--. 1 1001 1001    0 May 11 15:52 d.txt
-rw-rw-r--. 1 1001 1001    0 May 11 15:50 e.txt

 

2. cat命令

可以查看文件的内容、连接文件、创建一个或多个文件和重定向输出到终端或文件。

格式:cat [OPTION] [FILE]...

$ cat c.txt #查看文件内存
a b c d
1 2 3 4
2 4 6 8
4 8 12 16

$ cat d.txt  #查看文件内容
This is d.txt.

$ cat c.txt d.txt  #查看多个文件的内容
a b c d
1 2 3 4
2 4 6 8
4 8 12 16
This is d.txt.

$ cat -n c.txt #显示文件内容的行号
     1  a b c d
     2  1 2 3 4
     3  2 4 6 8
     4  4 8 12 16

$ cat -b c.txt #显示文件内容的行号,与-n不同,只标识非空白行的行号
     1  a b c d
     2  1 2 3 4
     3  2 4 6 8
     4  4 8 12 16

$ cat -e c.txt #在每一行的结尾显示$字符
a b c d$
1 2 3 4$
2 4 6 8$
4 8 12 16$

$ cat > f.txt #接收标准输入的内容并在标准输出中显示,此处重定向标准输出到新的文件
abcdef #此处输入abcdef并按Ctrl+D组合键退出,内容会写到文件中
$ cat f.txt #查看生成的文件内容
abcdef

$ cat d.txt >> f.txt #利用重定向,将文件内容追加到文件中,用>则覆盖
$ cat f.txt 
abcdef
This is d.txt.

tac命令是将cat命令倒过来,用法:

$ tac c.txt #tac命令以行倒序的形式显示文件内容
4 8 12 16
2 4 6 8
1 2 3 4
a b c d

 

D7

 

[Linux Shell学习系列三]常用Shell(Bash)命令

上一篇:工具安装-maven for mac


下一篇:Linux添加永久静态路由信息