linux 文件与目录管理

linux文件与目录管理

文件与目录管理

文件与目录查看 ls

ls [-aAdfFhilnrRSt] 文件名或目录名称
ls [--color={
     never,auto,always}] 文件名或目录名称
ls [--full-time] 文件名或目录名称
  • 选项与参数

    • -a 全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
    • -A 全部的文件,连同隐藏文件,但不包括.与…这两个目录
    • -d 仅列出目录本身,而不是列出目录内的文件数据(常用)
    • -f 直接列出结果,而不进行排序(1s默认会以文件名排序)
    • -F 根据文件、目录等信息,给予附加数据结构,例如
    • *代表可执行文件 /代表目录 =代表 socket文件 |代表FIFO文件
    • -h 将文件容量以人类较易读的方式(例如GB、KB等)列出来
    • -i 列出inode号码,inode的意义下一章将会介绍
    • -l 详细信息显示,包含文件的属性与权限等数据(常用)
    • -n 列出UID与GTD而非使用者与用户组的名称(UID与GID会在账号管理提到)
    • -r 将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小
    • -R 连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
    • -S 以文件容量大小排序,而不是用文件名排序
    • -t 依时间排序,而不是用文件名
    • –color= never 不要依据文件特性给予颜色显示
    • –color= always 显示颜色;
    • –color=auto 让系统自行依据设置来判断是否给予颜色;
    • –full-time 以完整时间模式(包含年,月、日、时、分)输出
    • –time=( atime, ctime) 输出access时间或改变权限属性时间( ctime),而非内容修改时间(modification time )
  • ls -l 等价于 ll

复制、删除与移动

cp(复制文件与目录)

cp  [-adfilprsu] 源文件(source) 目标文件(destination)
cp  [options] source1 source2 source3... directory
   最后需要注意的是,如果源文件有两个以上,则最后一个目标文件一定要是“目录”才行
  • 选项与参数
    • -a 相当于-dr --preserve=all 的意思,至于dr请参考下列说明(常用)

    • -d 若源文件为链接文件的属性(link file),则复制文件链接属性而非文件本身

    • -f 为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次

    • -i 若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用)

    • -l 进行硬链接(hard link)的链接文件建立,而非复制文件本身

    • -p 连同文件的属性(权限、用户、时间) 一起复制过去,而非使用默认属性(备份常用)

    • -r 递归复制,用于目录的复制操作(常用)

    • -s 复制成为符号链接文件( symbolic link)亦即“快捷方式”文件

    • -u destination比source旧才更新destination,或 destination不存在的情况下才复制

    • –preserve=a11 除了-p的权限相关参数外,还加入SELinux的属性,links、 xattr等也复制

  • 默认的条件中,cp的源文件与目标文件的权限是不同的,目标文件的拥有者通常是命令操作者本身
  • 由于cp有种种的文件属性与权限的特性,在复制时必须清楚的了解到
  • 是否需要完整的保留源文件的信息
  • 源文件是否为符号链接文件(symbolic link file)
  • 源文件是否为特殊的文件,例如FIFO、socket等源文件是否为目录

rm(删除文件和目录)

rm [-fir] 文件或目录
  • 选项与参数

    • -f 就是force的意思,忽略不存在的文件,不会出现警告信息
    • -i 交互模式,删除前会询问使用者是否操作
    • -r 递归删除,最常用于目录的删除,这是非常危险的操作
  • touch ./-aaa-  创建一个名为-aaa-的文件
    rm ./-aaa- 删除-aaa-
    rm -aaa- 系统会误判
    

mv(移动文件与目录,或重命名)

mv [-fiu] source destination
mv [options] source1 source2 ..... directory 
  • 选项与参数
    • -f force强制的意思,如果目标文件已经存在,不会询问直接覆盖
    • -i 若目标文件已经存在,就会询问是否覆盖
    • -u 若目标文件已经存在,且source比较新,才会更新(update)

获取路径的文件名与目录名

basename /etc/sysconfig/network
输出结果 network
dirname /etc/sysconfig/network
输出结果 /etc/sysconfig

文件内容查看

直接查看文件内容

cat(concatenate)

cat [-AbEnTv]
  • 选项与参数
    • -A 相当于-vET的整合选项,可列出一些特殊字符而不是空白而已
    • -b 列出行号,仅针对非空白行做行号显示,空白行不标行号
    • -E 将结尾的换行符$显示出来
    • -n 打印出行号,连同空白行也会有行号,与-b的选项不同
    • -T 将[Tab]按键以^I显示出来
    • -v 列出一些看不出来的特殊字符

