Linux温习(三)Linux文件和目录管理

关于Linux目录的几个常见概念

  1. 路径
    对文件位置信息的描述机制,是指从树型目录中的某个目录层次到其内某个文件的一条通路;分为相对路径和绝对路径;
  2. 工作目录
    登入系统后,用户始终处于某个目录中,此目录即为工作目录,或称作当前目录
  3. 根目录
    Linux树型目录结构的最顶层目录
  4. 用户“家”目录
    也称用户主目录,通常是位于/home目录中跟用户名称相同的一个目录,用户登录系统后默认处于此目录中

路径相关

描述:路径是从一个目录到另一个目录或文件的通路,由各级目录的名称来标识

  • 绝对路径
    从根目录/开始到文件名结束的路径
    例如: /usr/local/tomcat7/logs/catalina.out
  • 相对路径
    不是从根目录开始的路径
    例如:cd ../catalina.out
  • 几个特殊符号
    .代表当前路径
    ..代表上层目录
    ~代表用户根目录
    ~user 代表user的根目录

  • 系统登录时候,用户会自动跳转到其home目录,root用户的主目录是/root,而其他用户(user)的默认主目录是/home/user

  • 环境变量PATH

    环境变量PATH的作用是提供给用户查找文件的可能路径
    当新安装了套件时,可能需要将可执行文件的路径写入环境变量
    查看PATH方法
    echo $PATH
    技术分享

文件、目录操作命令

概要:
目录操作命令
ls pwd cd mkdir rmdir
文本文件查看命令
cat more less head tail
文件操作命令
file touch cp rm mv
文件内容统计命令
wc
文件链接命令
ln

1.目录操作命令

命令 功能
ls 显示指定目录和文件的信息
pwd 显示当前目录名称
cd 进入指定的目录
mkdir 创建指定名称的目录
rmdir 删除指定名称的目录
  • ls命令
    功能说明:
    将指定目录内容输出到标准输出设备上;
    如果不指定File 或Directory 参数,显示当前目录的内容
    缺省情况下,ls 命令按照文件名的字母顺序显示所有信息
    当ls 命令显示目录内容时,它不显示名称以.(点)开头的文件项,除非使用了-a 或者-A 标志
    命令格式:
    ls [-aAdfFhilRS] 目录名
    ls [–color={none,auto,never,always}] 目录名
    ls [–full-time] 目录名
    ls命令的常用选项
    -A 列出所有条目,除了.(点)和..(点-点)
    -a 列出目录中所有项,包括以.(点)开始的项
    -l(L 的小写)显示方式、链接数目、所有者、组、大小(按字节)和每个文件最近一次修改时间
    d 此项为目录
    b 此项为块特殊文件
    c 此项为字符特殊文件
    l 此项为符号链接
    p 此项为一个先进先出(FIFO)特殊文件
    s 此项为本地套接字
    -此项为普通文件
    -r反转排序顺序,适当的按字母逆向排序或者首先排序最旧的文件
    -R递归列出所有子目录
    -h 以更直观方式显示文件大小
    –color=never 不要按照文件属性用不同的颜色
    –color=always 显示颜色
    –color=auto 让系统自行设置是否显示颜色
    –full-time 以完整的时间模式输出
    –time={atime,ctime} 输出访问时间或者是改变权限的时间,而非是修改时间
  • pwd命令
    功能说明:
    显示工作目录的路径名称(print working directory)
    命令格式
    pwd [-P]
    pwd 命令将当前目录的全路径名称(绝对路径)写入标准输出设备;全部目录使用/(斜线)分隔;第一个/ 表示根目录,最后一个目录是当前目录
    [-P]显示出实际路径,而非使用连接的路径
    技术分享
    /var/mail是/var/spool/mail的连接文件
  • cd命令
    功能说明:
    更改当前工作目录(change directory)
    命令格式:
    cd [相对路径或绝对路径]
    使用说明:
    用户必须具有指定目录中的执行许可权
    如果未指定目录参数,cd 命令会将当前工作目录设置为登录目录
    支持相对路径和绝对路径
    应用实例:
    cd ~user表示切换到user的主(home)目录
    .(点)表示当前目录
    ..(点点)表示父目录
    cd ~ 返回当前用户主目录
    cd -返回用户上次所在的目录
  • mkdir命令
    功能说明:
    创建一个或多个新的目录
    命令格式:
    mkdir [-mp] 目录名
    使用说明:
    每个新目录包含标准项.(点)和..(点-点)
    -p 创建丢失中间路径名称目录;如果没有指定-p 标志,则每个新创建的目录的父目录必须已经存在
    -m 设置新创建的目录的权限,不管默认权限
  • rmdir命令
    功能说明:
    删除目录
    命令格式:
    rmdir [-p] 目录名
    使用说明:
    必须为空,并且必须具有父目录的写权限
    -p 沿着参数指定的路径名除去所有目录
    例如,如果要删除~/test、~/test/test1、~/test/test1/xyz,可以使用如下命令
 rmdir –p ~/test/test1/xyz

