Linux目录结构及文件管理命令

简介: Linux目录结构及文件管理命令

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/date
  • sbin 管理员使用的命令 /sbin/service
  • dev 设备文件 /dev/sda,/dev/sda1
  • root root用户的家目录
  • home 普通用户家目录
  • tmp 临时文件(全局可写:进程产生的临时文件)
  • var 存放的是一些变化文件,比如数据库,日志,邮件…
  • etc 配置文件(系统相关如网络/etc/sysconfig/network)
  • proc 虚拟的文件系统,反映出来的是内核,进程信息或实时状态 ,硬件的状态
  • usr 系统文件,相当于C:\Windows
  • /usr/local 软件安装的目录,相当于C:\Program
  • boot 存放的系统启动相关的文件,例如kernel,grub(引导装载程序)
  • lib 库文件Glibc
  • lib64 库文件Glibc
  • lost+found fsck修复时,存储没有链接的文件或目录
  • 设备(主要指存储设备)挂载目录
  • media 移动设备默认的挂载点
  • mnt 手工挂载设备的挂载点

文件类型

  • - 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
  • d 目录文件(蓝色)
  • b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1
  • c 设备文件(字符设备)打印机,终端 /dev/tty1
  • l 链接文件(淡蓝色)
  • 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 ../    # 切换到上一级目录

le.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 ../    # 切换到上一级目录


目录
相关文章
|
1天前
|
存储 Linux Shell
linux课程第二课------命令的简单的介绍2
linux课程第二课------命令的简单的介绍2
|
1天前
|
JSON 网络协议 Linux
Linux ip命令:网络的瑞士军刀
【4月更文挑战第25天】
7 1
|
1天前
|
安全 Linux C语言
linux课程第一课------命令的简单的介绍
linux课程第一课------命令的简单的介绍
|
1天前
|
NoSQL Linux Shell
2.Docker常用命令(linux)
2.Docker常用命令(linux)
|
1天前
|
Linux
|
1天前
|
Linux Shell 开发工具
【Linux】:文本编辑与输出命令 轻松上手nano、echo和cat
【Linux】:文本编辑与输出命令 轻松上手nano、echo和cat
9 0
|
2天前
|
Linux 数据安全/隐私保护
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)(下)
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)
14 2
|
2天前
|
Linux Shell Python
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)(上)
Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)
13 2
|
2天前
|
缓存 网络协议 Linux
Linux 网络命令大全,详细归纳!
【4月更文挑战第24天】
21 3
Linux 网络命令大全,详细归纳!
|
2天前
|
运维 监控 Linux
【专栏】别再只会使用简单的 ping 命令了,Linux 中这些高级 ping 命令可以提高工作效率!
【4月更文挑战第28天】Linux中的ping命令不仅用于基础网络连通性检查,还有许多高级功能。了解如`-c`(设置数据包数量)、`-i`(设置间隔时间)和`-w`(设置超时时间)等选项能提升效率。进阶技巧包括自定义数据包大小(`-s`)、详细统计信息(`-v`)、持续ping(`-t`)、指定源地址(`-S`)和多目标ping。这些在网络性能测试、故障排查和监控中极其有用。注意权限、参数选择,并结合其他工具以准确解读结果。提升网络管理技能,善用ping命令的全部潜力。