tac

cat是由第一行到最后一行显示

tac是由最后一行到第一行显示

nl(添加行号打印)

nl [-bnw] 文件
  • 选项与参数

    • -b 指定行号的指定方式

      • -b a 表示不论是否为空行,也同样列出行号(cat -n)
      • -b t 如果有空行,空的那一行不要列出行号(默认)
    • -n 列出行号的表示方式

      • -n ln 行号在屏幕的最左方显示
      • -n rn 行号在自己栏位的最右方显示,且不加0
      • -n rz 行号在自己栏位的最右方显示,且加0
    • -w 行号栏位占用的字符数

nl -b a -n rz -w 3 /etc/issue

可翻页查看

more(一页一页翻动)

more /etc/issue
  • 空格键(space) 代表向下翻一页
  • Enter 代表向下翻一页
  • /字符串 代表在这个显示的内容当中,向下查找字符串这个关键词
  • :f 立刻显示出文件名以及目前显示的行数
  • q 代表立刻离开more,不再显示该文件内容
  • b或 [ctrl]-b 代表往回翻页,不过这操作只对文件有用,对管道无用

less(一页一页翻动)

more /etc/issue
  • 空格键(space) 代表向下翻一页
  • [Pg Dn] 向下翻动一页
  • [Pg Up] 向上翻动一页
  • /字符串 向下查找字符串这个关键词
  • ?字符串 向上查找字符串这个关键词
  • n: 重复前一个查找(与/或?有关)
  • N:反向重复前一个查找(与/或?有关)
  • g:前进到这个数据的第一行
  • G:前进到这个数据的最后一行
  • q:离开这个程序

数据截取

head(取出前几行)

head [-n number] 文件
head -n 20 text.txt  输出前20行内容
head text.txt  默认输出前10行

tail(取出后几行)

tail [-n number] 文件
tail -n 20 text.txt 显示后20行的内容
tail -n +20 text.txt 显示第20行以后的数据
tail -f text.txt 持续刷新显示 ctrl+c停止

head tail(取出中间几行)

head -n 20 text.txt|tail -n 10  取出11~20行内容 
  • 管道(|)的意思是前面的命令所输出的信息交由后续命令继续使用
cat -n text.txt|head -n 20 |tail -n 10 

非纯文本文件 od

od [-t TYPE] 文件
  • 选项与参数
    • -t 后面可以接各种[类型(TYPE)]的输出
      • a 利用默认的字符输出
      • c 使用ASCII字符来输出
      • d[size] 利用十进制(decimal)来输出数据,每个整数占用size Bytes
      • f[size] 利用浮点数值(floating)来输出数据,每个数占用size Bytes
      • o[size] 利用八进制(octal)来输出数据,每个整数占用size Bytes
      • x[size] 利用十六进制(hexadecimal)来输出数据,每个整数占用size Bytes
      • oCc 以八进制列出存储值与ASCII的对照表

修改文件时间或创建新文件 touch

  • 三个主要变动时间

    • 修改时间(modification time mtime)
      当文件的内容数据改变时,就会更新这个时间

      ls -l 文件名
      
    • 状态时间(status time,ctime)
      当文件的状态(属性、权限)改变时,就会更新这个时间

      ls -l --time=ctime 文件名
      
    • 读取时间(access time,atime)
      当文件内容被读取,就会更新这个时间

      ls -l --time=atime 文件名
      
  • 让多个命令同时展开,只需用分号(;)隔开即可

  • touch [-acdmt] 文件
    
    • 选项与参数

      • -a 仅自定义access time

      • -c 仅修改文件时间,若该文件不存在则不建立新文件

      • -m 仅修改mtime

      • -d后面可接自定义日期而非目前时间

        touch -d "2 days ago" 文件
        
      • -t 后接自定义时间 格式为[YYYYMMDDhhmm]

        touch -t [202005120206] 文件名
        

文件与目录的默认权限与隐藏权限

文件默认权限 umask

umask
输出结果 0022
umask -S
输出结果u=rwx,g=rx,o=rx
  • 四组数字 0022解释

    • 第一位数字 是特殊权限
    • 第二位至第四位为u,g,o
    • r,w,x为 4,2,1
    • 0指没有拿掉任何权限
    • 2指拿掉w权限,以此类推
  • 修改默认值

    umask 002
    

文件隐藏属性

chattr(配置文件隐藏属性)

账号设置

adduser 名称
passwd 名称

你可能感兴趣的:(linux)