文件权限与目录管理
-
ls
:查看文件的指令,重点在于显示文件名及相关属性。可以使用ll
或者ls -l
来显示一个文件的属性以及文件所属的用户和组;而ls -al
则表示列出所有的文件的权限与属性(包括隐藏文件) -
chgrp [-R] 组名 文件名
:改变文件所属群组,-R
表示递归更改,即在更改某个目录文件的属组时,-R
参数会将该目录下的所有文件的属组都更改 -
chown [-R] 所有者 文件名
:改变文件拥有者,还可以顺便直接修改群组的名称:chown [-R] 所有者:组名 文件名
-
chmod
:改变文件的权限,权限的设定方法有两种,数字或者符号。Linux 文件的基本权限有 9 个,分别是 owner/group/others 三种身份各自的 read/write/execute(r/w/x) 权限,各个权限的分数为
r: 4
w: 2
x:1
例如当权限为-rwxrwx---
时,对应的分数为
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others = — = 0
那么相应的变更权限的命令则为chmod [-R] 770 文件名
符号设定则由 u, g, o 来分别代表 owner/group/others 的权限,此外 a 则代表全部的身份,利用“算术运算” +/-/= 来进行权限的增删改。例如我们要设定一个文件的权限成为-rwxr-xr-x
时,相应的命令为
chmod u=rwx,go=rx 文件名
如果现在我们只想增加某个文件的每个人均可写入的权限,那么就可以使用
chmod a+w 文件名
-
cd 相对路径或绝对路径
:切换工作目录 -
mkdir [-mp] 目录名称
:建立新目录。-p
参数可以帮助我们递归创建多层目录 -
pwd [-P]
:显示目前所在目录。-P
参数显示出实际的目录,而非链接路径 -
rmdir [-p] 目录名称
:删除空目录,-p
参数可以一次删除多级空目录 -
cp 来源档 目标档
:复制文件或目录 -
rm [-fir] 文件或目录
移除文件或目录。-f
忽略不存在的文件,不会出现警告信息;-i
在删除前或询问使用者是否确认删除;-r
递归删除 -
mv [-fi] 来源档 目标档
:移动文件与目录。-f
表示如果目标文件已经存在,不会询问而是直接覆盖;-i
则会在目标文件已经存在时询问是否覆盖
-
basename 路径
:取得路径的文件名 -
dirname 路径
:取得路径的目录名称
-
cat
:由第一行开始显示文件内容 -
tac
:从最后一行开始显示 -
nl
:显示的时候输出行号 -
more
:一页一页的显示文件内容 -
less
:与more
相似,但可以向前翻页 -
head
:只看头几行 -
tail
:只看最后几行
-
touch [-acdmt] 文件
:修改文件时间或创建空文件
每个文件在 Linux 下有 3 个主要的变动时间:
modification time(mtime):当该文件的内容数据变更时,就会更新该时间;
status time(ctime):当该文件的状态,即权限或者属性改变时,就会更新该时间;
access time(atime):当该文件的内容被取用(文件读取命令)时,就会更新该时间
-a
:仅修改 atime;
-c
:仅修改文件的时间,若该文件不存在则不建立新文件;
-d
:后面可接任意日期而不是当前日期;
-m
:仅修改 mtime
-t
:后面可接任意时间而不是当前时间,格式为 [YYYYMMDDhhmm]
用户和用户组管理
useradd 用户名
:添加新的用户账号userdel 用户名
:删除账号passwd 用户名
:指定和修改用户口令
groupadd 用户组
:增加一个新的用户组groupdel 用户组
:删除一个已有的用户组groupmod 用户组
:修改用户组的属性。-g GID
为用户组指定新的组识别号;-n
将用户组的名字改为新名字
磁盘管理
df [-ahikHTm] 目录或文件名
:列出文件系统的整体磁盘使用量
-a
:列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k
:以 KBytes 的容量显示各文件系统;
-m
:以 MBytes 的容量显示各文件系统;
-h
:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H
:以 M=1000K 取代 M=1024K 的进位方式;
-T
:连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;
-i
:不用磁盘容量,而以 inode 的数量来显示
du [-ahskm] 目录或文件名
:评估文件系统的磁盘使用量
-a
:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已;
-h
:以人们较易读的容量格式 (G/M) 显示;
-s
:列出总量而已,而不列出每个各别的目录占用容量;
-S
:不包括子目录下的总计,与 -s 有点差别。
-k
:以 KBytes 列出容量显示;
-m
:以 MBytes 列出容量显示;
fdisk [-l] 装置名称
:列出分区信息。-l
表示输出后面接的装置所有的分区内容。若仅有fdisk -l
时,则会把整个系统内能够搜寻到的装置的分区都列出来mkfs [-t 文件系统格式] 装置文件名
:文件系统格式化fsck [-t 文件系统] [-ACay] 装置名称
:检查和维护不一致的文件系统mount 装置文件名 挂载点
:磁盘挂载umount 装置文件名或挂载点
:磁盘卸载
文件系统的压缩与打包
gzip [-cdtv#] 文件名
-c
:将压缩的数据输出到屏幕上,可透过数据流重导向来处理;
-d
:解压缩的参数;
-t
:可以用来检验一个压缩文件的一致性,看看文件有无错误;
-v
:可以显示出原文件/压缩文件案的压缩比等信息;
-#
:# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6
zcat/zmore/zless
:对应于cat/more/less
的方式来读取纯文本档被压缩后的压缩文件
bzip2 [-cdkzv#] 文件名
-c
:将压缩的过程产生的数据输出到屏幕上!
-d
:解压缩的参数
-k
:保留源文件,而不会删除原始的文件!
-z
:压缩的参数 (默认值,可以不加)
-v
:可以显示出原文件/压缩文件案的压缩比等信息;
-#
:与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
bzcat/bzmore/bzless
xz [-dtlkc#]
-d
:解压缩
-t
:测试压缩文件的完整性,看有没有错误
-l
:列出压缩文件的相关信息
-k
:保留原本的文件不删除
-c
:同样的,将数据由屏幕上输出
-#
:同样的,压缩比参数
xzcat/xzmore/xzless
tar
:将多个目录或文件打包成一个大文件
压缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
-c
:建立打包文件,可搭配 -v 来察看过程中被打包的档名 (filename);
-t
:察看打包文件的内容含有哪些档名;
-x
:解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开,特别留意的是, -c, -t, -x 不可同时出现在一串指令列中;
-z
:透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
-j
:透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
-J
:透过 xz 的支持进行压缩/解压缩:此时档名最好为 *.tar.xz,特别留意, -z, -j, -J 不可以同时出现在一串指令列中;
-v
:在压缩/解压缩的过程中,将正在处理的文件名显示出来;
-f filename
:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项;
-C 目录
:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
grep
命令用于查找文件里符合条件的字符串或正则表达式。如果发现某文件的内容符合所指定的范本样式,预设 grep
指令会把含有范本样式的那一列显示出来。
语法:
grep [options] pattern [files]
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
-i
:忽略大小写进行匹配。
-v
:反向查找,只打印不匹配的行。
-n
:显示匹配行的行号。
-r
:递归查找子目录中的文件。
-l
:只打印匹配的文件名。
-c
:只打印匹配的行数。
Vim 编辑器
Vim 共分为 3 种模式,分别是一般模式、输入模式和命令模式,三种模式的切换如下图所示:
vim 键盘图: