Linux文件和目录管理类命令初识

简述

在Linux操作系统使用过程中,因为运维需要频繁的对文件、目录进行操作,所以需要学习一些关于文件、目录的命令

Linux上文件是什么?

「文件」:存储空间存储的一段流式数据,可以按名「存取」这些数据

常见文件类型

-:常规文件
d:目录文件
b:块设备文件,以「block」为单位进行随机访问,常见设备「硬盘」
c:字符设备文件,以「character」为单位进行线性访问,常见设备「键盘」
l:符号链接文件
p:命令管道
s:套接字文件

通过使用命令ls来查看文件类型

[root@localhost ~]# ls -l /etc/
drwxr-xr-x.  3 root root       97 Apr 12  2016 abrt
-rw-r--r--.  1 root root       44 Apr 12  2016 adjtime
lrwxrwxrwx.  1 root root       11 Apr 12  2016 init.d -> rc.d/init.d
.....

Linux上目录是什么?

「目录」也是文件,在目录中存放着路径映射表,在Linux操作系统中存在一个特殊目录“/”(根目录),通过「根目录」可以找到目录,文件可以通过目录找到

假如需要查找/etc/fstab文件,具体过程如下:

  1. 通过根目录自引用的iNode,找到根目录对应的block

  2. 在根目录block中存放着路径映射表,表中存放着etc目录的iNode号

  3. 通过etc的iNode来访问etc对应的block

  4. 根据etc的block可以找到fstab的iNode号

  5. 通过fstab的INode就找到了对应的block了

常用命令简介

  • ls命令
    功用:列出指定目录下的内容
    语法:ls [OPTION]… [FILE]…

不带任何选项参数,表示显示不带任何信息的文件

