Linux 系统的根目录(/)最为重要,下面还有一级目录:
Linux挂载详解
Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。
Linux文件和目录管理在文件系统中,有两个特殊的目录,一个是用户所在的工作目录,即当前目录,可用一个点“.”表示;另一个是当前目录的上一层目录,也叫父目录,用两个点“..”表示。如果一个目录或文件名是以一个点开始,就表示这个目录或文件是一个隐藏目录或文件。目录名或文件名是区分大小写的。
Linux 系统并不以文件的扩展名开分区文件类型。
在Linux 系统中,硬件设备也是文件,也有各自的文件名称。Linux 系统内核中的 udev 设备管理器会自动对硬件设备的名称进行规范,目的是让用户通过设备文件的名称,就可以大致猜测处设备的属性以及相关信息。
[root@localhost ~]#
这就是 Linux 系统的命令提示符。那么,这个提示符的含义是什么呢?
[root@localhost ~]# 命令[选项][参数]
命令常用选项及功能 | |
选项 | 功能 |
-a | 显示全部的文件,包括隐藏文件 |
-A | 显示全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录。 |
-d | 仅列出目录本身,而不是列出目录内的文件数据。 |
-f | ls 默认会以文件名排序 |
-F | 在文件或目录名后加上文件类型的指示符号,例如,* 代表可运行文件,/ 代表目录,= 代表SOCKET文件,| 代表 FIFO 文件。 |
-h | 以人们易读的方式显示文件或目录大小 |
-i | 显示 inode 节点信息。 |
-l | 使用长格式列出文件和目录信息。 |
-n | 以 UID 和 GID 分别代替文件用户名和群组名显示出来。 |
-r | 将排序结果反向输出 |
-R | 连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来。 |
-S | 以文件容量大小排序,而不是以文件名排序。 |
-t | 以时间排序,而不是以文件名排序。 |
--color=never | never 表示不依据文件特性给予颜色显示。 |
--full-time | 以完整时间模式 (包含年、月、日、时、分)输出 |
--time={atime,ctime} | 输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间。 |
[root@localhost ~]# mkdir [-mp] 目录名
rmdir [-p] 目录名
-p 选项用于递归删除空目录。
touch [选项] 文件名
ln 命令用于给文件创建链接,根据 Linux 系统存储文件的特点,链接的方式分为以下 2 种:
ln [选项] 源文件 目标文件
这里需要注意,软链接文件的源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求);否则软链接文件会报错。
cp [选项] 源文件 目标文件
rm[选项] 文件或目录
mv [选项]源文件 目标文件
打包和压缩不同。
打包:tar [选项] 源文件或目录
tar 打包命令常用选项及含义 | |
选项 | 含义 |
-c | 将多个文件或目录进行打包。 |
-A | 追加 tar 文件到归档文件。 |
-f 包名 | 指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名; |
-v | 显示打包文件过程; |
tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg
把anacondehks.cfg打包为 anacondehks.cfg.tar文件
解打包:tar [选项] 压缩包
解打包常用选项及含义 | |
选项 | 含义 |
-x | 对 tar 包做解打包操作。 |
-f | 指定要解压的 tar 包的包名。 |
-t | 只查看 tar 包中有哪些文件或目录,不对 tar 包做解打包操作。 |
-C 目录 | 指定解打包位置。 |
-v | 显示解打包的具体过程。 |
其实解打包和打包相比,只是把打包选项 "-cvf" 更换为 "-xvf"。我们来试试:
tar -xvf anaconda-ks.cfg. tar
解打包到当前目录下
tar [选项] 压缩包 源文件或目录
zip [选项] 压缩包名 源文件或源目录列表
zip 命令常用选项及含义 | |
选项 | 含义 |
-r | 递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。 |
-m | 将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。 |
-v | 显示详细的压缩过程信息。 |
-q | 在压缩的时候不显示命令的执行过程。 |
-压缩级别 | 压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好。 |
-u | 更新压缩文件,即往压缩文件中添加新文件。 |
unzip [选项] 压缩包名
unzip 命令常用选项及含义 | |
选项 | 含义 |
-d 目录名 | 将压缩文件解压到指定目录下。 |
-n | 解压时并不覆盖已经存在的文件。 |
-o | 解压时覆盖已经存在的文件,并且无需用户确认。 |
-v | 查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作。 |
-t | 测试压缩文件有无损坏,但并不解压。 |
-x 文件列表 | 解压文件,但不包含文件列表中指定的文件。 |
gzip [选项] 源文件
gzip 命令常用选项及含义 | |
选项 | 含义 |
-c | 将压缩数据输出到标准输出中,并保留源文件。 |
-d | 对压缩文件进行解压缩。 |
-r | 递归压缩指定目录下以及子目录下的所有文件。 |
-v | 对于每个压缩和解压缩的文件,显示相应的文件名和压缩比。 |
-l | 对每一个压缩文件,显示以下字段: 压缩文件的大小; 未压缩文件的大小; 压缩比; 未压缩文件的名称。 |
-数字 | 用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是 -6。 |
gunzip [选项] 文件
gunzip 命令常用选项及含义 | |
选项 | 含义 |
-r | 递归处理,解压缩指定目录下以及子目录下的所有文件。 |
-c | 把解压缩后的文件输出到标准输出设备。 |
-f | 强制解压缩文件,不理会文件是否已存在等情况。 |
-l | 列出压缩文件内容。 |
-v | 显示命令执行过程。 |
-t | 测试压缩文件是否正常,但不对其做解压缩操作。 |
bzip2 [选项] 源文件
bzip2 命令常用选项及含义 | |
选项 | 含义 |
-d | 执行解压缩,此时该选项后的源文件应为标记有 .bz2 后缀的压缩包文件。 |
-k | bzip2 在压缩或解压缩任务完成后,会删除原始文件,若要保留原始文件,可使用此选项。 |
-f | bzip2 在压缩或解压缩时,若输出文件与现有文件同名,默认不会覆盖现有文件,若使用此选项,则会强制覆盖现有文件。 |
-t | 测试压缩包文件的完整性。 |
-v | 压缩或解压缩文件时,显示详细信息。 |
-数字 | 这个参数和 gzip 命令的作用一样,用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高 |
bunzip2 [选项] 源文件
bunzip2 命令选项及含义 | |
选项 | 含义 |
-k | 解压缩后,默认会删除原来的压缩文件。若要保留压缩文件,需使用此参数。 |
-f | 解压缩时,若输出的文件与现有文件同名时,默认不会覆盖现有的文件。若要覆盖,可使用此选项。 |
-v | 显示命令执行过程。 |
-L | 列出压缩文件内容。 |
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
———————————————
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
———————————————
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
———————————————
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
———————————————
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
文本处理cat [选项] 文件名
cat 文件1 文件2 > 文件3
cat 命令常用选项及含义 | |
选项 | 含义 |
-A | 相当于 -vET 选项的整合,用于列出所有隐藏符号; |
-E | 列出每行结尾的回车符 $; |
-n | 对输出的所有行进行编号; |
-b | 同 -n 不同,此选项表示只对非空行进行编号。 |
-T | 把 Tab 键 ^I 显示出来; |
-V | 列出特殊字符; |
-s | 当遇到有连续 2 行以上的空白行时,就替换为 1 行的空白行。 |
more [选项] 文件名
more 命令选项及含义 | |
选项 | 含义 |
-f | 计算行数时,以实际的行数,而不是自动换行过后的行数。 |
-p | 不以卷动的方式显示每一页,而是先清除屏幕后再显示内容。 |
-c | 跟 -p 选项相似,不同的是先显示内容再清除其他旧资料。 |
-s | 当遇到有连续两行以上的空白行时,就替换为一行的空白行。 |
-u | 不显示下引号(根据环境变量 TERM 指定的终端而有所不同)。 |
+n | 从第 n 行开始显示文件内容,n 代表数字。 |
-n | 一次显示的行数,n 代表数字。 |
head [选项] 文件名
head 命令常用选项及含义 | |
选项 | 含义 |
-n K | K表示行数,该选项用来显示文件前 K 行的内容; |
-c K | 这里的 K 表示字节数,该选项用来显示文件前 K 个字节的内容; |
-v | 显示文件名; |
less [选项] 文件名
less 命令选项及含义 | |
选项 | 选项含义 |
-N | 显示每行的行号。 |
-S | 行过长时将超出部分舍弃。 |
-e | 当文件显示结束后,自动离开。 |
-g | 只标志最后搜索到的关键同。 |
-Q | 不使用警告音。 |
-i | 忽略搜索时的大小写。 |
-m | 显示类似 more 命令的百分比。 |
-f | 强迫打开特殊文件,比如外围设备代号、目录和二进制文件。 |
-s | 显示连续空行为一行。 |
-b <缓冲区大小> | 设置缓冲区的大小。 |
-o <文件名> | 将 less 输出的内容保存到指定文件中。 |
-x <数字> | 将【Tab】键显示为规定的数字空格。 |
less 命令的作用和 more 十分类似&#xff0c;都用来浏览文本文件中的内容&#xff0c;不同之处在于&#xff0c;使用 more 命令浏览文件内容时&#xff0c;只能不断向后翻看&#xff0c;而使用 less 命令浏览&#xff0c;既可以向后翻看&#xff0c;也可以向前翻看。
tail [选项] 文件名
tail 命令选项及含义 | |
选项 | 含义 |
-n K | 这里的 K 指的是行数&#xff0c;该选项表示输出最后 K 行。 |
-c K | 这里的 K 指的是字节数&#xff0c;该选项表示输出文件最后 K 个字节的内容。 |
-f | 输出文件变化后新增加的数据。 |
从文件中找到包含指定信息的那些行。
正则表达式的通配符 | |
通配符 | 功能 |
c* | 将匹配 0 个&#xff08;即空白&#xff09;或多个字符 c&#xff08;c 为任一字符&#xff09;。 |
. | 将匹配任何一个字符&#xff0c;且只能是一个字符。 |
[xyz] | 匹配方括号中的任意一个字符。 |
[^xyz] | 匹配除方括号中字符外的所有字符。 |
^ | 锁定行的开头。 |
$ | 锁定行的结尾。 |
需要注意的是&#xff0c;在基本正则表达式中&#xff0c;如通配符 *、&#43;、{、|、( 和 )等&#xff0c;已经失去了它们原本的含义&#xff0c;而若要恢复它们原本的含义&#xff0c;则要在之前添加反斜杠 \&#xff0c;如 \*、\&#43;、\{、\|、\( 和 \)。
grep [选项] 模式 文件名
grep 命令常用选项及含义 | |
选项 | 含义 |
-c | 仅列出文件中包含模式的行数。 |
-i | 忽略模式中的字母大小写。 |
-l | 列出带有匹配行的文件名。 |
-n | 在每一行的最前面列出行号。 |
-v | 列出没有匹配模式的行。 |
-w | 把表达式当做一个完整的单字符来搜寻&#xff0c;忽略那些部分匹配的行。 |
useradd lamp
useradd命令常用选项 | |
选项 | 含义 |
-u UID | 手工指定用户的 UID&#xff0c;注意 UID 的范围&#xff08;不要小于 500&#xff09;。 |
-d 主目录 | 手工指定用户的主目录。主目录必须写绝对路径&#xff0c;而且如果需要手工指定主目录&#xff0c;则一定要注意权限&#xff1b; |
-c 用户说明 | 手工指定/etc/passwd文件中各用户信息中第 5 个字段的描述性内容&#xff0c;可随意配置&#xff1b; |
-g 组名 | 手工指定用户的初始组。一般以和用户名相同的组作为用户的初始组&#xff0c;在创建用户时会默认建立初始组。一旦手动指定&#xff0c;则系统将不会在创建此默认的初始组目录。 |
-G 组名 | 指定用户的附加组。我们把用户加入其他组&#xff0c;一般都使用附加组&#xff1b; |
-s shell | 手工指定用户的登录shell&#xff0c;默认是 /bin/bash&#xff1b; |
-e 曰期 | 指定用户的失效曰期&#xff0c;格式为 "YYYY-MM-DD"。也就是 /etc/shadow 文件的第八个字段&#xff1b; |
-o | 允许创建的用户的 UID 相同。例如&#xff0c;执行 "useradd -u 0 -o usertest" 命令建立用户 usertest&#xff0c;它的 UID 和 root 用户的 UID 相同&#xff0c;都是 0&#xff1b; |
-m | 建立用户时强制建立用户的家目录。在建立系统用户时&#xff0c;该选项是默认的&#xff1b; |
-r | 创建系统用户&#xff0c;也就是 UID 在 1~499 之间&#xff0c;供系统程序使用的用户。由于系统用户主要用于运行系统所需服务的权限配置&#xff0c;因此系统用户的创建默认不会创建主目录。 |
passwd [选项] 用户名
usermod [选项] 用户名
chage [选项] 用户名
userdel -r 用户名
-r 选项表示在删除用户的同时删除用户的家目录。
id 用户名
id 命令可以查询用户的UID、GID 和附加组的信息。
su [选项] 用户名
groupadd [选项] 组名
groupmod [选现] 组名
groupdel 组名
不能使用 groupdel 命令随意删除群组。此命令仅适用于删除那些 "不是任何用户初始组" 的群组&#xff0c;换句话说&#xff0c;如果有群组还是某用户的初始群组&#xff0c;则无法使用 groupdel 命令成功删除。
gpasswd 选项 组名
gpasswd命令各选项及其功能 | |
选项 | 功能 |
| 选项为空时&#xff0c;表示给群组设置密码&#xff0c;仅 root 用户可用。 |
-A ser1,... | 将群组的控制权交给 user1,... 等用户管理&#xff0c;也就是说&#xff0c;设置 user1,... 等用户为群组的管理员&#xff0c;仅 root 用户可用。 |
-M user1,... | 将 user1,... 加入到此群组中&#xff0c;仅 root 用户可用。 |
-r | 移除群组的密码&#xff0c;仅 root 用户可用。 |
-R | 让群组的密码失效&#xff0c;仅 root 用户可用。 |
-a user | 将 user 用户加入到群组中。 |
-d user | 将 user 用户从群组中移除。 |
从表 1 可以看到&#xff0c;除 root 可以管理群组外&#xff0c;可设置多个普通用户作为群组的管理员&#xff0c;但也只能做“将用户加入群组”和“将用户移出群组”的操作。
newgrp 组名
权限管理chgrp [-R] 所属组 文件名&#xff08;目录名&#xff09;
当只需要修改所有者时&#xff0c;可使用如下 chown 命令的基本格式&#xff1a;chown [-R] 所有者 文件或目录
如果需要同时更改所有者和所属组&#xff0c;chown 命令的基本格式为&#xff1a;chown [-R] 所有者:所属组 文件或目录
chmod [-R] 权限值 文件名
-R 选项表示连同子目录中的所有文件&#xff0c;也都修改设定的权限。
或者
chmod 命令中用 u、g、o 分别代表 3 种身份
例如&#xff1a;chmod u&#61;rwx,go&#61;rx bashrc chmod a&#43;w .bashrc
专门用来修改文件或目录的隐藏属性&#xff0c;只有 root 用户可以使用。
chattr [&#43;-&#61;] [属性] 文件或目录名
lsattr [选项] 文件或目录名
sudo 命令默认只有 root 用户可以运行。
sudo [-b] [-u 新使用者账号] 要执行的命令
df [选项] [目录或文件名]
du [选项] [目录或文件名]
mount [-l] 显示出系统中已挂载的设备信息&#xff0c;使用 -l 选项&#xff0c;会额外显示出卷标名称。
mount -a -a 选项的含义是自动检查 /etc/fstab 文件中有无疏漏被挂载的设备文件&#xff0c;如果有&#xff0c;则进行自动挂载操作。
mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
表mount 命令选项及功能 | |
选项 | 功能 |
rw/ro | 是否对挂载的文件系统拥有读写权限&#xff0c;rw 为默认值&#xff0c;表示拥有读写权限&#xff1b;ro 表示只读权限。 |
async/sync | 此文件系统是否使用同步写入&#xff08;sync&#xff09;或异步&#xff08;async&#xff09;的内存机制&#xff0c;默认为异步 async。 |
dev/nodev | 是否允许从该文件系统的 block 文件中提取数据&#xff0c;为了保证数据安装&#xff0c;默认是 nodev。 |
auto/noauto | 是否允许此文件系统被以 mount -a 的方式进行自动挂载&#xff0c;默认是 auto。 |
suid/nosuid | 设定文件系统是否拥有 SetUID 和 SetGID 权限&#xff0c;默认是拥有。 |
exec/noexec | 设定在文件系统中是否允许执行可执行文件&#xff0c;默认是允许。 |
user/nouser | 设定此文件系统是否允许让普通用户使用 mount 执行实现挂载&#xff0c;默认是不允许&#xff08;nouser&#xff09;&#xff0c;仅有 root 可以。 |
defaults | 定义默认值&#xff0c;相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。 |
remount | 重新挂载已挂载的文件系统&#xff0c;一般用于指定修改特殊权限。 |
umount 设备文件名或挂载点
当已经进入了挂载点&#xff0c;因此&#xff0c;如果要卸载某硬件设备&#xff0c;在执行 umount 命令之前&#xff0c;用户须退出挂载目录。
fsck [选项] 分区设备文件名
fsck命令常用选项及其功能 | |
选项 | 功能 |
-a | 自动修复文件系统&#xff0c;没有任何提示信息。 |
-r | 采取互动的修复模式&#xff0c;在修改文件前会进行询问&#xff0c;让用户得以确认并决定处理方式。 |
-A&#xff08;大写&#xff09; | 按照 /etc/fstab 配置文件的内容&#xff0c;检查文件内罗列的全部文件系统。 |
-t 文件系统类型 | 指定要检查的文件系统类型。 |
-C&#xff08;大写&#xff09; | 显示检查分区的进度条。 |
-f | 强制检测&#xff0c;一般 fsck 命令如果没有发现分区有问题&#xff0c;则是不会检测的。如果强制检测&#xff0c;那么不管是否发现问题&#xff0c;都会检测。 |
-y | 自动修复&#xff0c;和 -a 作用一致&#xff0c;不过有些文件系统只支持 -y。 |
fdisk 设备文件名
千万不要在当前的硬盘上尝试使用 fdisk&#xff0c;这会完整删除整个系统&#xff0c;一定要再找一块硬盘&#xff0c;或者使用虚拟机。
http://c.biancheng.net/linux_tutorial/14/