linux(四) 文件系统相关常用命令

常用的命令

pwd : print working directory

  • -P,如果当前目录是链接会显示出真是路径

cd : change directory
切换当前目录

mkdir
创建目录

  • -m 设置权限,不使用默认权限
  • -p 递归创建多重目录

rmdir
删除目录(仅为空目录)可选参数

  • -p 递归删除目录

ls
列出文件或目录信息.

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

cp
复制文件或目录

选项与参数:
-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=all  :除了 -p  的权限相关参数外,还加入    SELinux 的属性,    links,  xattr   等也复制了。
最后需要注意的,如果来源文件有两个以上,则最后一个目的文件一定要是“目录”才行!

.

rm
移除文件或目录

  • -f 强制删除
  • -r 递归删除

文件内容查阅命令

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行
  • od 以二进制的方式读取文件内容!

PATH的含义

环境变量,存放命令目录.如果有同名命令,执行先搜索到的命令

添加目录到PATH
PATH=”${PATH}:目录路径(绝对相对都行)”

umask

类似于子网掩码 要去除的权限
rw- rw- rw-目录默认权限
rwx rwx rwx创建时的默认权限.显示的是拿掉的权限,例如
0022后三位表示权限,这时创建出的文件权限为(rw- rw- rw-)-(--- -w- -w-)=rw- r-- r--
创建出的目录权限为(rwx rwx rwx)-(--- -w- -w-)=rwx r-x r-x

umask 011 设置umask位— –x –x

特殊权限

chattr [+-=][para]
增加/取消/等于para权限

常用参数(都需要root权限)

  • i 让一个文件不能被删除、改名、设置链接也无法写入或新增数据!
  • a 这个文件将只能增加数据,而不能删除也不能修改数据
  • lsattr 显示特殊权限,具体信息就找男人(man)

查找命令

查找PATH中命令位置
which [-a] command 查找[全部]命令位置

查找文件
whereis [-bmus] filename/dirname 仅在主要目录中查找
选项与参数:

  • -l :可以列出 whereis 会去查询的几个主要目录而已
  • -b :只找 binary 格式的文件
  • -m :只找在说明文档 manual 路径下的文件
  • -s :只找 source 来源文件
  • -u :搜寻不在上述三个项目当中的其他特殊文件

locate [-ir] keyword
在本地数据库中查询

选项与参数:

  • -i :忽略大小写的差异;
  • -c :不输出文件名,仅计算找到的文件数量
  • -l :仅输出几行的意思,例如输出五行则是 -l 5
  • -S :输出locate所使用的数据库文件的相关信息,包括该数据库纪录的文件/目录数量等
  • -r :后面可接正则表达式的显示方式

find [PATH] [option] [action]
全局查找命令

find / passwd

全盘搜索passwd

linux主要目录,基于FHS

