首页 > 系统相关 >Linux 目录结构及文件管理命令

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

时间:2023-02-02 18:33:05浏览次数:59  
标签:文件 显示 -- usr Linux txt 目录

目录

菜鸟教程-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 ../    # 切换到上一级目录

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

相关文章

  • 适用于 Linux 的 Windows 子系统使用 Visual Studio Code
    在WSL中使用VSCode,先在Windows中安装vscode,再通过功能扩展安装Vscodeforwsl。VSCode有system和user两个版本,默认下载链接为user版本。以下内容为system版本。......
  • 《C语言实现http下载文件》
    源码:/************************************************************Copyright(C),2016,Leon,AllRightsReserved.FileName:download.ccoding:UTF-8Descript......
  • python mysql直接导出excel文件
    importpymysqlimportxlwt#数据库连接对象conn=pymysql.connect(host='124.71.72.144',port=3306,user='root',password="gClUjjCh2tozZY23o",db="pay",chars......
  • Linux 资源锁
    一、自旋锁1、概述自旋锁(SpinLock)类似于互斥量,不过自旋锁不是通过休眠阻塞线程(进程),而是在取得锁之前一直处于循环等待的阻塞状态,因此得名“自旋”。自旋锁常作为底层原......
  • Linux基础课:第四章--ssh
    第四章的学习ssh配置ssh免密登录首先在.ssh/.config创建文件,初始化server信息。然后利用公钥或者命令ssh-copy-id登录scp两个终端之间传递文件scp[-r]sourcedest......
  • Linux 路由表详解
    一、查看路由表[root@VM_139_74_centos~]#routeKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIfacedefault......
  • 接口测试|HttpRunner环境变量与跨文件输出传递变量
    HttpRunner环境变量与跨文件输出传递变量配置环境变量为了减少网址和端口改动导致我们的文件需要进行很多内容修改时,我们可以将网址和端口等信息保存作为环境变量,发生变动时......
  • 删除文件夹一直提示要xxx的权限,但是当前账户就是xxx
    ok,我复现不了现场了第一步:当文件夹访问被拒绝,需要权限来执行此操作怎么办?_怀院网络中心的博客-CSDN博客_您需要权限来执行此操作第二步:看到评论,试了一下,根据报错提示找到......
  • geotools读取shp文件中文乱码???
    在读取shp文件之前,先要手动调用一下ShapefileDataStore的setStringCharset方法即可dataStore.setStringCharset(Charset.forName("UTF-8"));参考:https://www.osgeo.cn/p......
  • linux网络知识:路由策略(ip rule,ip route)
    一,路由策略(使用iprule命令操作路由策略数据库)基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小,应用或IP源地......