[root@localhost ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     testDesktop          Downloads  ip.text               
Pictures  Templates  Videos

-l (l是字母不是“1”)显示是文件还是目录,它的大小、修改日期和时间、文件或目录的名字以及文件的属主属组等信息

[root@localhost ~]# ls -l 
total 12
-rw-------. 1 root root 1374 Apr 12  2016 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Apr 11  2016 Desktop
drwxr-xr-x. 2 root root    6 Apr 11  2016 Documents
drwxr-xr-x. 2 root root    6 Apr 11  2016 Downloads

-a 显示隐藏文件,.开头文件为隐藏文件

[root@localhost ~]# ls -a
.                .bashrc  Documents       .gstreamer-0.10       .local    Templates..               
.cache   Downloads       .gtkrc-2.0-kde4       .mozilla  test

-A 显示除.和..之外的所有文件

[root@localhost ~]# ls -A
anaconda-ks.cfg  .config    .esd_auth        initial-setup-ks.cfg  Music      .thumbnails.bash_history    
.cshrc     .functions.swo   ip.text               Pictures   Videos

-h 显示易读方式的文件大小,通常结合-l选项使用

[root@localhost ~]# ls -lhtotal 12K
-rw-------. 1 root root 1.4K Apr 12  2016 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Apr 11  2016 Desktop
drwxr-xr-x. 2 root root    6 Apr 11  2016 Documents
drwxr-xr-x. 2 root root    6 Apr 11  2016 Downloads

-d 查看目录本身

[root@localhost ~]# ls -ld /var/log/
drwxr-xr-x. 18 root root 4096 Nov  5 14:45 /var/log/

-r 逆序显示,-R 递归显示

  • cd命令
    功用:切换工作目录
    语法:cd [PATH]

~ 切换回自己家目录
~USERNAME 切换至指定用户家目录
-上一次目录位置与当前目录来回切换

    [root@localhost tmp]# cd ~natasha    ###切换至natasha家目录
    [root@localhost natasha]#
  • cat命令
    功用:文本文件查看工具
    语法:cat [OPTION]… [FILE]…

-n 显示行号
-E 显示行结束符$

    [root@localhost ~]# cat -n /etc/issue
     1    \S     2    Kernel \r on an \m     3    
     4    Welcome To Hakatsuki
  • file命令
    功用:查看文件内容类型
    语法:file [FILE]…

    [root@localhost ~]# file /etc/fstab 

    /etc/fstab: ASCII text
  • mkdir命令
    功用:创建目录
    语法:mkdir [OPTION]… DIRECTORY…

-p 按需创建父目录
-v 显示详细过程
-m 指定目录权限

    [root@localhost ~]# mkdir -pv /tmp/a/b/c      ###创建a、b、c目录,并显示过程
    mkdir: created directory ‘/tmp/a’    
    mkdir: created directory ‘/tmp/a/b’   
     mkdir: created directory ‘/tmp/a/b/c’
  • rmdir命令
    功用:删除目录
    语法:rmdir [OPTION]… DIRECTORY…

-p 如果父目录为空,一并删除,谨慎使用
-v 显示过程

    [root@localhost ~]# rmdir -pv /tmp/a/b/c/    ###删除c目录,a,b为空目录也会被删除
    rmdir: removing directory, ‘/tmp/a/b/c/’    
    rmdir: removing directory, ‘/tmp/a/b’    
    rmdir: removing directory, ‘/tmp/a’    
    rmdir: removing directory, ‘/tmp’    
    rmdir: failed to remove directory ‘/tmp’: Device or resource busy
  • head命令
    功用:查看文件前N行
    语法:head [OPTION]… [FILE]…

-n # #是数字,显示前#行
-#

     [root@localhost ~]# head -n 3 /etc/passwd    ###~]# head -3 /etc/passwd 效果一致
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
  • tail命令
    功用:显示文件后N行
    语法:tail [OPTION]… [FILE]…

-n # #是数字,显示后#行
-#
-f 监控,新增信息会直接显示

    [root@localhost ~]# tail -3 /etc/passwd
    rootkit:x:1003:1003::/home/rootkit:/bin/bash
    user4:x:1004:1004::/home/user4:/bin/chroot
    chrooter:x:1005:1005::/home/chrooter:/bin/bash
  • stat命令
    功用:查看文件详细属性信息(元数据)
    语法:stat FILE…

[root@localhost ~]# stat /etc/fstab 
  File: ‘/etc/fstab’
  Size: 465           Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33554562    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-11-06 15:01:33.484018459 +0800    ###最后访问时间
Modify: 2016-04-12 07:11:24.423003139 +0800    ###最后更改时间(数据)
Change: 2016-04-12 07:27:13.470061088 +0800    ###最后改变时间(元数据)
 Birth: -
  • touch命令
    功用:修改文件时间戳或者创建不存在的文件
    语法:touch [OPTION]… FILE…

-c 如果文件不存在,则不进行创建
-a 仅修改access时间
-m 仅修改modify时间

    [root@localhost ~]# touch /tmp/a.text      ###创建一个不存在的文件a.text
    [root@localhost ~]# ls /tmp/a.text
  • cp命令
    功用:复制
    语法:
    cp [OPTION]… [-T] SOURCE DEST
    cp [OPTION]… SOURCE… DIRECTORY
    cp [OPTION]… -t DIRECTORY SOURCE…

-i 交互式复制,覆盖之前提醒用户确认
-f 强制覆盖目标文件
-r -R 递归复制目录
-a 用于归档复制

  1. 单源复制 cp [OPTION]… [-T] SOURCE DEST
    如果目标不存在,则事先创建此文件,并复制文件的数据流至目标中
    如果目标存在:
    是非目录文件,覆盖目标文件
    是目录文件,则在目标目录下创建一个同名的文件,并复制其数据流

    [root@localhost ~]# mkdir /tmp/test    ###创建测试目录
    [root@localhost ~]# cp /etc/issue /tmp/test/    ###目标是目录文件,则在目录下创建issue文件,并复制其数据流
    [root@localhost ~]# ls /tmp/test/
    issue
  1. 多源复制
    cp [OPTION]… SOURCE… DIRECTORY
    cp [OPTION]… -t DIRECTORY SOURCE…
    如果目标不存在,错误
    如果目标存在:
    是非目录文件,错误
    是目录文件,分别复制每个文件至目标目录中,并保持原名

    [root@localhost ~]# mkdir /tmp/test2    ###创建测试目录
    [root@localhost ~]# cp /etc/fstab /etc/issue /tmp/test2/    ###复制多个文件至test2
    [root@localhost ~]# ls /tmp/test2/
    fstab  issue
  • mv命令
    功用:移动文件或重命名文件

    [root@localhost tmp]# mv /tmp/test2/issue ./    ###移动issue文件至当前目录

    [root@localhost tmp]# mv issue issue2    ###重命名issue文件为issue2
  • rm命令
    功用:删除文件或目录
    语法:rm [OPTION]… FILE…

-i 删除之前提醒用户确认
-f 强制删除
-r 递归删除

    [root@localhost ~]# rm -rf /tmp/*    ###强制删除/tmp目录下所有文件

Note:rm -rf 危险操作,慎用

原创文章,作者:N24-Akatsuki,如若转载,请注明出处:http://www.178linux.com/57722

(0)
N24-AkatsukiN24-Akatsuki
上一篇 2016-11-06 16:00
下一篇 2016-11-06 16:24

相关推荐

  • iptables

    练习:基于状态放行telnet, ftp, ssh, http, samba, icmp等服务 (1) 对本机的ping请求每分钟不得超出20个 (2) 每客户端对本机的ssh的并发连接数不得超过3个 (3) 本机的telnet服务仅允许工作时间内访问 [root@node1 ~]# vim iptables.sh iptabl…

    Linux干货 2016-10-22
  • 我的第一篇博客

        大家好,欢迎阅读我的博客!     今天是我生平第一次写博客,恩  为什么现在才开始写呢?     其实是作业要求 哈哈!虽然是写作业,本萌新也是很拼的!     希望在以后学习li…

    2017-07-10
  • centos启动流程

    加电自检 检测硬件是否存在并且能够正常运行,如cpu、内存、硬盘是否存在并能正常运行,以及外围得输入输出设备是否存在,如键盘、鼠标、显示器。 bios启动次序,按照次序查找个引导设备,启动第一个具有引导程序的设备,即为本次启动需要加载的设备。 加载boot loader bootloader安装在mbr中,linux的bootloader程序为grub和li…

    Linux干货 2017-11-14
  • 备份练习

    课外整理 cp 功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息参数:     -a 或 –archiv…

    Linux干货 2016-08-08
  • 开班第一天,新获得的技能

    新接触命令 lscpu 显示CPU信息 gedit 文件名 类似于记事本 ** 注意 这个命令适用于图形界面。 cat /proc/partition 显示分区信息 cat /proc/meminfo 显示内存大小 cat /proc/swaps 显示虚拟内存 cat …

    Linux干货 2017-02-17
  • CentOS6删除/etc/fstab和/boot后恢复

    CentOS6删除/etc/fstab和/boot后恢复 背景: Linux CentOS系统和启动相关的文件都在/boot目录下,如果我们将/boot目录下所有的文件都删除,然后在恢复系统,那以后在遇到系统启动问题时就都可以解决了。在这基础上,在将/etc/fstab文件删除,这样更加大了修复的难度,不过这都是可以修复的,这里就将介绍如何修复。 实验环境:…

    2017-09-01

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-10 18:51

    赞,总结了对文件和目录经常操作的用法~继续加油~