linux中文件系统相关命令,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/:这个目录主要放置可抽换式的核心相关模块(驱动程序)

/media

media是“媒体”的英文,顾名思义,这个/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等等。

/srv

srv可以视为“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非常类似,也是一个虚拟的文件系统,主要也是记录核心与系统硬件信息较相关的信息。 包括目前已载入的核心模块与核心侦测到的硬件设备信息等等。这个目录同样不占硬盘容量!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值