03_Linux文件和目录管理

目录的常用操作

.当前目录
上级目录
-上一个访问的目录
~当前用户的家目录

常用指令:

  • cd:切换目录
  • pwd:显示当前目录
  • mkdir:创建文件夹,如果是多级目录,需要加-p
  • rmdir:删除目录,如果是多级目录,同样需要加-p

执行文件路径变量:$PATH

你应该已经发现了,很多命令在任何目录都可以执行。而安装很多软件,比如nginx等,需要有一个加入系统路径的操作,才可以在任何地方使用nginx命令,这是为什么呢。

可以输入echo $PATH 看一下:

[root@node4 /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/default/bin:/usr/java/default/bin:/opt/zookeeper-3.4.6/bin:/opt/hadoop-2.6.5/bin:/opt/hadoop-2.6.5/sbin:/opt/nginx/sbin:/root/bin

PATH变量,注意大写,是由很多个路径组成的,其中由:分隔。

前面讲过,系统命令一般放在/bin目录或者/usr/bin,所以这样就能让系统命令在所有目录使用了。

而这些配置文件,都放在/etc/profile里面,例如

export ZOOKEEPER_HOME=/opt/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH=$PATH:/opt/nginx/sbin

上面假的这些路径,就可以让这些软件在任何目录都可以访问了

文件和目录管理

无外乎就是增删改查。也就是修改属性,复制,删除,移动等。

查看文件:ls

ls命令可以说是最常执行的命令了吧,每当进入一个目录,就需要用ls看一下这里有哪些文件。

常用的命令有

  • ls -al 这会显示隐藏文件
  • ll 相当于ls -l,还会显示用户和修改时间等信息

复制cp

  • cp 复制文件或目录,如果不加-a或者-p,复制过后的文件,权限会发生改变

  • 用法:

    cp 源文件或目录 目标文件或目录
    
  • 常用参数:

    -a 相当于-dr —preserve=all

    -p 连同权限、用户、时间等属性一起复制

    -r 递归复制

    -l 硬链接

    -s 软链接,也就是快捷方式

  • 复制时,需要考虑如下信息:

删除文件rm

  • 用法:

    rm 参数 文件名
    
  • 常用参数

    -f : 强制删除

    -i: 删除前会询问,这是info的I

    -r: 递归删除

  • 特殊情况:因为-会被识别成参数,所以删除-开头的文件时,前面可以加上目录

    rm ./-aa.txt
    

移动或重命名mv

  • 用法

    mv 参数 源文件 目标文件
    
  • 常用参数

    -f : 强制

    -i: 执行前先询问

    -u: 只有source比较新,才会执行

已知文件的完整路径,如何获得文件的文件名或路径呢:

# 返回文件名
basename 文件路径/文件名
# 返回文件路径
dirname 文件路径/文件名

查看文件

作用常用参数
cat 文件名打印文件内容-n 打印行号
tac反向查看
more可以翻页查看
less前后翻页查看
od查看非文本文件
file查看文件类型

数据截取

  • head -n 数字 文件名 截取文件前n行 -f会刷新持续输出
  • tail -n 数字 文件名 截取文件后n行

这两个命令常常一起使用,比如想输出一个文件的11到20行,并显示行号

cat -n /etc/my.conf head -n 20 | tai -n 10

创建或修改文件时间:touch

linux的文件有三个时间维度

  • 修改时间 mtime modification time 表示文件的修改时间,在文件内容被修改时更新。ls命令默认显示该事件
  • 状态时间 stime status time 当文件的状态,比如说权限被修改时更新
  • 读取时间 atime access time 当文件被读取时更新

使用touch+文件名 的命令时,会同时更新这三个时间。

如果文件不存在,那就会创建一个新文件,时间是当前时间。

默认权限umask

当文件被创建时,默认的权限是什么呢?

这取决于umask,也就是用户在建立文件或目录时的默认值

# 会显示权限的数字代码
umask 
# 显示完整权限文本
umask -S

目录的默认权限是777,文件的默认权限是666,这是因为文件默认没有x权限,也就是运行权限

umask命令,显示的是当前目录权限需要减去的权限,也就是说,在当前目录新建文件,实际的权限是该文件夹权限-umask

在linux中,除了前面讲过的9种权限,还有隐藏属性权限的存在,这个后续再说。

文件查找

常用的查找命令有以下这些:

  • 查找系统指令,返回命令的具体路径

    # -a 参数表示返回所有结果
    which -a 命令名
    
  • whereis 在一些特定的目录中寻找文件,一般是一些默认的软件安装目录,所以该命令常常用来判断是否安装了某软件

    # 查看mysql安装在哪里
    whereis mysql
    
  • locate 按照关键字查找文件。locate的查找是从系统内置数据库中查找的,该数据库默认一天更新一次。可以使用updatedb立即更新

    # 查找包含某关键字的所有文件
    locate keyword
    # 常用参数 -i 忽略大小写 -r 
    # 查询包含pwd的文件,仅列出5行结果
    locate -l 5 pwd
    

功能最多的查找命令find

  • 基本查找
find [path] [option] [action]

# 查找当前文件,24小时内修改过的文件
find / -mtime 0
# 在etc中,找比passwd文件新的文件
find /etc -newer /etc/passwd
  • 按时间查找
# +4代表5天前文件
find /var -mtime +4
# -4代表4天内的文件
find /var -mtime -4
# 如果没有加减号,就表示4-5那一天内的文件
find /var -mtime 4
  • 按用户查找
# 查找某用户的在指定目录的所有文件
find /home -user username
# 其他参数
-group 组名
-nouser 查找无所属的文件
  • 按权限或关键字查找
# 查找包含keyword的文件,可以使用通配符
find / -name keyword
find / -name "*name"

# 其他参数
-size + 50k 查找比50kb大的文件
-perm mode 查找权限刚好是mode的文件
-perm -mode 查找权限包含了mode的文件
-perm /mode 查找包含任意mode的文件,就是or属性
  • 查找后进行后续操作
find /var -mtime 4 -exec ls -l {} \
  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值