linux命令

文件和目录操作命令(12 个)

ls tree pwd mkdir rmdir cd touch cp mv rm ln find

 

ls:档案与目录的检规:

ls [-aAdfFhilnrRSt] 目录名称

ls [--color={never,auto,always}] 目录名称

ls [--full-time] 目录名称

选项与参数:

-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)

 

 

tree:以树状图列出目录的内容
语  法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
补充说明:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。
参  数:
  -a   显示所有文件和目录。
  -A   使用ASNI绘图字符显示树状图而非以ASCII字符组合。
  -C   在文件和目录清单加上色彩,便于区分各种类型。
  -d   显示目录名称而非内容。
  -D   列出文件或目录的更改时间。
  -f   在每个文件或目录之前,显示完整的相对路径名称。
  -F   在执行文件,目录,Socket,符号连接,管道名称,各自加上"*","/","=","@","|"号。
  -g   列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
  -i   不以阶梯状列出文件或目录名称。
  -I<范本样式>   不显示符合范本样式的文件或目录名称。
  -l   如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
  -n   不在文件和目录清单加上色彩。
  -N   直接列出文件和目录名称,包括控制字符。
  -p   列出权限标示。
  -P<范本样式>   只显示符合范本样式的文件或目录名称。
  -q   用"?"号取代控制字符,列出文件和目录名称。
  -s   列出文件或目录大小。
  -t   用文件和目录的更改时间排序。
  -u   列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
  -x   将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

 

pwd :显示目前所在的目录

    -P :显示出确实癿路径,而非使用链接 (link) 路径

mkdir :建立新目录

mkdir [-mp] 目录名称

选项与参数:

-m :配置文件案的权限喔!直接设定,不需要看预设权限 (umask) 癿脸色~

-p :帮助你直接将所需要的目录(包括上层目录)递归建立起来!

 

rmdir:删除新目录

rmdir [-p] 目录名称

选项不参数:

-p :连同上层『空的』目录也一起删除

 

 

cd :变换目录

cd [相对路径戒绝对路径]

   

 

touch:修改档案时间或建置新档

touch [-acdmt] 档案

选项不参数:

-a :仅修订 access time;

-c :仅修改档案的间,若该档案不存则不建新档案;

-d :后面可以接欲修订的期而不目前的期,也可以使用 --date="日期或时间

-m :仅修改 mtime ;

-t :后面可以接欲修订癿时间而丌用目前癿时间,格式为[YYMMDDhhmm]

 

cp :制档案或目录

cp[-adfilprsu] 来源文件(source) 目标文件(desination)

选项不参数:

-a :相当于 -pdr 得意思,至于 pdr 请参考下列说明;(常用)

-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;

-f :为强制(force)的意思,若目标档案已经存在且无法开启,则移除后再尝试一次;

-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

-l :进行硬式连结(hardlink)的连结档建立,而非复制档案本身;

-p :连同档案的属性一起复制过去,而非使用默认属性(备份常用);

-r :递归持续复制,用亍目录的复制行为;(常用)

-s :复制成为符号链接文件(symbolic link),亦即『快捷方式』档案;

-u :若destination 比 source 旧才更新destination !

最后需要注意的是,如果来源档有两个以上,则最后一个目的文件一定要是『目

录』才行!

 

mv :移动档案与目录,或更名

mv [-fiu] sourcedestination

mv [options] source1source2 source3 .... directory

选项不参数:

-f :force 强制的意思,如果目标档案已经存在,不会询问而直接覆盖;

-i :若目标档案(destination) 已经存在时,就会询问是否覆盖!

-u :若目标档案已经存在,且source 比较新,才会更新 (update)

 

rm :移除档案或目录

rm [-fir] 档案或目录

选项不参数:

-f :就是 force 的意忠,忽略不存在的档案,不会出现警告讯息;

-i :互动模式,在删除前会询问使用者是否动作

-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

 

ln:实体链接不符号链接

ln [-sf] 来源文件 目标文件

选项与参数:

-s :如果不加任何参数就进行连结,那就是 hard link,至于 -s 就是symbolic

link

-f :如果 目标文件 存在时,就主动的将目标文件直接移除后再建立!

 

find:文件查找

find命令的参数;

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print
find命令将匹配的文件输出到标准输出。
-exec
find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }\;之间的空格。
-ok
-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

#-print将查找到的文件输出到标准输出
#-exec   command   {} \;      —–
将查到的文件执行command操作,{} \;之间有空格
#-ok
-exec相同,只不过在操作前要询用户

例:find . -name .svn | xargs rm -rf

 

●文件编辑(vi vimnano)

 

vi 的使用:

基本上vi 共分为三种模式,分别是『一般模式』、『编辑模式』与『指令列命令模式』。 这三种模式的作用分别是:

  一般模式:

以vi 打开一个档案就直接进入"一般模式"了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理你的文件数据。

  编辑模式:

在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的!要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

  指令列命令模式:

在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!

 

在一般模式中按下,我们要存档了,存盘并离开的指令很简单,输入『:wq』即可存档离开! (注意了,按下 : 该光标就会移动到最底下一行去!)

如果你的档案权限不对,例如为 -r--r--r-- 时,那么可能会无法写入,此时可以使用『强制写入』得方式吗?可以!使用『 :wq! 』 多加一个惊叹号即可!不过,需要特别注意呦!那个是在『你的权限可以改变』的情况下才能成立的!

 

:w:vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。

 

:w newfile 

此时vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息: File exists (use ! to override) ,此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令

 

:w! newfile:否则可选择另外的文件名来保存当前文件。

:q  系统退出Vi返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显示窗口的最末行显示如下信息:No write since last change (use ! to overrides) 提示用户该文件被修改后没有保存,然后Vi并不退出,继续等待用户命令。若用户就是不想保存被修改后的文件而要强行退出Vi时,可使用命令

:q!   Vi放弃所作修改而直接退到shell下。

:wq  Vi将先保存文件,然后退出Vi返回到shell。

:x   该命令的功能同命令模式下的ZZ命令功能相同。

 

vim:

vim 的三种模式只有一般模式可以与编辑、指令列模式切换,编辑模式与指令列模式之间并不能切换的!

一般模式可用的按钮说明,光标移劢、复制贴上、搜寻取代等

 

 

一般模式切换到编辑模式的可用的按钮说明:

 

一般模式切换到指令列模式的可用的按钮说明

 

特别注意,在 vi 中,『数字』是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前~那我要向下移动20 行呢?那就是『20j』或者是『20↓』即可。

 

nano:超简单文书编辑器

nanotext.txt

# 不管text.txt存不存在都没有关系!存在就开启旧档,不存在就开启新档

  [ctrl]-G:取得联机帮助(help),很有用的!

  [ctrl]-X:离开 naon 软件,若有修改过档案会提示是否需要储存喔!

  [ctrl]-O:储存档案,若你有权限的话就能够储存档案了;

  [ctrl]-R:从其他档案读入资料,可以将某个档案的内容贴在本档案中;

  [ctrl]-W:搜寻字符串,这个也是径有帮助的指令喔!

  [ctrl]-C:说明目前光标所在处的行数与列数等信息;

  [ctrl]-_:可以直接输入行号,让光标快速移动到该行;

  [alt]-Y:校正语法功能开启或关闭(单击开、再单击关)

  [alt]-M:可以支持鼠标来移动光标的功能

 


●查看文件及内容处理命令(21 个)

cat tac more less head tail cut split paste sort uniq wc iconv dos2unix file diff vimd ff chattr lsattr rev grep

 

cat:直接检规档案内容(由第一行开始显示档案内容)

cat [-AbEnTv]

选项不参数:

-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!

-E :将结尾的断行字符 $ 显示出来;

-n :打印出行号,连同空白行也会有行号,不 -b 的选项不同;

-T :将 [tab] 按键以 ^I 显示出来;

-v :列出一些看不出来的特殊字符

 

tac:直接检规档案内容(从最后一行开始显示,可以看出 tac 是 cat 的倒着写!)

 

more:一页一页癿显示档案内容

 

less 与more类似,但是比 more 更好的是,他可以往前翻页!

less可以使用【pageup】和【pagedown】键进行前翻页和后翻页,这样看起来更方便

 

head:取出前面几行

head [-n number] 档案

