Linux常用命令汇总
一、Linux档案权限
在Linux系统中,不同的用户对系统中各类文件有着不同的访问权限,这也是Linux系统的优点之一,比如有一个文件,你希望A用户可以查看并修改,而B用户只能查看,C用户不能访问该文件,要想达到这样的目的,我们就可以通过设置文件的属性来实现。现在我们就看看是怎么设置的。
Linux系统中,文件的属性下图所示:
可以看到档案属性中又有那么多的rwx之类的属性,那么这究竟是什么意思呢?当你看完了下图你会有所了解。
现在,你肯定对档案的各种属性有所了解了,那么问题来了,我们该怎么修改这些属性呢?Linux为我们提供了现成的命令来修改这些属性:
chgrp:改变档案所属群组
chgrp -R dirname/filename …
参数 | 参数说明 |
---|---|
R | 进行递 ( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况。 |
chown:改变档案所属人
chown -R 帐号名称 档案或目录
chown -R 帐号名称:群组名称 档案或目录
参数 | 参数说明 |
---|---|
R | 进行递 ( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况。 |
chmod:改变档案的属性、SUID、等等的特性
修改档案属性分别有两种方法,一是数字类型改变档案权限,二是符号类型改变档案权限。下面我们就分别来看看这两种方法怎么使用。
(1)数字类型改变档案权限
学习之前,我们先了解一些东西,Linux 档案的基本属性就有九个,分别是 owner/group/others 组别的 read/write/excute 属性,先复习一下刚刚上面提到的数据:
-rwxrwxrwx
这十个属性是三个三个一组的!其中,我们可以使用数字来代表各个属性,各属性的对表如下:
r : 4
w : 2
x : 1
同一组 (owner/group/others) 的三个属性 (r/w/x) 是需要 加的,例如当属性为 [-rwxrwx—]则是:
owner = rwx = 4 + 2 + 1 = 7
group = rwx = 4 + 2 + 1 = 7
others = - - - = 0 + 0 + 0 = 0
所以等一下我们设定属性的变更时,该属性的数字就是 770 啦!变更属性的指令 chmod 的语法是这样的:
chmod 770 filename
(2)符号类型改变档案权限
从之前的介绍中我们可以发现,基本上就 个属性分别是user、group、others 三群!那么我们就可以藉由 u, g, o 来代表三群的属性!此外,a 则代表 all 亦即全部的三群!那么读写的属性就可以写成了 r, w, x!‘+’表示增加某个权限,‘-’表示删除某个权限,‘=’表示设定某个权限。也就是可以使用底下的方式来看:
chmod u=rwx,go=rx filename
chmod a-x filename
二、Linux档案与目录管理
1. 目录与路径
绝对路径:写法一定由根目录 / 写起,例如: /usr/share/doc 这个目录。
相对路径:写法不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man这就是相对路的写法啦!
相对路意指相对于目前工作目录的路径!
1.2 目录的相关操作: cd, pwd, mkdir, rmdir
一些比较特殊的目录:
目录 | 说明 |
---|---|
. | 代表此层目录 |
.. | 代表上一层目录 |
~ | 代表前一个工作目录 |
- | 代表『目前使用者身份』所在的家目录 |
~account | 代表 account 这个使用者的家目录 |
cd 变换目录
cd 相对路径或绝对路径
pwd 显示当前所在的目录路径
pwd -P
rmdir 删除空的目录
rmdir -p 目录名称
-P:连同上层空的目录也一起删除
mkdir 建立新目录
mkdir -mp 目录名称
参数 | 说明 |
---|---|
m | 设定档案的权限 |
p | 递归创建目录 |
2. 档案与目录管理
2.1 档案与目录的查看: ls
ls -aAdfFhilRS 目录名称
ls –color= none,auto,always 目录名称
ls –full-time 目录名称
参数 | 说明 |
---|---|
a | 全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来 |
A | 全部的档案,连同隐藏档,但不包括 . 与 .. 这两个目录,一起列出来~ |
d | 仅列出目录本身,而不是列出目录内的档案数据 |
f | 直接列出结果,而不进行排序 |
F | 根据档案、目录等信息,给予附加数据结构,例如:*:代表可执行档; /:代表目录; =:代表 socket 档案; :代表 FIFO 档案; |
h | 将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来 |
i | 列出 inode 位置,而非列出档案属性 |
l | 长数据串行出,包含档案的属性等等数据 |
n | 列出 UID 与 GID 而非使用者与群组的名称 |
r | 将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小; |
R | 连同子目录内容一起列出来 |
S | 以档案容量大小排序 |
t | 依时间排序 |
–color=never | 不要依据档案特性给予颜色显示 |
–color=always | 显示颜色 |
–color=auto | 让系统自行依据设定来判断是否给予颜色 |
–full-time | 以完整时间模式 (包 年、月、日、时、分) 输出 |
–time= atime,ctime | 输出 access 时间或 改变权限属性时间 (ctime),范例:而非内容变更时间 (modification time) |
2.2 复制、移动与删除: cp, mv, rm
cp 复制档案或目录
cp -adfilprsu 来源档(source) 目的 (destination)
cp options source1 source2 source3 …. directory
参数 | 说明 |
---|---|
a | 相当于 -pdr 的意思 |
d | 若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身 |
f | 为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制 |
i | 若目的档案(destination)已经存在时,在覆盖时会先询问 |
l | 进行硬式连结 (hard link) 的连结档建立,而非复制档案本身 |
p | 连同档案的属性一起复制过去,而非使用预设属性 |
r | 递归持续复制,用于目录的复制行为 |
s | 复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案 |
u | 若 destination 比 source 旧才更新 destination |
rm 删除档案或目录
rm -fir 档案或目录
参数 | 说明 |
---|---|
i | 互动模式,在删除前会询问使用者是否动作 |
r | 递归删除,最常用在目录的删除了 |
f | 就是 force 的意思,强制删除 |
mv 移动档案与目录或重命名
mv -fiu source destination
mv [options] source1 source2 source3 …. directory
参数 | 说明 |
---|---|
i | 若目标档案 (destination) 已经存在时,就会询问是否移动 |
u | 若目标档案已经存在,且 source 比较新,才会更新 (update) |
f | force 强制的意思,强制直接移动而不询问 |
3. 档案内容查阅:
3.1 直接查看档案内容: cat, tac, nl
cat 由第一行开始显示档案内容
cat -AEnTv filename
参数 | 说明 |
---|---|
A | 相当于 -vET 的整合参数,可列出一些特殊字符 |
E | 将结尾的断行字符$显示出来 |
n | 打印出行号 |
T | 将 tab 按键以 ^I 显示出来 |
v | 列出一些看不出来的特殊字符 |
tac 从最后一行开始显示
tac filename
nl 显示的时候,顺道输出行号
nl -bnw filename
参数 | 说明 |
---|---|
b | 指定行号指定的方式,主要有两种: |
-b a : 表示不论是否为空行,也同样列出行号; | |
-b t : 如果有空行,空的那一行不要列出行号; | |
n | 列出行号表示的方法 |
-n ln : 行号在屏幕的最左方显示; | |
-n rn : 行号在自己字段的最右方显示,且不加 0 ; | |
-n rz : 行号在自己字段的最右方显示,且加 0 ; | |
w | 行号字段的占用的位数 |
3.2 可翻页查看: more, less
more 一页一页翻动
more filename
操作 | 说明 |
---|---|
空格 | 代表向下翻一页 |
Enter | 代表向下翻一行 |
/字符串 | 代表在这个显示的内容当中,向下搜寻字符串 |
:f | 立刻显示出文件名以及目前显示的行数 |
q | 代表立刻离开more,不再显示该档案内容 |
less 一页一页翻动
less filename
操作 | 说明 |
---|---|
空格 | 代表向下翻一页 |
pagedown | 代表向下翻一行 |
pageup | 向上翻动一页 |
/字符串 | 向下搜寻字符串的功能 |
?字符串 | 向上搜寻字符串的功能 |
n | 重复前一个搜寻 |
N | 反向的重复前一个 |
q | 离开less这个程序 |
3.3 资料获取: head, tail
head 取出前面几行
head -n number filename
-n :后面接数字,代表显示几行的意思
tail 取出后面几行
tail -n number filename
-n:后面接数字,代表显示几行的意思
3.4 修改档案时间与建置新档: touch
touch 修改档案时间与建置新档
touch -acdmt filename
参数 | 说明 |
---|---|
a | 仅修订 access time |
c | 仅修改时间,而不建立档案 |
d | 后面可以接日期,也可以使用 - -date=”日期或时间” |
m | 仅修改 mtime |
t | 后面可以接时间,格式为 MMDDhhmm |
说明:
modification time (mtime):当该档案的内容数据变更时,就会更新这个时间! 内容数据 指的是档案的内容,而不是档案的属性喔!
status time (ctime):当该档案的状态 (status)改变时,就会更新这个时间,举例来说, 像是权限与属性被更改了,都会更新这个时间啊~
access time (atime):当该档案的内容被取用时,就会更新这个读取时间 (access)。 举例来说,我们使用 cat 去读取 ~/.bashrc
,就会更新 atime 了。
4.2 档案属性: chattr, lsattr
chattr 设定档案隐藏属性
chattr +-= ASacdistu 档案或目录名称
参数 | 说明 |
---|---|
+ | 增加某一个特殊参数,其它原本存在参数则不动 |
- | 移除某一个特殊参数,其它原本存在参数则不动 |
= | 设定,且仅有后面接的参数 |
A | 当设定了 A 这个属性时,这个档案(或目录)的存取时间 atime (access) 将不可被修改,可避免例如手提式计算机容易有磁盘 I/O 错误的情况发生 |
S | 这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中! 可以有效的避免数据流失 |
a | 当设定 a 之后,这个档案将只能增加数据,而不能 除,只有 root 才能设定这个属性 |
c | 这个属性设定之后,将会自动的将此档案『压缩』,在读取的时候将会自动解压缩, 但是在储存的时候,将会先进行压缩后再储存(看来对于大档案似乎很有用的!) |
d | 当 dump(备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)不具有 dump 功能 |
i | 让一个档案不能被删除、改名、设定连结也无法写入或新增资料 |
s | 当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在journal 中但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效! |
t | 当档案设定了 s 参数时,他将会被完全的移除出这个硬盘空间 |
u | 与 s 相反的,当使用 u 来设定档案时,则数据内容其实还存在磁盘中,可以用来 undeletion. |
lsattr 显示档案隐藏属性
lsattr -aR 档案或目录
参数 | 说明 |
---|---|
a | 将隐藏文件的属性显示出来 |
R | 连同子目录的数据也一并列出来 |
4.1 档案预设权限:umask
umask 修改创建档案与目录的预设权限
umask [-S]
-S :以符号类型的方式来显示权限
umask 002 拿掉其他用户的写权限
umask 200 拿掉拥有者的写权限
umask 020 拿掉同组用户的写权限
三、Linux档案的压缩与打包
compress
compress -dcr 档案或目录
参数 | 说明 |
---|---|
d | 用来解压缩的参数 |
r | 可以连同目录下的档案也同时给予压缩 |
c | 将压缩数据输出成为 standard output (输出到屏幕) |
gzip, zcat
gzip -cdt# filename
zcat filename.gz
参数 | 说明 |
---|---|
c | 将压缩的数据输出到屏幕上,可透过数据流重导向来处理 |
d | 解压缩的参数 |
t | 可以用来检验一个压缩档的一致性,看看档案有无错误 |
# | 压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6 |
bzip2, bzcat
bzip2 -cdz filename
bzcat filename.bz2
参数 | 说明 |
---|---|
c | 将压缩的数据输出到屏幕上,可透过数据流重导向来处理 |
d | 解压缩的参数 |
z | 压缩的参数 |
# | 与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快 |
tar
tar -cxtzjvfpPN 输出档案(目录)文件名.tar 被打包(目录)文件名
参数 | 说明 |
---|---|
c | 建立一个压缩档案的参数指令(create 的意思) |
x | 解开一个压缩档案的参数指令 |
t | 查看 tarfile 里面的档案 |
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! | |
因为不可能同时压缩与解压缩 | |
z | 是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩 |
j | 是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩 |
v | 压缩的过程中显示档案!这个常用,但不建议用在背 执行过程! |
f | 使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数! |
p | 使用原档案的原来属性(属性不会依据使用者而变) |
P | 可以使用绝对路 来压缩 |
N | 比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的档案中! |
dd 可以用来备份整个partition 或 整个disk
dd if=”input_file” of=”outptu_file” bs=”block_size” count=”number”
参数 | 说明 |
---|---|
if | 就是 input file ,也可以是装置,如:partition、整颗disk |
of | 就是 output file ,也可以是装置 |
bs | 规划的一个 block 的大小,如果没有设定时,预设是 512 bytes |
count | 多少个 bs 的意思 |
其他章节请看Linux常用命令汇总(二)