2.文件操作命令

命令 功能
file 显示指定文件的类型
touch 建立指定名称的文件或更新文件时间
cp 复制文件或目录
rm 删除文件或目录
mv 移动文件或目录,文件或目录重命名
  • file 命令
    功能说明:
    确定文件类型
    命令格式:
    file 文件名
    使用说明:
    文件可以是常规文件、目录、FIFO(指定的管道)、块特殊文件、字符特别文件、符号链接或者套接字类型
    对于长度为零的常规文件,将识别为空文件
    对于符号链接文件,缺省情况下此链接后跟符号链接引用的文件
    技术分享
    UTF,是Unicode Text Format的缩写,意为Unicode文本格式
  • touch 命令
    功能说明:
    创建新文件
    更新文件的访问和修改时间
    修改时间ctime (use –change time )
    访问时间atime(access)
    格式:
    touch [-opt] {File|Directory}
    常用选项
    -a 更改由File 变量指定的文件的访问时间
    -c如果文件不存在,则不要进行创建
    -m更改File 的修改时间
    -t Time使用指定时间而不是当前时间。
    Time 变量以十进制形式[YYMMDDhhmm]指定
    YY 指定年份的后两位数字
    MM 指定一年的哪一月(从01 到12)
    DD 指定一月的哪一天(从01 到31)
    hh 指定一天中的哪一小时(从00 到23)
    mm指定一小时的哪一分钟(从00 到59)
    命令实例
    技术分享

  • rm 命令
    功能说明:
    删除(链接)文件或目录
    命令格式:
    rm [opt] file/dir
    使用说明:
    如果要删除的文件是符号链接,则除去链接,但是符号链路引用的文件或目录仍在
    常用选项
    -f 在删除有写保护的文件前不提示
    -i 删除每个文件前提示
    -r 当目标参数为目录时递归删除目录及其内容
    -R 同-r
    命令实例
    技术分享

  • mv 命令
    功能说明:
    移动(并重命名)文件或目录
    mv 命令可以覆盖现有文件
    命令格式:
    mv [opt] source destination
    参数说明:
    -f:强制直接转移不询问
    -i:若目标文件已经存在询问是否覆盖
    -u:若源文件已经存在,但源文件比较新,则更新
    命令实例
    技术分享
  • cp 命令
    功能说明:
    复制文件或目录
    命令格式:
    cp [-opt] [src_file|src_dir] [dst_file|dst_dir]
    常用选项
    -a 复制目录时使用,保留链接、文件属性、并递归地复制目录
    -d 复制时保留链接
    -f 如果指定的目标文件存在,先强行覆盖
    -i 覆盖目标文件前需要用户先确认
    -p 复制文件,包括其修改时间和访问权限
    -r 复制目录时可递归复制目录中的内容
    -R 如同-r,但特殊文件将被重新创建,而非复制
    命令实例
    技术分享

命令实例图

3.文本文件查看命令