选项与参数:

-n :后面接数字,代表显示几行的意思


tail:取出后面几行

tail [-n number] 档案

选项与参数:

-n :后面接数字,代表显示几行的意思

-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c 才会结束 tail 的侦测

 

cut:撷取命令 

cut -d'分隔字符' -ffields <==用亍有特定分隔字符

cut -c 字符区间 <==用亍排列整齐的讯息

 

选项不参数:

-d :后面接分隔字符。与 -f 一起使用;

-f :依据 -d 的分隔字符将一段讯息分割成为数段,用 -f 取出第几段的意思;

-c :以字符(characters) 的单位取出固定字符区间;

 

grep:刚刚的 cut是将一行讯息当中,取出某部分我们想要的,而 grep 则是分析一行讯息, 若当中有我们所需要的信息,就将该行拿出来.

grep [-acinv] [--color=auto] '搜寻字符串' filename

选项与参数:

-a :将 binary 档案以 text 档案的方式搜寻数据

-c :计算找到'搜寻字符串' 的次数

-i :忽略大小写的不同,所以大小写规为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

--color=auto :可以将找刡癿关键词部分加上颜色癿显示喔!

 

split:分割命令

split[-bl] file PREFIX

选项与参数:

-b :后面可接欲分割成的档案大小,可加单位,例如 b, k, m等;

-l :以行数来进行分割。

PREFIX :代表前导符的意思,可作为分割档案的前导文字

 

字符转换命令: paste ,tr, col, join,  expand

 

paste: 这个 paste 就要比join 简单多了!相对亍 join 必须要比对两个档案的数据相关性, paste 就直接『将两行贴在一起,且中间以 [tab] 键隔开』而已!简单的使用方法:

paste[-d] file1 file2

选项与参数:

-d :后面可以接分隔字符。预设是以[tab] 来分隔的!

- :如果 file 部分写成 - ,表示来自 standard input 的资料的意思。

 

tr :可以用来删除一段讯息当中的文字,或者是进行文字讯息的替换!

tr [-ds] SET1 ...

选项与参数:

-d :删除讯息当中的 SET1 这个字符串;

-s :取代掉重复的字符!

 

col[-xb]

选项与参数:

-x :将 tab 键转换成对等的空格键

-b :在文字内有反斜杠 (/) 时,仅保留反斜杠最后接的那个字符

 

join:看字面上的意义 (加入/参加) 就可以知道,他是在处理两个档案之间的数据,而且,主要是在处理『两个档案当中,有 "相同数据" 的那一行,才将他加在一起』的意思。

join [-ti12] file1 file2

选项与参数:

-t :join 默讣以空格符分隔数据,并且比对『第一个字段』的数据,

如果两个档案相同,则将两笔数据联成一行,且第一个字段放在第一个!

-i :忽略大小写的差异;

-1 :这个是数字的1 ,代表『第一个档案要用那个字段来分析』的意思;

-2 :代表『第二个档案要用那个字段来分析』的意思

 

expand: 这玩意儿就是在将 [tab] 按键转成空格键啦~可以这样玩

选项不参数:

-t :后面可以接数字。一般来说,一个tab 按键可以用 8 个空格键取代。

我们也可以自行定义一个 [tab] 按键代表多少个字符呢!

 

排序: sort 

sort: sort 是很有趣的指令,他可以帮我们进行排序,而且可以依据不同的数据型态来排序喔! 例如数字与文字的排序就不一样。此外,排序的字符与语系的编码有关,因此,如果您需要排序时,建议使用LANG=C 来让语系统一,数据排序比较好一些.

sort [-fbMnrtuk] [file or stdin]

选项与参数:

-f :忽略大小写的差异,例如 A 与a 视为编码相同;

-b :忽略最前面的空格符部分;

-M :以月份的名字来排序,例如JAN, DEC 等等的排序方法;

-n :使用『纯数字』进行排序(默认是以文字型态来排序的);

r :反向排序;

-u :就是 uniq ,相同的数据中,仅出现一行代表;

-t :分隔符,预设是用 [tab] 键来分隔;

-k :以那个区间 (field) 来进行排序的意思

 

uniq:排序后去重

uniq [-ic]

