linux文件子系统----文件相关命令
创建文件
在linux下创建文件一般有多种、最常用的是以下三种方式:
$ echo "Hello world!" > text #创建文件text,通过重定向将数据写入到text中
$ touch text1 text2 text3 #创建三个文件,若文件存在,则不做任何事
$ vim hello.c #编辑hello.c, 按:wq退出
查找文件
-
可以使用which命令来查找可执行程序的路径
$ which bash $ which ls tree $ which -a vim #查看vim的所有路径 运行结果: yfg@yfg-Machine:~$ which bash /bin/bash yfg@yfg-Machine:~$ which ls tree /bin/ls /usr/bin/tree yfg@yfg-Machine:~$ which -a vim /usr/bin/vim
注意:path命令是根据PATH环境变量中的路径依次去查找,然后显示第一个匹配项,-a表示显示所有的匹配项
-
使用env命令查看环境变量
$ env 部分运行结果: PWD=/home/yfg HOME=/home/yfg SHELL=/bin/bash SHLVL=1 LANGUAGE=zh_CN:zh LOGNAME=yfg PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin ....
-
find命令可以在目录中递归地查找符合指定条件的目录或文件。
$ man find NAME find - search for files in a directory hierarchy -name pattern 查找文件名符合pattern的文件 -type c 按类型查找文件 b(block):块设备文件 c(character):字符设备文件 d(directory):目录 f(file):普通文件 s(socket):套接字文件 l(symbolic link):符号链接 -size 按照文件大小进行查找 用法: find . -size +5M #查找当前目录下所有>5m的所有文件 -empty #查找空文件或空目录 -user username -uid uid -group groupname -perm mode #根据权限权限查找文件 ==组合查找== -a(and) #交集 -o(or) #并集 !(not) #非
组合查找用法:
$ find /dev -type c -a -name "tty*" #在dev目录下查找以tty开头的所有字符设备文件 $ find /dev -type b -o -name "tty*" #在dev目录下查找块设备文件或者以tty开头的文件 $ find /dev -type c -a ! -name "tty* "#在dev目录下查找不以tty开头的字符设备文件
查看文件内容
1.使用cat命令查看文件
cat - concatenate files and print on standard output 格式: cat [option] [file]... 选项 -n, -number 对每一行进行编号
cat惯用法:
$ cat /etc/passwd #标准输出流关联到屏幕上,故在屏幕上显示/etc/passed的内容 $ cat -n /etc/passwd $ cat text1 text2
2.使用head
-n num #显示前num行,若在num前边添加'-',则显示除了最后num行的所有行 $ head text #查看text前10行,默认值为10 $ head -n 5 text #查看前5行的内容 $ head -n +5 text #显示除了最后5行的所有行
3.使用tail
$ tail [option] filename option: -n num #显示filename文件后num行的内容 -n [-num] #显示filename文件前num行的所有行 -F #显示追加的数据,一般用于查看日志文件
-F在工作中经常使用,用于实时查看日志文件
-
使用more单页浏览
$ shell [option] file
5.使用less但也浏览[less是more的高级版本,若系统中没有less命令,则用more命令]
$ shell [option] file
重定向
标准流 | 文件描述符 | 重定向符号 |
---|---|---|
stdin | 0 | < |
stdout | 1 | > 和 >> |
stderr | 2 | 2>和2>> |
“>:” 若有文件,则覆盖
“>>” 若有文件,则追加
“2>” 将标准错误流冲定向到文件中
“>&” 将标准输出流、标准错误流重定向到文件中
搜索文件内容
grep命令用于可以用于搜索文件内容,grep命令按正则表达式去搜索文件、如果文件中某一行匹配正则表达式,grep命令则会显示这一行。
$ grep
format:
grep [选项] pattern [file]...
options:
-E 使用正则表达式
-i 忽略大小写
-v 显示不匹配正则表达式的行
-n 显示行号
-c, --count 不显示匹配的行,显示匹配行的个数
$ grep -nE "firmament" The_Holy_Bible.txt
#显示圣经文件中包含“firmament”的所有行,并显示行号
$ grep -cvE "firmament" The_Holy_Bible.txt
#统计圣经文件中不包含“firmament”的行的数量