命令 功能
cat 显示文本文件内容
tac 从最后一行开始显示,tac和cat字母顺序相反
nl 显示的时候,输出行号
more 分页显示文本文件内容
less 分页显示文本文件内容,并可方便反复浏览
head 显示文件首部内容
tail 显示文件尾部内容
  • cat 命令(concatenate)
    功能说明:
    显示文本文件内容
    命令格式:
    cat [-AEnTv] 文件名
    参数说明
    -n 或–number 由1 开始对所有输出的行数编号
    -v 将非打印字符显示为可视字符,除了跳格符、换行符和换页符;
    -E 在每行末尾显示一个$(美元符号)
    -T则将跳格字符显示为^I,与-v联合使用;-t=-vT
    -A 等同于-vEt
    功能1:
    将指定文件从首行开始连续显示在屏幕,当文件过大时不适用
    例如cat install.log
    功能2:
    将两个或多个文件连接到一起
    格式:
    catfile1 file2 …>filen :将file1, file2等的内容复制到新建文件filen中
    命令实例
    技术分享

  • tac 命令
    功能说明:
    从最后一行开始显示,tac和cat字母顺序相反
    命令实例
    技术分享

  • nl 命令
    功能说明:
    显示的时候,输出行号
    命令格式:
    nl [-bnw] 文件
    参数说明:
    -b:制定行号的指定方式
    -b a:表示不论是否为空行,同样列出行号
    -b t:如果有空行,空行不要列出行号
    -n:列出行号的表示方法
    -n ln:行号在字段的最左方显示
    -n rn:行号在字段的最右方显示,不加0
    -n rz:行号在字段的最右方显示,加0
    -w:行号字段占用的位数
  • more 命令
    功能说明:
    分页显示文本文件内容
    命令格式:
    more 文件名
    使用说明:
    more 命令读取文件,并将内容屏显标准输出设备
    此命令在每屏后暂停,并在屏幕底部打印单词More和显示内容百分比
    回车键:more 命令将会再向下显示一行
    空格键:more 命令显示文本的另一屏。
  • less 命令
    功能说明:
    分页显示文本文件内容,并可方便反复浏览
    命令格式:
    less 文件名
    使用说明:
    less 命令的功能几乎和more 命令一样,也是用来按页显示文件,不同之处在于less 命令在显示文件时允许用户既可以向前又可以向后翻阅文件
    常用功能键
    pageup
    pagedown
    / 向下搜索
    ? 向上搜索
  • head 命令
    功能说明:
    显示文件首部内容
    命令格式:
    head [–n Num] File…
    选项说明:
    -n 选项用来指定显示File的开头行数
    使用说明:
    显示一个文件或多个文件的前几行或前几个字节
    缺省显示前10 行
    输入文件必须是文本文件
  • tail 命令
    功能说明:
    显示文件尾部内容
    命令格式:
    tail [-nf num] 文件
    选项说明:
    -n 选项用来指定从每一要显示的指定文件的开头的行数
    +Num 显示从第Num行开始至文件尾的内容
    -Num 显示从距文件尾Num行开始至文件尾的内容
    -f 如果文件内容正在增长中,此选项则动态显示增长的内容,直到用户使用“Ctrl+C”结束
    使用说明:
    我们经常在看服务器的日志的时候会用到tail 命令
    我们经常这样用
tail -f /usr/local/tomcat/logs/catalina.out

4.文件查找命令

命令 功能
which whereis指令会在特定目录中查找符合条件的文件;
where 从最后一行开始显示,tac和cat字母顺序相反
locate 分页显示文本文件内容
find 显示的时候,输出行号
  • which 命令
    功能说明:
    查看可执行文件的路径
    命令格式:
    which [-a] 命令
    常用选项:
    -a 将所有可找到的命令列出,不仅仅列出第一个找到的命令
    举例:
which pwd
which lsattr
  • whereis 命令
    功能说明:
    查找“特定文件”
    whereis指令会在特定目录中查找符合条件的文件;
    命令格式:
    whereis [选项] 文件列表
    常用选项
    -b 只查找二进制文件
    -m 只查找说明文件
    -s 只找源文件
    -u 没有帮助文件的文件
    命令实例
    技术分享

  • locate 命令
    功能说明:
    用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎条件的文件或目录
    命令格式:
    locate 文件名
    使用说明:
    需要先建立数据库,而后方可进行查找
    updatedb命令用来生成最新的文件名数据库,它会在目录/var/lib/mlocate/下生成mlocate.db 数据库
    它的查找速度比find快,但更新数据库的过程本身会很耗费时间

  • find 命令
    功能说明:
    在目录结构中搜索文件,并执行指定的操作
    命令格式:
    find 起始目录查找条件[操作]
    使用说明:
    起始目录:find命令所查找的目录路径;例如可用.来表示当前目录,用/来表示系统根目录
    查找条件:匹配机制,如可以按照文件名、文件权限、修改时间等进行文件查找
    操作:按指定条件查找后进行的特定处理方法,如将查找到的文件在屏幕上显示出来,或对其进行权限修改,或将查找到的文件删除等等
    find命令的查找条件(1)
    -name ‘字串’按照文件名查找文件
    -lname ‘字串’查找文件名匹配的所有符号链接文件
    -gid n 查找属于ID号为n的用户组的所有文件
    -uid n 查找属于ID号为n的用户的所有文件
    -group ’字串’查找属于同一用户组的所有的文件
    -user ’字串’查找属于同一用户的所有文件
    -empty 查找大小为0的文件
    -path ’字串’查找路径名匹配所给字串的所有文件
    -perm 权限查找具有指定权限的文件和目录,权限的表示可以如755,644
    命令实例
    技术分享
    find命令的查找条件(2)
    -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在
    -nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在
    -type 查找某一类型的文件
    -size n [bck] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
    -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
    命令实例
    技术分享
    find命令的查找条件(3)
    以时间为条件查找
    -amin +n -n 按访问时间查找;-n指n分钟以内,+n指n分钟以前
    -atime +n -n 按访问时间查找;-n指n天以内,+n指n天以前
    -cmin +n -n 按创建时间查找
    -ctime +n -n 按创建时间查找
    -mmin +n -n 按修改时间查找
    -mtime +n -n 按修改时间查找
    -newer file 列出比file还新的文件
    可执行的操作
    -exec 命令{} \;对符合条件的文件执行所给的命令
    {}表示命令的参数即为所找到的文件
    命令的末尾必须以“\;”结束
    -ok 命令{} \;同-exec,但会询问用户是否执行该命令
    命令实例
