Linux 基础命令

Shutdown :关机
reboot :重启
init    :run level 0 关机, 3:纯文本模式; 5:含有图形接口模式; 6:重新启动
nano      :简单文本编辑器;

chgrp :改变文件所属群组
chown :改变文件拥有者
chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
chattr [+-=][ASacdistu] 文件或目录名称
选项与参数:
+   :增加某一个特殊参数,其他原本存在参数则不动。
-   :移除某一个特殊参数,其他原本存在参数则不动。
=   :设定一定,且仅有后面接的参数

A  :当设定了 A 这个属性时,若你有存取此文件(或目录)时,他的访问时间 atime
     将不会被修改,可避免I/O较慢的机器过度的存取磁盘。这对速度较慢的计算机有帮助
S  :一般文件是异步写入磁盘的,如果加上 S 这个属性时,当你进行任何文件的修改,该更动会『同步』写入磁盘中。
a  :当设定 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root
     才能设定这个属性。
c  :这个属性设定之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩,
     但是在储存的时候,将会先进行压缩后再储存(看来对于大文件似乎蛮有用的!)
d  :当 dump 程序被执行的时候,设定 d 属性将可使该文件(或目录)不会被 dump 备份
i  :这个 i 可就很厉害了!他可以让一个文件『不能被删除、改名、设定连结也无法
     写入或新增资料!』对于系统安全性有相当大的帮助!只有 root 能设定此属性
s  :当文件设定了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘
     空间,所以如果误删了,完全无法救回来了喔!
u  :与 s 相反的,当使用 u 来配置文件案时,如果该文件被删除了,则数据内容其实还
     存在磁盘中,可以使用来救援该文件喔!
注意:属性设定常见的是 a 与 i 的设定值,而且很多设定值必须要身为 root 才能设定

lsattr [-adR] 文件或目录
选项与参数:
-a :将隐藏文件的属性也秀出来;
-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
-R :连同子目录的数据也一并列出来!


ls
选项与参数:
-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)

touch [-acdmt] 文件
选项与参数:
-a  :仅修订 access time;
-c  :仅修改文件的时间,若该文件不存在则不建立新文件;
-d  :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m  :仅修改 mtime ;
-t  :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]


cd:变换目录
pwd:显示当前目录
mkdir:建立一个新的目录
rmdir:删除一个空的目录

cp
选项与参数:
-a  :相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用)
-d  :若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身;
-f  :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i  :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l  :进行硬式连结(hard link)的连结档建立,而非复制文件本身;
-p  :连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r  :递归持续复制,用于目录的复制行为;(常用)
-s  :复制成为符号链接文件 (symbolic link),亦即『快捷方式』文件;
-u  :若 destination 比 source 旧才更新 destination !

rm
选项与参数:
-f  :就是 force 的意思,忽略不存在的文件,不会出现警告讯息;
-i  :互动模式,在删除前会询问使用者是否动作
-r  :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

mv
选项与参数:
-f  :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i  :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u  :若目标文件已经存在,且 source 比较新,才会更新 (update)


cat  由第一行开始显示文件内容
选项与参数:
-A  :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b  :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E  :将结尾的断行字符 $ 显示出来;
-n  :打印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T  :将 [tab] 按键以 ^I 显示出来;
-v  :列出一些看不出来的特殊字符

tac  从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

nl   显示的时候,顺道输出行号!
选项与参数:
-b  :指定行号指定的方式,主要有两种:
      -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
      -b t :如果有空行,空的那一行不要列出行号(默认值);
-n  :列出行号表示的方法,主要有三种:
      -n ln :行号在屏幕的最左方显示;
      -n rn :行号在自己字段的最右方显示,且不加 0 ;
      -n rz :行号在自己字段的最右方显示,且加 0 ;
-w  :行号字段的占用的位数。

more 一页一页的显示文件内容

空格键 (space):代表向下翻一页;
Enter         :代表向下翻『一行』;
/字符串         :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
:f            :立刻显示出文件名以及目前显示的行数;
q             :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。


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

head 只看头几行
tail 只看尾巴几行
od   以二进制的方式读取文件内容!
选项或参数:
-t  :后面可以接各种『类型 (TYPE)』的输出,例如:
      a       :利用默认的字符来输出;
      c       :使用 ASCII 字符来输出
      d[size] :利用十进制(decimal)来输出数据,每个整数占用 size bytes ;
      f[size] :利用浮点数(floating)来输出数据,每个数占用 size bytes ;
      o[size] :利用八进制(octal)来输出数据,每个整数占用 size bytes ;
      x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size bytes ;


umask

file  :观察文件类型

which [-a] command
选项或参数:
-a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称

whereis [-bmsu] 文件或目录名
选项与参数:
-b    :只找 binary 格式的文件
-m    :只找在说明文件 manual 路径下的文件
-s    :只找 source 来源文件
-u    :搜寻不在上述三个项目当中的其他特殊文件

locate [-ir] keyword
选项与参数:
-i  :忽略大小写的差异;
-r  :后面可接正规表示法的显示方式

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        :将结果打印到屏幕上,这个动作是预设动作!

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 单独写一个选项啰!
-C 目录    :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

其他后续练习会使用到的选项介绍:
-p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!

gzip [-cdtv#] 檔名
zcat 檔名.gz
选项与参数:
-c  :将压缩的数据输出到屏幕上,可透过数据流重导向来处理;
-d  :解压缩的参数;
-t  :可以用来检验一个压缩文件的一致性~看看文件有无错误;
-v  :可以显示出原文件/压缩文件案的压缩比等信息;
-#  :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6

bzip2 [-cdkzv#] 檔名
bzcat 檔名.bz2
选项与参数:
-c  :将压缩的过程产生的数据输出到屏幕上!
-d  :解压缩的参数
-k  :保留源文件,而不会删除原始的文件喔!
-z  :压缩的参数
-v  :可以显示出原文件/压缩文件案的压缩比等信息;
-#  :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

rpm -qa                              <==已安装软件
rpm -q[licdR] 已安装的软件名称       <==已安装软件
rpm -qf 存在于系统上面的某个文件名     <==已安装软件
rpm -qp[licdR] 未安装的某个文件名  <==查阅RPM文件
选项与参数:
查询已安装软件的信息:
-q  :仅查询,后面接的软件名称是否有安装;
-qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
-qi :列出该软件的详细信息 (information),包含开发商、版本与说明等;
-ql :列出该软件所有的文件与目录所在完整文件名 (list);
-qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的檔名而已)
-qd :列出该软件的所有说明文件 (找出与 man 有关的文件而已)
-qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
-qf :由后面接的文件名,找出该文件属于哪一个已安装的软件;
查询某个 RPM 文件内含有的信息:
-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出
        某个 RPM 文件内的信息,而非已安装的软件信息!注意!

yum [option] [查询工作项目] [相关参数]
选项与参数:
[option]:主要的选项,包括有:
  -y :当 yum 要等待用户输入时,这个选项可以自动提供 yes 的响应;
  --installroot=/some/path :将该软件安装在 /some/path 而不使用默认路径
[查询工作项目] [相关参数]:这方面的参数有:
  search  :搜寻某个软件名称或者是描述 (description) 的重要关键字;
  list    :列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa;
  info    :同上,不过有点类似 rpm -qai 的执行结果;
  provides:从文件去搜寻软件!类似 rpm -qf 的功能!
  install :后面接要安装的软件!
  update  :后面接要升级的软件,若要整个系统都升级,就直接 update 即可
  remove

相关推荐