目录
Linux目录结构
/目录结构: FSH (Filesystem Hierarchy Standard)
# ls /
bin dev lib media net root srv usr
boot etc lib64 misc opt sbin sys var
cgroup home lost+found mnt proc selinux tmp
目录功能
bin
普通用户使用的命令 /bin/ls, /bin/datesbin
管理员使用的命令 /sbin/servicedev
设备文件 /dev/sda,/dev/sda1root
root用户的家目录home
普通用户家目录tmp
临时文件(全局可写:进程产生的临时文件)var
存放的是一些变化文件,比如数据库,日志,邮件....etc
配置文件(系统相关如网络/etc/sysconfig/network)proc
虚拟的文件系统,反映出来的是内核,进程信息或实时状态 ,硬件的状态usr
系统文件,相当于C:\Windows/usr/local
软件安装的目录,相当于C:\Programboot
存放的系统启动相关的文件,例如kernel,grub(引导装载程序)lib
库文件Glibclib64
库文件Glibclost+found
fsck修复时,存储没有链接的文件或目录- 设备(主要指存储设备)挂载目录
media
移动设备默认的挂载点mnt
手工挂载设备的挂载点
文件类型
-
普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)d
目录文件(蓝色)b
设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1c
设备文件(字符设备)打印机,终端 /dev/tty1l
链接文件(淡蓝色)s
套接字文件p
管道文件
文件管理命令
创建文件
语法:touch<空格><路径和文件名字>
touch file1.txt
touch /usr/local/file2.log
创建目录
语法:mkdir<空格><路径和目录名>
选项:
-p
当创建目录没有上一级时,自动创建
mkdir dir1
mkdir /usr/local/dir1
mkdir /usr/local/dir2 /usr/local/src/dir3
相对路径
相对路径是指 使用
./
或../
作为路径的开始
比如当前所在路径是
/usr/local
目录下,当我执行mkdir dir1
或者mkdir ./dir1
时,dir1
目录会被创建在/usr/local
目录下比如当前所在路径是
/usr/local
目录下,当我执行mkdir ../dir1
时,dir1
目录会被创建在/usr/
目录下
./
表示当前所在路径
../
表示上一级路径
绝对路径
绝对路径是指 使用“/”开始的路径
比如执行
mkdir /usr/local/dir1
时,就会在/usr/local
目录下创建dir1
目录
查看目录
语法:ls<空格>-l<空格><文件或目录的路径>
选项:
-a
显示所有文件及目录 (. 开头的隐藏文件也会列出)-l
除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出-r
将文件以相反次序显示(原定依英文字母次序)-t
将文件依建立时间之先后次序列出-A
同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)-F
在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"-R
若目录下有文件,则以下之文件亦皆依序列出
ls -l /usr/local
复制
语法:cp<空格><源文件路径><空格><目标文件夹>
选项:
-a
此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。-d
复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。-f
覆盖已经存在的目标文件而不给出提示。-i
与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。-p
除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。-r
若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。-l
不复制文件,只是生成链接文件。
cp -r /usr/local/src /usr/
cp file1.txt file2
移动
语法:mv<空格><源文件路径><空格><目标文件夹>
选项:
-b
当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。-i
如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。-f
如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。-n
不要覆盖任何已存在的文件或目录。-u
当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
mv /usr/local/file2.log /usr/file2
mv file1.txt file2.log # 不加绝对路径,相当于重命名
删除
语法:rm<空格>-rf<空格><文件或目录的路径>
选项:
-i
删除前逐一询问确认。-f
即使原档案属性设为唯读,亦直接删除,无需逐一确认。-r
将目录及以下之档案亦逐一删除。
rm -f file1.txt file2.log
rm -rf /usr/local/dir1
rm -rf /usr/local/dir2/* # 此操作不会删除目录下的隐藏文件
查看文件内容
快速生成一个有内容的文件
for i in $(seq 1 66);do echo "this is num ${i}" >> num.txt;done
cat 查看文件全部内容
语法:cat<空格><文件或文件路径>
选项:
-n 或 --number
由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank
和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank
当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting
使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends
在每行结束处显示 $。
-T 或 --show-tabs
将 TAB 字符显示为 ^I。
-A, --show-all
等价于 -vET。
-e
等价于"-vE"选项;
-t
等价于"-vT"选项;
cat num.txt
more 向下翻页查看文件内容
语法:more<空格><文件或文件路径>
选项:
-num
一次显示的行数-d
提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声-l
取消遇见特殊字元 ^L(送纸字元)时会暂停的功能-f
计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)-p
不以卷动的方式显示每一页,而是先清除萤幕后再显示内容-c
跟 -p 相似,不同的是先显示内容再清除其他旧资料-s
当遇到有连续两行以上的空白行,就代换为一行的空白行-u
不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)+/pattern
在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示+num
从第 num 行开始显示fileNames
欲显示内容的文档,可为复数个数
more num.txt
回车键
:向下翻一行
空格键
:向下翻一页
q键
:退出查看
less 上下翻页查看文件内容
语法:less<空格><文件或文件路径>
选项:
-b
<缓冲区大小> 设置缓冲区的大小-e
当文件显示结束后,自动离开-f
强迫打开特殊文件,例如外围设备代号、目录和二进制文件-g
只标志最后搜索的关键词-i
忽略搜索时的大小写-m
显示类似more命令的百分比-N
显示每行的行号-o
<文件名> 将less 输出的内容在指定文件中保存起来-Q
不使用警告音-s
显示连续空行为一行-S
行过长时间将超出部分舍弃-x
<数字> 将"tab"键显示为规定的数字空格/字符串
向下搜索"字符串"的功能?字符串
向上搜索"字符串"的功能n
重复前一个搜索(与 / 或 ? 有关)N
反向重复前一个搜索(与 / 或 ? 有关)b
向上翻一页d
向后翻半页h
显示帮助界面q
退出less 命令u
向前滚动半页y
向前滚动一行空格键
滚动一页回车键
滚动一行[pagedown]
向下翻动一页[pageup]
向上翻动一页方向键上
向上滚动一行方向键下
向下滚动一行
less num.txt
head 查看指定文件前几行
语法:head<空格><文件或文件路径>
选项:
-q
隐藏文件名-v
显示文件名-c<数目>
显示的字节数-n<行数>
显示的行数
head -20 num.txt # 查看前20行
tail 查看指定文件最后几行
语法:tail <空格><文件或文件路径>
选项:
-f
循环读取-q
不显示处理信息-v
显示详细的处理信息-c<数目>
显示的字节数-n<行数>
显示文件的尾部 n 行内容--pid=PID
与-f合用,表示在进程ID,PID死掉之后结束-q, --quiet, --silent
从不输出给出文件名的首部-s, --sleep-interval=S
与-f合用,表示在每次反复的间隔休眠S秒
tail -20 num.txt # 查看最后20行
grep 过滤文件内关键字
语法:grep<空格><关键字><文件或文件路径>
选项:
-a 或 --text
不要忽略二进制的数据。-A<显示行数> 或 --after-context=<显示行数>
除了显示符合范本样式的那一列之外,并显示该行之后的内容。-b 或 --byte-offset
在显示符合样式的那一行之前,标示出该行第一个字符的编号。-B<显示行数> 或 --before-context=<显示行数>
除了显示符合样式的那一行之外,并显示该行之前的内容。-c 或 --count
计算符合样式的列数。-C<显示行数> 或 --context=<显示行数>或-<显示行数>
除了显示符合样式的那一行之外,并显示该行之前后的内容。-d <动作> 或 --directories=<动作>
当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。-e<范本样式> 或 --regexp=<范本样式>
指定字符串做为查找文件内容的样式。-E 或 --extended-regexp
将样式为延伸的正则表达式来使用。-f<规则文件> 或 --file=<规则文件>
指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。-F 或 --fixed-regexp
将样式视为固定字符串的列表。-G 或 --basic-regexp
将样式视为普通的表示法来使用。-h 或 --no-filename
在显示符合样式的那一行之前,不标示该行所属的文件名称。-H 或 --with-filename
在显示符合样式的那一行之前,表示该行所属的文件名称。-i 或 --ignore-case
忽略字符大小写的差别。-l 或 --file-with-matches
列出文件内容符合指定的样式的文件名称。-L 或 --files-without-match
列出文件内容不符合指定的样式的文件名称。-n 或 --line-number
在显示符合样式的那一行之前,标示出该行的列数编号。-o 或 --only-matching
只显示匹配PATTERN 部分。-q 或 --quiet或--silent
不显示任何信息。-r 或 --recursive
此参数的效果和指定"-d recurse"参数相同。-s 或 --no-messages
不显示错误信息。-v 或 --invert-match
显示不包含匹配文本的所有行。-V 或 --version
显示版本信息。-w 或 --word-regexp
只显示全字符合的列。-x --line-regexp
只显示全列符合的列。-y
此参数的效果和指定"-i"参数相同。
grep 20 num.txt
grep 0 num.txt
修改文件内容
vi/vim 文件编辑器
语法:vim<空格><文件或文件路径>
文件存在,则会显示文件内容
文件不存在,保存后则会生成新的文件
可视化模式(需要在命令模式下进行)
大写V
可视化选取光标当前行,上下键选择上下行小写v
可视化选取光标当前字符,左右键选择左右字符,上下键选择两个光标之间的字符crtl+v
可视化列编辑,可配合命令模式按键进行内容修改
命令模式
执行vim命令,即为命令模式,此时可以使用vim命令修改文件内容
光标定位
数字0
行首$
行尾gg
页首大写G
页尾20大写G
第20行/字符内容
查看字符,n
向下查找匹配的字符,N
向上查找匹配的字符
内容修改
yy
复制光标当前行,2yy
复制光标当前行开始的两行dd
删除光标当前行
2d左右方向键
删除光标当前左或右2个字符2d上下方向键
删除光标当前上或下2行内容dG
小写d加大写G,删除光标当前行一下的所有内容p
黏贴yy
复制的内容u
撤销上一步
编辑模式
a
光标后一个字符开始编辑i
光标当前位置开始编辑o
光标下一行新起一行编辑A
光标当前行行尾开始编辑
末行模式
:<扩展命令>
- 编辑模式情况下,需要先按
esc
键退出编辑模式后才可以进入末行模式
扩展命令模式
:wq
保存并退出:w
保存不退出:w file.txt
另存为file.txt:q
退出文件:q!
强制退出,不保存当前修改:%s/1/2/g
文件全局替换,将1替换成2:set nu
显示行号:set nonu
取消行号显示:set list
显示控制字符:set nolist
取消显示控制字符
更多关于vim的知识,可以进行百度,或者查看菜鸟教程-Linux vi/vim
切换目录
语法:cd<空格><路径>
cd /etc/ # 切换到 /etc 目录下
cd ~ # 切换到当前用户的家目录
cd - # 回到切换前的目录
cd ../ # 切换到上一级目录
ile.txt
:q
退出文件:q!
强制退出,不保存当前修改:%s/1/2/g
文件全局替换,将1替换成2:set nu
显示行号:set nonu
取消行号显示:set list
显示控制字符:set nolist
取消显示控制字符
更多关于vim的知识,可以进行百度,或者查看菜鸟教程-Linux vi/vim
切换目录
语法:cd<空格><路径>
cd /etc/ # 切换到 /etc 目录下
cd ~ # 切换到当前用户的家目录
cd - # 回到切换前的目录
cd ../ # 切换到上一级目录
标签:文件,显示,--,usr,Linux,txt,目录
From: https://www.cnblogs.com/chen2ha/p/17087009.html