find / -name g.txt -exec ls -l {} \;

技术分享
find命令例子
在/etc目录下查找所有以rc开头的文件名

find /etc -name “rc*-print

查找系统中所有文件长度为0的普通文件,并列出它们的完整路径

find / -type f -size 0 -exec ls -l {} \;

在/etc下的所有以passwd开头的文件中查找是否有名为redhat的用户

find /etc –name “passwd*”exec grep “redhat” {} \;

查找当前目录下所有以txt结尾且2分钟内没有被访问过的文件

find . -name*.txt” -amin +2 -print

四个不同搜索命令区别
which:
通过环境变量PATH指定路径进行搜索
whereis,locate:
通过存储系统文件信息的数据库
find:
直接搜索硬盘
5.文件与目录的默认权限与隐藏权限

命令 功能
umask 用来设置新建文件权限的掩码
chattr 设置文件的隐藏属性
lsattr 显示文件夹的隐藏属性
set UID 特殊权限
set GID 如果s的权限是在用户组
sticky Bit 只针对目录有效
  • umask 命令
    功能描述:
    用来设置新建文件权限的掩码
    命令格式:
    umask [模式]
    使用说明
    模式为新建文件权限的掩码值
    Linux系统中目录的默认权限是drwxrwxrwx,文件的默认权限是-rw-rw-rw-。因此,有以下公式:
    新目录的权限= drwxrwxrwx-默认权限掩码
    新文件的权限= -rw-rw-rw--默认权限掩码
    基于安全原因,Linux系统不允许文件的默认权限有执行权
    不带任何参数的umask命令显示当前的默认权限掩码值
    新目录的权限= drwxrwxrwx-(d—-w–w-)
    = drwxr-xr-x
    新文件的权限= -rw-rw-rw--(—–w–w-)
    = -rw-r–r–
  • chattr 命令
  • 功能说明:
    设置文件的隐藏属性
    命令格式:
    chattr [+-=] [ASacdistu] 文件或目录
    参数说明:
    a:只能增加数据,不能删除,只有root才能设置
    i:可以让文件“不能被删除、改名、设置连接,也无法写入或新增数据”
  • lsattr 命令
    功能说明:
    显示文件夹的隐藏属性
    命令格式:
    lsattr [-aR] 文件或目录
    参数说明:
    -a:显示隐藏文件的属性
    -R:连同子目录的数据一并列出
  • set UID 命令
    特殊权限
    s与t:让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限。
    技术分享
  • set GID命令
    功能说明:
    如果s的权限是在用户组,称为Set GID,简称SGID
    文件:如果SGID设置在二进制文件上,不论用户是谁,在执行改程序的时候,它的有效用户组将会变成改程序用户组的所有者。
    目录:如果SGID设置在A目录上,则在该A目录内建立的文件或目录的用户组,将会是此A目录的用户组。
  • sticky Bit 命令
    功能说明:
    只针对目录有效
    在具有SBit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件的拥有者与root有权利删除。
    SUID/SGID/SBIT权限设置
    SUID: 4
    SGID: 2
    SBIT: 1
    格式:chmod xxxx filename
    命令实例
    技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。