选项与参数:

-i :忽略大小写字符的不同;

-c :进行计数

 

wc:查询文档行、字、字符

wc [-lwm]

选项与参数:

-l :仅列出行;

-w :仅列出多少字(英文单字);

-m :多少字符;

 

 

iconv:语系编码转换

   iconv --list

    iconv -f 原本编码 -t 新编码 filename [-o newfile]

选项与参数:

--list :列出 iconv 支持的语系数据

-f :from ,亦即来源之意,后接原本的编码格式;

-t :to ,亦即后来的新编码要是什么格式;

-o file:如果要保留原本的档案,那么使用 -o新档名,可以建立新编码档案。

 

dos2unix:将DOS格式文本文件转换成UNIX格式

dos2unix [-kn] file [newfile]

选项与参数:

-k :保留该档案原本的 mtime 时间格式 (丌更新档案上次内容经过修订癿时间)

-n :保留原本癿旧档,将转换后癿内容输出到新档案,如: dos2unix -n old

new

 

unix2dos:将UNIX格式文本文件转换成DOS格式

unix2dos [-kn] file [newfile]

选项与参数:

-k :保留该档案原本的 mtime 时间格式 (丌更新档案上次内容经过修订癿时间)

-n :保留原本癿旧档,将转换后癿内容输出到新档案,如: dos2unix -n old

new

 

 

file:该命令用来识别文件类型,也可用来辨别一些文件的编码格式

命令语法:

file [ -bchikLnNprsvz ] [ -f namefile ] [ -F separator ][ -m magicfiles ] file ...

参数

长参数

描叙

-b

列出文件辨识结果时,不显示文件名称。

-c

详细显示指令执行过程,便于排错或分析程序执行的情形

-f

列出文件中文件名的文件类型

-F

使用指定分隔符号替换输出文件名后的默认的“:”分隔符。

-i

输出mime类型的字符串

-L

查看对应软链接对应文件的文件类型

-z

尝试去解读压缩文件的内容

--help

显示命令在线帮助

--version

显示命令版本信息

 

 

 

diff:就是用在比对两个档案之间的差异的,并且是以行为单位来比对的

diff [-bBi] from-file to-file

选项与参数:

from-file :一个档名,作为原始比对档案的档名;

to-file :一个档名,作为目的比对档案的档名;

注意,from-file 或 to-file 可以 - 取代,那个 - 代表『Standardinput』之意。

