一、磁盘与档案系统管理
1.查看磁盘与目录容量
df -ahikHTm 目录或文件名
参数 | 说明 |
---|---|
a | 列出所有的档案系统,包括系统特有的 /proc 等档案系统 |
k | 以 KBytes 的容量显示各档案系统 |
m | 以 MBytes 的容量显示各档案系统 |
h | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示 |
H | 以 M=1000K 取代 M=1024K 的进位方式 |
T | 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出 |
i | 不用硬盘容量,而以 inode 的数量来显示 |
- Filesystem:代表该档案系统是在那个 partition 啊,所以列出装置名称;
- 1k-blocks:说明底下的数字单位是 1KB !可利用 -h 或 -m 来改变容量;
- Used:顾名思义,就是使用掉的硬盘空间啦!
- Available:也就是剩下的磁盘空间大小;
- Use%:就是磁盘的使用率啦!如果使用率高达 90% 以上时, 最好需要注意一下了,免得容量不足造成系统问题喔! (例如最容易被 爆的 /var/spool/mail 这个放置 件的磁盘)
- Mounted on:就是磁盘挂载的目录所在啦!(挂载点啦!)
du -ahskm 档案或目录名称
参数 | 说明 |
---|---|
a | 列出所有的档案与目录容量,因为预设仅统计目录底下的档案量而已 |
h | 以人们较易读的容量格式 (G/M) 显示 |
s | 列出总量而已,而不列出每个各别的目录占用容量 |
k | 以 KBytes 列出容量显示 |
m | 以 MBytes 列出容量显示 |
2.连结档介绍
连结档有点类似 Windows 底下的快捷方式!也就是很多的连结档案( link file ) 其实都指向同一个来源档案( source file )!
- Hard Link (硬式连结或实际连结),由于 hard link 是在同一个 partition 上面进行数据关连的建立,所以 hard link 是有限制的:不能跨越Filesystem;不能 link 目录。
Symbolic Link (符号连结,亦即是快 方式)
ln -sf 来源文件 目标文件
参数 | 说明 |
---|---|
s | 如果 ln 不加任何参数就进行连结,那就是 hard link,至于 -s 就是 symbolic link |
f | 如果 目标文件 存在时,就主动的将目标文件直接移除后再建立! |
3.磁盘分割
fdisk -l 装置名称
参数 | 说明 |
---|---|
l | 输出后面接的装置所有的 partition 内容。若仅有 fdisk -l 时,则系统将会 整个系统内能够搜寻到的装置的 partition 均列出来。 |
4.磁盘格式化
mke2fs -bicLj 装置名称
参数 | 说明 |
---|---|
b | 可以设定每个 block 的大小,目前支持 1024, 2048, 4096 bytes 三种 |
i | 多少容量给予一个 inode |
c | 查磁盘错误,仅下达一次 -c 时,会进行快速读取测试 |
如果下达两次 -c -c 的话,会测试读写(read-write),会很慢 | |
L | 后面可以接表头名称 (Label) |
j | 本来 mke2fs 是 EXT2 ,加上 -j 后,会主动加入 journal 而成为 EXT3 |
5.磁盘检验
fsck -AtCary 装置名称
参数 | 说明 |
---|---|
t | fsck 可以检查好几种不同的 filesystem ,而 fsck 只是一支综合程序而已 |
A | 依据 /etc/fstab 的内容,将所有的装置都扫描一次 (通常开机过程中就会执行此一指令) |
a | 自动修复检查到的有问题的扇区 |
r | 一定要让使用者决定是否需要修复 |
y | 与 -a 类似,但是某些 filesystem 仅支持 -y 这个参数 |
C | 可以在检验的过程当中,使用一个长条图来显示目前的进度 |
f | 强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入 细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰! |
badblocks - svw 装置名称
参数 | 说明 |
---|---|
s | 在屏幕上列出进度 |
v | 可以在屏幕上看到进度 |
w | 使用写入的方式来测试,建议不要使用此一参数,尤其是待检查的装置已有档案时! |
6.磁盘挂载与卸载
mount -a
mount -tonL 装置名称代号 挂载点
参数 | 说明 |
---|---|
a | 依照 /etc/fstab 的内容将所有相关的磁盘都挂上来 |
n | 一般来说,当我们挂载档案系统到Linux上头时,Linux 会主动的将目前的 partition与 |
filesystem 还有对应的挂载点,都记录到 /etc/mtab那个档案中。不过,有些时刻 | |
(例如不正常关机导致一些问题,而进入单人模式)系统无法写入 /etc/mtab 时,就 | |
可以加上 -n 这个参数来略过写入 mtab 的动作。 | |
L | 系统除了利用装置名称代号 (例如 /dev/hda1) 之外,还可以利用 partition的表头名称 |
( Label ) 来进行挂载喔!所以,最好为您的 partition 取一个 在您系统当中独一无二的名称吧 | |
t | 您的 Linux 支持的档案格式,就写在这里吧!举例来说,我们在上面建立 /dev/hdb5 是 ext3 档案系统,那么要挂载时,就得要加上 -t ext3 来告知系统,用 ext3 的档案格式来挂载该 partition 呢! |
o | 后面可以接一些挂载时,额外加上的参数喔!比方说账号、密码、读写权限等 |
umount 装置代号或挂载点 ——卸载
二、账号与身份管理
1.新增与移除使用者
useradd -u UID -g initial_group -G other_group - Mm -c 说明 -d home -s shell / username
参数 | 说明 |
---|---|
u | 后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个 号; |
g | 后面接的那个群组名称就是我们上面提到的 initial group .该 group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。 |
G | 后面接的群组名称则是这个账号还可以支持的群组。这个参数会修改 /etc/group 内的相关资料! |
M | 强制!不要建立使用者家目录 |
m | 强制!要建立使用者家目录! |
c | 可以随便我们设定 |
d | 指定某个目录成为家目录,而不要使用默认值; |
r | 建立一个系统的账号,这个账号的 UID 会有限制 (/etc/login.defs) |
s | 后面接一个 shell ,预设是 /bin/bash |
修改密码
passwd [useraccount ]
root用户可以修改任意用户密码而且密码规则没有约束,普通用户只能修改自己的密码而且要符合规范。
usermod -cdegGlsuLU username
参数 | 说明 |
---|---|
c | 后面接 号的说明,即 /etc/passwd 第五行的说明 ,可以加入一些账号的说明。 |
d | 后面接账号的家目录,即修改 /etc/passwd 的第六栏 ; |
e | 后面接日期,格式是YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据 |
g | 后面接 group name,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段 |
G | 后面接 group name,修改这个使用者能够支持的群组,修改的是 /etc/group |
l | 后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏 |
s | 后面接 Shell 的实际档案,例如 /bin/bash 或 /bin/csh 等等 |
u | 后面接 UID 数字!即 /etc/passwd 第三栏的资料; |
L | 暂时将使用者的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码栏。 |
U | 将 /etc/shadow 密码栏的!拿掉,解冻! |
删除用户
userdel -r username
-r :连同使用者的家目录也一起 除
2.使用者功能
chsh -ls
参数 | 说明 |
---|---|
l | 列出目前系统上面可用的 shell ,其实就是 /etc/shells 的内容 |
s | 设定修改自己的 Shell |
chfn -foph
参数 | 说明 |
---|---|
f | 后面接完整的大名 |
o | 您办公室房间的号码 |
p | 办公室的电话号码 |
h | 家里的电话号码 |
3.新增与移除群组
groupadd -g gid -r groupname
参数 | 说明 |
---|---|
g | 后面接某个特定的 GID ,用来直接给予某个 GID |
r | 建立系统群组.与 /etc/login.defs 内的 GID_MIN 有关。 |
groupmod -g gid -n group_name
参数 | 说明 |
---|---|
g | 修改既有的 GID 数字 |
n | 修改既有的群组名称 |
关于系统管理员(root)做的动作:
gpasswd groupname
gpasswd -A [user1,…] -M [user3,user4…] groupname
gpasswd -rR groupname
参数 | 说明 |
---|---|
A | 将 groupname 的主控权交由后面的使用者管理(该群组的管理员) |
M | 将某些账号加入这个群组当中 |
r | 将 groupname 的密码移除 |
R | 让 groupname 的密码失效,所以 newgrp 就不能使用了! |
关于群组管理员(Group administrator)做的动作:
gpasswd -ad username groupname
参数 | 说明 |
---|---|
a | 将某位使用者加入到 groupname 这个群组当中! |
d | 将某位使用者移除出 groupname 这个群组当中。 |
4.密码管理
passwd -lunxwS username
参数 | 说明 |
---|---|
l | 将 username 这个账号的密码锁住(lock),在 /etc/shadow 内的密码栏修订 |
u | 将 -l 的 lock 解开 |
n | 后面接天数 (数字) ,最短天数;亦即是 /etc/shadow 内的第四栏 |
x | 后面接天数 (数字) ,最长天数;亦即是 /etc/shadow 内的第五栏 |
w | 后面接天数 (数字) ,警告天数;亦即是 /etc/shadow 内的第六栏 |
S | 显示目前这个 username 的相关信息 |
5.使用者身份切换
su -lcm username
参数 | 说明 |
---|---|
- | 如果执行 su - 时,表示该使用者想要变换身份成为 root ,且使用 root 的环境设定参数档,如 /root/.bash_profile 等等。 |
l | 后面可以接使用者,例如 su -l dmtsai ,这个 -l 好处是,可使用 变换身份者他的所有相关环境设定档。 |
c | 仅进行一次指令 |
m | -m 与 -p 是一样的,表示『使用目前的环境设定,而不重新读取新使用者的设定档。』 |
6.查询使用者
w, who, last, lastlog
三、管线命令
1.截取命令
cut -d’分割字符’ -f fields
cut -c 字符区间
参数 | 说明 |
---|---|
d | 后面接分割字符。与 -f 一起使用; |
f | 依据 -d 的分割字符将一段讯息分割成为数段,用 -f 取出第几段的意思; |
c | 以字符 (characters) 的单位取出固定字符区间; |
grep -acinv ‘搜寻字符串 ’ filename
参数 | 说明 |
---|---|
a | 将 binary 档案以 text 档案的方式查找数据 |
c | 计算找到 ‘搜寻字符串’ 的次数 |
i | 忽略大小写的不同,所以大小写视为相同 |
n | 顺便输出行号 |
v | 反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行! |
2.排序命令
sort [-fbMnrtuk] [file or stdin ]
参数 | 说明 |
---|---|
f | 忽略大小写的差异,例如 A 与 a 视为编码相同; |
b | 忽略最前面的空格符部分; |
M | 以月份的名字来排序,例如 JAN, DEC 等等的排序方法; |
n | 使用『纯数字』进行排序(预设是以文字型态来排序的); |
r | 反向排序; |
u | 就是 uniq ,相同的数据中,仅出现一行代表; |
t | 分割符,预设是 tab 键; |
k | 以那个区间 (field) 来进行排序的意思 |
uniq [-ic]
参数 | 说明 |
---|---|
i | 忽略大小写字符的不同; |
c | 进行计数 |
wc -lwm
参数 | 说明 |
---|---|
l | 仅列出行 |
w | 仅列出多少字(英文单字) |
m | 多少字符 |
3.双向重导向
tee -a file
参数 | 说明 |
---|---|
a | 以 加 (append) 的方式,将数据加入 file 当中! |
4.分割命令
split -bl file PREFIX
参数 | 说明 |
---|---|
b | 后面可接欲分割成的档案大小,可加单位,例如 b, k, m 等; |
l | 以行数来进行分割 |