目录应放置文件内容
第一部份:FHS要求必须要存在的目录
/bin系统有很多放置可执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。 在/bin下面的指令可以被root与一般帐号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令.
/boot这个目录主要在放置开机会使用到的文件,包括Linux核心文件以及开机菜单与开机所需配置文件等等,Linux kernel常用的文件名为:vmlinuz,如果使用的是grub2这个开机管理程序, 则还会存在/boot/grub2/这个目录喔!
/dev在Linux系统上,任何设备与周边设备都是以文件的型态存在于这个目录当中的。 你只要通过存取这个目录下面的某个文件,就等于存取某个设备啰~ 比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/loop, /dev/sd等等
/etc系统主要的配置文件几乎都放置在这个目录内,例如人员的帐号密码档、各种服务的启始档等等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的, 但是只有root有权力修改。FHS建议不要放置可可执行文件(binary)在这个目录中。比较重要的文件有: /etc/modprobe.d/,/etc/passwd, /etc/fstab, /etc/issue 等等。另外 FHS 还规范几个重要的目录最好要存在 /etc/ 目录下喔:/etc/opt(必要):这个目录在放置第三方协力软件 /opt 的相关配置文件 /etc/X11/(建议):与 X Window 有关的各种配置文件都在这里,尤其是 xorg.conf 这个 X Server 的配置文件。 /etc/sgml/(建议):与 SGML 格式有关的各项配置文件 /etc/xml/(建议):与 XML格式有关的各项配置文件
/lib系统的函数库非常的多,而/lib放置的则是在开机时会用到的函数库, 以及在/bin或/sbin下面的指令会调用的函数库而已.FSH还要求下面的目录必须要存在:/lib/modules/:这个目录主要放置可抽换式的核心相关模块(驱动程序)
/mediamedia是“媒体”的英文,顾名思义,这个/media下面放置的就是可移除的设备,包括软盘、光盘、DVD等等设备都暂时挂载于此。常见的文件名有:/media/floppy,/media/cdrom等等。
/mnt如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。在很早时候,这个目录的用途与/media相同!只是有了/media之后,这个目录就用来暂时挂载用了。
/opt这个是给第三方软件放置的目录。什么是第三方软件啊? 举例来说,KDE这个桌面管理系统是一个独立的软件,不过他可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下了。 另外,如果你想要自行安装额外的软件(非原本的distribution提供的),那么也能够将你的软件安装到这里来。 不过,以前的Linux系统中,还是习惯放置在/usr/local目录下!
/run早期的 FHS 规定系统开机后所产生的各项信息应该要放置到 /var/run 目录下,新版的 FHS 则规范到 /run 下面。 由于 /run 可以使用内存来仿真,因此性能上会好很多!
Linux有非常多指令是用来设置系统环境的,这些指令只有root才能够利用来“设置”系统,其他使用者最多只能用来“查询”而已。 放在/sbin下面的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。 至于某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统可执行文件(system binary), 则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, mkfs等等。
/srvsrv可以视为“service”的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。 常见的服务例如WWW, FTP等等。举例来说,WWW服务器需要的网页数据就可以放置在/srv/www/里面。 不过,系统的服务数据如果尚未要提供给网际网络任何人浏览的话,默认还是建议放置到 /var/lib下面即可。
/tmp这是让一般使用者或者是正在执行的程序暂时放置文件的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要数据不可放置在此目录! 因为FHS甚至建议在开机时,应该要将/tmp下的数据都删除
第二部份:FHS建议可以存在的目录
/home这是系统默认的使用者主文件夹(home directory)。在你新增一个一般使用者帐号时, 默认的使用者主文件夹都会规范到这里来。比较重要的是,主文件夹有两种代号喔:~:代表目前这个使用者的主文件夹 ~dmtsai :则代表用户dmtsai的主文件夹!
/lib[32/64]用来存放与 /lib 不同的格式的二进制函数库,例如支持 64 位的 /lib64 函数库等
/root系统管理员(root)的主文件夹。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的主文件夹,所以我们会希望root的主文件夹与根目录放置在同一个分区中。

事实上FHS针对根目录所定义的标准就仅有上面的咚咚,不过我们的Linux下面还有许多目录你也需要了解一下的。 下面是几个在Linux当中也是非常重要的目录:

目录应放置文件内容
/lost+found这个目录是使用标准的ext2/ext3/ext4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时, 将一些遗失的片段放置到这个目录下。不过如果使用的是 xfs 文件系统的话,就不会存在这个目录了!
/proc这个目录本身是一个“虚拟文件系统(virtual filesystem)”!他放置的数据都是在内存当中, 例如系统核心、行程信息(process)、周边设备的状态及网络状态等等。因为这个目录下的数据都是在内存当中, 所以本身不占任何硬盘空间啊!比较重要的文件例如:/proc/cpuinfo, /proc/dma,/proc/interrupts, /proc/ioports, /proc/net/* 等等。
/sys这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录核心与系统硬件信息较相关的信息。 包括目前已载入的核心模块与核心侦测到的硬件设备信息等等。这个目录同样不占硬盘容量!
    原文作者:alonwang
    原文地址: https://www.jianshu.com/p/0957b3e0a258
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