-b :忽略一行当中,仅有多个空白的差异(例如 "about me" 与 "about me"

规为相同

-B :忽略空行的异.

-i :忽大小写的不同.

 

chattr、lsattr:

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

 

chattr命令的用法:chattr [ -RVf ] [ -v version ] [mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。

+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified),可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered或者 data=writeback载的文件系统,文件在写入时会先被记录(journal)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion
各参数选项中常用到的是aia选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

 

 lsattr:令用于显示文件属性

       lsattr[-adlRvV][文件或目录...]

·        -a 显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".."

·        -d 显示,目录名称,而非其内容。

·        -l 此参数目前没有任何作用。

·        -R 递归处理,将指定目录下的所有文件及子目录一并处理。

·        -v 显示文件或目录版本。

·        -V 显示版本信息。

 

 

rev:将文件中的每行内容以字符为单位反序输出,即第一个字符最后输出,最后一个字符最先输出,依次类推

语法:

       rev(文件)

文件:指定要反序显示内容的文件。


●文件压缩及解压缩命令(4 个)

tar unzip gzip zip

 

tar:打包指令

tar[-j|-z] [cv] [-f 建立的档名] filename... <==打包不压缩

tar[-j|-z] [tv] [-f 建立的档名] <==察看档名

tar[-j|-z] [xv] [-f 建立的档名] [-C目录]<==解压缩

 

选顷与参数:

-c :建立打包档案,可搭配 -v 来察看过程中被打包的档名(filename)

-t :察看打包档案的内容含有哪些档名,重点在察看『档名』就是了;

-x :解打包或解压缩的功能,可以搭配-C (大写) 在特定目录解开

特别留意的是, -c, -t, -x 不可同时出现在一串指令列中。

-j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2

-z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz

-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!

-f filename:-f后面要立刻接要被处理的档名!建议 -f 单独写一个选项啰!

    例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成

 

   『 tar -zcvPf tfile sfile』才对喔!

-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选

项。

 

其他后续练习会使用到的选项介绍:

-p :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件

-P :保留绝对路径,亦即允许备份数据中含有根目录存在之意;

--exclude=FILE:在压缩的过程中,不要将 FILE 打包!

 

其实最简单的使用 tar 就只要记忆底下的方式即可:

  压 缩:tar -jcv -f filename.tar.bz2 要被压缩的档案或目录名称

  查 询:tar -jtv -f filename.tar.bz2

  解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

 

 

unzip:解压缩zip文件

语法:

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

 

参数

·        -c将解压缩的结果显示到屏幕上,并对字符做适当的转换。

·        -f更新现有的文件。

·        -l显示压缩文件内所包含的文件。

·        -p-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

·        -t检查压缩文件是否正确。

·        -u-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。

·        -v执行是时显示详细的信息。

·        -z仅显示压缩文件的备注文字。

·        -a对文本文件进行必要的字符转换。

·        -b不要对文本文件进行字符转换。

·        -C压缩文件中的文件名称区分大小写。

·        -j不处理压缩文件中原有的目录路径。

·        -L将压缩文件中的全部文件名改为小写。

·        -M将输出结果送到more程序处理。

·        -n解压缩时不要覆盖原有的文件。

·        -o不必先询问用户,unzip执行后覆盖原有文件。

·        -P<密码>使用zip的密码选项。

·        -q执行时不显示任何信息。

·        -s将文件名中的空白字符转换为底线字符。

·        -V保留VMS的文件版本信息。

·        -X解压缩时同时回存文件原来的UID/GID

·        [.zip文件]指定.zip压缩文件。

·        [文件]指定要处理.zip压缩文件中的哪些文件。

·        -d<目录>指定文件解压缩后所要存储的目录。

·        -x<文件>指定不要处理.zip压缩文件中的哪些文件。

·        -Z unzip -Z等于执行zipinfo指令。

 

 

unzip简单用法:

         1unzipfilename  解压到当前目录

       2unzip–o filename  覆盖已经存在的文件

       3unzipfilename –d 目标目录  解压到指定目录

 

 

gzip:命令用来压缩文件
    语法:gzip [-cdtv#] 档名
选项与参数:

-c :将压缩的数据输出到屏幕上,可透过数据流重导向来处理;

-d :解压缩的参数;

-t :可以用来检验一个压缩文件的一致性~看看档案有无错误;

-v :可以显示出原档案/压缩文件案的压缩比等信息;

-# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是-6

 

bzip2:解压缩

    bzip2 [-cdkzv#] 档名

选顷不参数:

-c :将压缩的过程产生的数据输出到屏幕上!

-d :解压缩的参数

-k :保留源文件,而不会删除原始的档案喔!

-z :压缩的参数

-v :可以显示出原档案/压缩文件案的压缩比等信息;

-# :与gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

 

 

zip:解压缩文件或打包

语法:

    zip(选项)(参数)

 

-A:调整可执行的自动解压缩文件;

-b<工作目录>:指定暂时存放文件的目录;

-c:替每个被压缩的文件加上注释;

-d:从压缩文件内删除指定的文件;

 -D:压缩文件内不建立目录名称;

-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;

-F:尝试修复已损坏的压缩文件;

-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;

-h:在线帮助;

-i<范本样式>:只压缩符合条件的文件;

-j:只保存文件名称及其内容,而不存放任何目录名称;

-J:删除压缩文件前面不必要的数据;

-k:使用MS-DOS兼容格式的文件名称;

-l:压缩文件时,把LF字符置换成LF+CR字符;

-ll:压缩文件时,把LF+cp字符置换成LF字符;

-L:显示版权信息;

-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;

-n<字尾字符串>:不压缩具有特定字尾字符串的文件;

-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;

-q:不显示指令执行过程;

-r:递归处理,将指定目录下的所有文件和子目录一并处理;

-S:包含系统和隐藏文件;

-t<日期时间>:把压缩文件的日期设成指定的日期;

-T:检查备份文件内的每个文件是否正确无误;

-u:更换较新的文件到压缩文件内;

-v:显示指令执行过程或显示版本信息;

-V:保存VMS操作系统的文件属性;

-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;

-x<范本样式>:压缩时排除符合条件的文件;

-X:不保存额外的文件属性;

-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;

-z:替压缩文件加上注释;

-$:保存第一个被压缩文件所在磁盘的卷册名称;

-<压缩效率>:压缩效率是一个介于1~9的数值。



●信息显示命令(11 个)

uname hostname dmesg uptime  stat du df top free date cal

 

uname:查阅系统与核心相关信息

    语法:uname [-asrmpi]

选项与参数:

-a :所有系统相关的信息,包括底下的数据都会被列出来;

-s :系统核心名称

-r :核心的版本

-m :本系统的硬件名称,例如i686 或 x86_64 等;

-p :CPU 的类型,与 -m 类似,叧是显示的是 CPU 的类型!

-i :硬件的平台 (ix86)

 

hostname:查看主机名与修改主机名

语法:hostname(选项)(参数)

       hostname 主机名
参数:

       -v:详细信息模式;

       -a:显示主机别名;

       -d:显示DNS域名;

       -f:显示FQDN名称;

       -i:显示主机的ip地址;

       -s:显示短主机名称,在第一个点处截断;

       -y:显示NIS域名。

       主机名:指定要设置的主机名。

 

dmesg:分析核心产生的讯息

参数:
-c :显示信息后,清除ring buffer中的内容。 
-s<缓冲区大小 预设置为8196,刚好等于ring buffer的大小。 
-n :设置记录信息的层级

 

uptime:观察系统启动时间与工作负载


stat:文件/文件系统的详细信息显示

语法: stat(选项)(参数)
选项:

       -L:支持符号连接;

       -f:显示文件系统状态而非文件状态;

       -t:以简洁方式输出信息;

       --help:显示指令的帮助信息;

       --version:显示指令的版本信息。

参数:

       文件:指定要显示信息的普通文件或者文件系统对应的设备文件名。

du:评估文件系统的磁盘使用量(常用在推估目录所占容量)

语法:

       du [-ahskm] 档案或目录名称

选项与参数:

-a :列出所有的档案不目录容量,因为默认仅统计目录底下的档案量而已。

-h :以人们较易读的容量格式 (G/M)显示;

-s :列出总量而已,而不列出每个各别的目录占用容量;

-S :不包括子目录下的总计,不 -s有点差别。

-k :以 KBytes列出容量显示;

-m :以 MBytes列出容量显示;

 

 

df:列出文件系统的整体磁盘使用量;

语法:

    df [-ahikHTm] [目录或文件名]

选项与参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读癿GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :连同该 partition 的 filesystem 名称 (例如ext3) 也列出;

-i :不用硬盘容量,而以 inode的数量来显示

 

 

top:动态观察程序的变化

语法:

    top [-d 数字] | top [-bnp]

选项与参数:

-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;

-b :以批次的方式执行 top ,还有更多的参数可以使用喔!

    通常会搭配数据流重导向来将批次的结果输出成为档案。

-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。

-p :指定某些个 PID 来进行观察监测而已。

在 top 执行过程当中可以使用的按键指令:

    ? :显示在 top 当中可以输入的按键指令;

    P :以 CPU 的使用资源排序显示;

    M :以 Memory 的使用资源排序显示;

    N :以 PID 来排序喔!

    T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。

    k :给予某个 PID 一个讯号 (signal)

    r :给予某个 PID 重新制订一个 nice 值。

    q :离开 top 软件的按键。

 

free:观察内存使用情况

语法:

    free[-b|-k|-m|-g] [-t]

选项与参数:

-b :直接输入 free 时,显示的单位是 Kbytes,我们可以使用 b(bytes),

m(Mbytes),k(Kbytes), 及g(Gbytes) 来显示单位喔!

-t :在输出的最终结果,显示物理内存与 swap 的总量

 

 

date:显示日期与时间的指令

 

 

cal:显示日历的指令

语法:

   cal [month] [year]

 


●搜索文件命令(4 个)

which find whereis locate

 

which:寻找『执行档』

语法:

   which [-a] command

选项与参数:

    -a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称

 

find:档案档名搜索

语法:

    find [PATH] [option] [action]

选项与参数:

1. 与时间有关的选项:共有 -atime,-ctime 与 -mtime ,以 -mtime 说明

-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的档

案;

-mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的档案档名;

-mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的档案档名。

-newer file :file为一个存在的档案,列出比 file 还要新的档案档名

 

2. 与使用者或组名有关的参数:

-uid  n :n 为数字,这个数字是用户的账号 ID,亦即 UID ,这个 UID 是记录在/etc/passwd里面与账号名称对应对的数字。

-gid  n :n 为数字,这个数字是组名的 ID,亦即 GID,这个 GID 记录在

/etc/group.

-user name :name为使用者账号名称喔!例如 dmtsai

-group name:name为组名喔,例如 users ;

-nouser :寻找档案的拥有者不存在/etc/passwd 的人!

-nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案!

当你自行安装软件时,很可能该软件的属性当中并没有档案拥有者,

这是可能的!在这个时候,就可以使用 -nouser 与-nogroup 搜寻。

 

3. 与档案权限及名称有关的参数:

    -name filename:搜寻文件名为 filename 的档案;

    -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有:c:代表 byte, k: 代表 1024bytes。所以,要找比 50KB还要大癿档案,就是『 -size +50k 』

    -type TYPE :搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案(f),

装置档案 (b, c), 目录(d), 连结档 (l), socket (s),及 FIFO (p) 等属性。

    -perm mode :搜寻档案权限『刚好等于』 mode 的档案,这个 mode 为类似 chmod的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !

    -perm -mode :搜寻档案权限『必须要全部囊括 mode 的权限』的案,举

例来说,我们要搜寻 -rwxr--r-- ,亦即0744 的案,使用 -perm -0744,

当个档案的限为 -rwsr-xr-x ,亦即4755 时,也会被列出来因为 -rwsr-xr-x 癿属性已经囊括了 -rwxr--r-- 的性了。

    -perm +mode :搜寻档案权限『包含一 mode 的权限』的档案,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm +755 时,但一个文件属性为 -rw-------

也会被列出来,因为他有 -rw.... 的属性存在!

 

4. 额外可进行的动作:

   -exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的结果.

    -print :将结果打印到屏幕上,这个动作是预设的动作!

 

 

whereis:寻找特定档案

语法:

   whereis [-bmsu] 档案或目录名

选项与参数:

-b :只找 binary 格式的档案

-m :只找在说明文件manual 路径下的档案

-s :只找 source 来源档案

-u :搜寻不在上述三个项目当中的其他特殊档案

 

 

locate: 档案档名搜索

语法:

   locate [-ir] keyword

选项与参数:

-i :忽略大小写的差异;

-r :后面可接正则表示法的显示方式



●用户管理命令(10 个)

useradd usermod userdel groupadd passwd chage id su visudo 

sudo

 

useradd:新增用户

语法:

   seradd [-u UID] [-g 初始群组] [-G次要群组] [-mM] \

> [-c说明栏] [-d家目录绝对路径] [-s shell] 使用者账号名

 

选项与参数:

-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;

-g :后面接的那个组名就是我们上面提到的 initial group 啦~

该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。

-G :后面接的组名则是这个账号还可以加入的群组。

这个选项与参数会修改 /etc/group 内的相关资料喔!

-M :强制!不要建立用户家目录!(系统账号默认值)

-m :强制!要建立用户家目录(一般账号默认值)

-c :这个就是/etc/passwd 的第五栏的说明内容啦~可以随便我们训定的啦~

-d :指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径!

-r :建立一个系统的账号,这个账号的UID 会有限制 (参考 /etc/login.defs)

-s :后面接一个 shell ,若没有指定则预设是 /bin/bash 的啦~

-e :后面接一个日期,格式为『YYYY-MM-DD』此项目可写入 shadow 第八

字段,亦即账号失效日的训定项目啰;

-f :后面接 shadow 的第七字段项目,指定密码是否会失效。0 为立刻失效,-1 为永远不失效(密码只会过期而强制亍登入时重新训定而已。)

 

usermod:用户信息修改

语法:

    usermod[-cdegGlsuLU] username

选项与参数:

-c :后面接账号的说明,即/etc/passwd 第五栏的说明栏,可以加入一些账号

的说明。

-d :后面接账号的家目录,即修改/etc/passwd 的第六栏;

-e :后面接日期,格式是YYYY-MM-DD 也就是在 /etc/shadow 内的第八个

字段数据啦!

-f :后面接天数,为 shadow 的第七字段。

-g :后面接初始群组,修改/etc/passwd 的第四个字段,亦即是 GID 的字段!

-G :后面接次要群组,修改这个使用者能够支持的群组,修改的是 /etc/group

啰~

-a :与 -G 合用,可『增加次要群组的支持』而非『设定』喔!

-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!

-s :后面接 Shell 的实际档案,例如 /bin/bash 或 /bin/csh 等等。

-u :后面接 UID 数字啦!即 /etc/passwd 第三栏的资料;

-L :暂时将用户的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码

栏。

-U :将 /etc/shadow 密码栏的 ! 拿掉,解冻啦!

 

userdel:删除用户及数据

语法:

   userdel [-r] username

选项与参数:

-r :连同用户的家目录也一起删除

 

 

 

groupadd:新增组

语法:

    groupadd [-ggid] [-r] 组名

 

选项与参数:

-g :后面接某个特定的 GID ,用来直接给予某个 GID ~

-r :建立系统群组啦!与/etc/login.defs 内的 GID_MIN 有关

 

groupmod:删除组

语法:

    groupmod [-ggid] [-n group_name] 群组名

选项与参数:

-g :修改既有的 GID 数字;

-n :修改既有的组名

 

passwd:设定用户密码

语法:

    passwd [--sdtin]<==所有人均可使用来改自己的密码

    passwd [-l] [-u][--sdtin] [-S] \

> [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号 <==root 功能

选项与数:

--stdin :可以透过来自前一个管线的数据,作为密码输入,对 shell script 有帮助!

-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使密码失效;

-u :与 -l 相对,是 Unlock 的意思!

-S :列出密码相关参数,亦即shadow 档案内的大部分信息。

-n :后面接天数,shadow 的第 4 字段,多久不可修改密码天数

-x :后面接天数,shadow 癿第 5 字段,多久内必须要更改密码

-w :后面接天数,shadow 的第 6 字段,密码过期前的警告天数

-i :后面接『日期』,shadow 的第 7 字段,密码失效日期

 

 

chage:显示密码参数

语法:

   chage [-ldEImMW] 账号名

选项与参数:

-l :列出该账号的详细密码参数;

-d :后面接日期,修改 shadow第三字段(最近一次更改密码的日期),格式

YYYY-MM-DD

-E :后面接日期,修改 shadow第八字段(账号失效日),格式 YYYY-MM-DD

-I :后面接天数,修改 shadow第七字段(密码失效日期)

-m :后面接天数,修改 shadow第四字段(密码最短保留天数)

-M :后面接天数,修改 shadow第五字段(密码多久需要进行变更)

-W :后面接天数,修改 shadow第六字段(密码过期前警告日期)

 

id:查询用户id及组id

语法:

    id [username]

 

su:身份切换指令(需了解新用户密码)

语法:

    su [-lm] [-c 指令] [username]

选项与参数:

- :单纯使用 - 如『 su - 』代表使用 login-shell 的变量档案读取方式来登入系统;若使用者名称没有加上去,则代表切换为 root 的身份。

-l :与 - 类似,但后面需要加欲切换的使用者账号!也是 login-shell 的方式。

-m :-m 与 -p 是一样的,表示『使用目前的环境设定,而不读取新使用者的配

置文件』

-c :仅进行一次指令,所以 -c 后面可以加上指令喔!

 

sudo: 身份切换指令(需了解自己密码) 

语法:

   sudo [-b] [-u 新使用者账号]

 

选项与参数:

-b :将后续的指令放到背景中让系统自行执行,而不与目前的 shell 产生影响

-u :后面可以接欲切换的使用者,若无此项则代表切换身份为 root 。

 

visudo:打开sudo配置文件(需要root权限)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值