`

Linux command

 
阅读更多

Linux命令学了忘、忘了学,干脆整理一下放在这里。

 

一、文件权限

chgrp [-R] dirname/filename ...
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
     都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。

chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更

chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

chmod  u=rwx,go=rx  .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格!

         u         +(加入)         r
chmod    g         -(除去)         w         文件或目录
         o         =(设定)         x 
         a 	

 

 

二:文件与目录管理

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

cp [-adfilprsu] 来源档(source) 目标档(destination)
cp [options] source1 source2 source3 .... directory
Linux下默认cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,可以用 \cp 执行cp命令,这时不走alias,如:#\cp a /test/a

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

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

basename /etc/sysconfig/network
network         <== 很简单!就取得最后的档名~
dirname /etc/sysconfig/network
/etc/sysconfig  <== 取得的变成目录名了!

 

  三、文件内容查阅

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

tac /etc/issue

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

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

less /etc/man.config
空白键    :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup]  :向上翻动一页;
/字串     :向下搜寻『字串』的功能;
?字串     :向上搜寻『字串』的功能;
n         :重复前一个搜寻 (与 / 或 ? 有关!)
N         :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q         :离开 less 这个程序;

head [-n number] 文件 
选项与参数:
-n  :后面接数字,代表显示几行的意思

tail [-n number] 文件 
选项与参数:
-n  :后面接数字,代表显示几行的意思
-f  :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测

od [-t TYPE] 文件
选项或参数:
-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 ;

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

 

四、磁盘与文件系统

df [-ahikHTm] [目录或文件名]
选项与参数:
-a  :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k  :以 KBytes 的容量显示各文件系统;
-m  :以 MBytes 的容量显示各文件系统;
-h  :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H  :以 M=1000K 取代 M=1024K 的进位方式;
-T  :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i  :不用硬盘容量,而以 inode 的数量来显示

 

du [-ahskm] 文件或目录名称
选项与参数:
-a  :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h  :以人们较易读的容量格式 (G/M) 显示;
-s  :列出总量而已,而不列出每个各别的目录占用容量;
-S  :不包括子目录下的总计,与 -s 有点差别。
-k  :以 KBytes 列出容量显示;
-m  :以 MBytes 列出容量显示;

 

ln [-sf] 来源文件 目标文件
选项与参数:
-s  :如果不加任何参数就进行连结,那就是hard link,至于 -s 就是symbolic link
-f  :如果 目标文件 存在时,就主动的将目标文件直接移除后再创建!

 

fdisk [-l] 装置名称
选项与参数:
-l  :输出后面接的装置所有的 partition 内容。若仅有 fdisk -l 时,
      则系统将会把整个系统内能够搜寻到的装置的 partition 均列出来。

 

mkfs [-t 文件系统格式] 装置文件名
选项与参数:
-t  :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)

 

mount [-t 文件系统] [-L Label名] [-o 额外选项] \
 [-n]  装置文件名  挂载点
选项与参数:
-a  :依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来
-l  :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称!
-t  :与 mkfs 的选项非常类似的,可以加上文件系统种类来指定欲挂载的类型。
      常见的 Linux 支持类型有:ext2, ext3, vfat, reiserfs, iso9660(光盘格式),
      nfs, cifs, smbfs(此三种为网络文件系统类型)
-n  :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序
      的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入。
      此时就得要使用这个 -n 的选项了。
-L  :系统除了利用装置文件名 (例如 /dev/hdc6) 之外,还可以利用文件系统的标头名称
      (Label)来进行挂载。最好为你的文件系统取一个独一无二的名称吧!
-o  :后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:
      ro, rw:       挂载文件系统成为只读(ro) 或可擦写(rw)
      async, sync:  此文件系统是否使用同步写入 (sync) 或异步 (async) 的
                    内存机制,请参考文件系统运行方式。默认为 async。
      auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)
      dev, nodev:   是否允许此 partition 上,可创建装置文件? dev 为可允许
      suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式?
      exec, noexec: 是否允许此 partition 上拥有可运行 binary 文件?
      user, nouser: 是否允许此 partition 让任何使用者运行 mount ?一般来说,
                    mount 仅有 root 可以进行,但下达 user 参数,则可让
                    一般 user 也能够对此 partition 进行 mount 。
      defaults:     默认值为:rw, suid, dev, exec, auto, nouser, and async
      remount:      重新挂载,这在系统出错,或重新升级参数时,很有用!

重新挂载
mount -o remount,rw,auto /

 

umount [-fn] 装置文件名或挂载点
选项与参数:
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-n :不升级 /etc/mtab 情况下卸除。

 

五、打包与压缩

*.Z         compress 程序压缩的文件;
*.gz        gzip 程序压缩的文件;
*.bz2       bzip2 程序压缩的文件;
*.tar       tar 程序打包的数据,并没有压缩过;
*.tar.gz    tar 程序打包的文件,其中并且经过 gzip 的压缩
*.tar.bz2   tar 程序打包的文件,其中并且经过 bzip2 的压缩

 

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

 

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

 

tar [-j|-z] [cv] [-f 创建的档名] filename... <==打包与压缩
[root@www ~]# tar [-j|-z] [tv] [-f 创建的档名]             <==察看档名
[root@www ~]# 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 打包!


压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

 

六、vi/vim

G	移动到这个档案的最后一行(常用)
gg	移动到这个档案的第一行,相当于 1G 啊! (常用)

/word	向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word	向光标之上寻找一个字符串名称为 word 的字符串。
n	这个 n 是英文按键。代表『重复前一个搜寻的动作』。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N	这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。

:n1,n2s/word1/word2/g	n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/g	从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc	从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
dd	删除游标所在的那一整列(常用)
yy	复制游标所在的那一行(常用)
p, P	p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!

u	复原前一个动作。(常用)
^r	重做上一个动作。(常用)
.	不要怀疑!这就是小数点!意思是重复前一个动作的意思。

 

i, I	进入插入模式(Insert mode):
i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
a, A	进入插入模式(Insert mode):
a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
o, O	进入插入模式(Insert mode):
这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用)
r, R	进入取代模式(Replace mode):
r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)

 

    区块选择的按键意义
v         字符选择,会将光标经过癿地方反白选择! 
V         行选择,会将光标经过癿行反白选择! 
[Ctrl]+v  区块选择,可以用长方形癿方式选择资料 
y         将反白癿地方复制起来 
d         将反白癿地方删除掉

 

:w	将编辑的数据写入硬盘档案中(常用)
:q	离开 vi (常用)
:q!	若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:wq	储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ	这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename]	将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]	在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:! command	暂时离开 vi 到指令列模式下执行 command 的显示结果!

:set nu	显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu	与 set nu 相反,为取消行号!
:set autoindent
:set noautoindent	是否自动缩排?autoindent 就是自动缩排。
:set hlsearch
:set nohlsearch	       设定是否将搜寻的字符串反白。

 

vim 的暂存档、救援回复与开启时的警告讯息

[O]pen Read-Only:打开此档案成为只读档, 可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。一般来说,在上课时,如果你是登入到同学的计算机去看他的配置文件, 结果发现其实同学他自己也在编辑时,可以使用这个模式;

(E)dit anyway:还是用正常的方式打开你要编辑的那个档案, 并不会载入暂存档的内容。不过很容易出现两个使用者互相改变对方的档案等问题!不好不好!

(R)ecover:就是加载暂存盘的内容,用在你要救回之前未储存的工作。 不过当你救回来并且储存离开 vim 后,还是要手动自行删除那个暂存档喔!

(D)elete it:你确定那个暂存档是无用的!那么开启档案前会先将这个暂存盘删除! 这个动作其实是比较常做的!因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧!哈哈!

(Q)uit:按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。

(A)bort:忽略这个编辑行为,感觉上与 quit 非常类似! 也会送你回到命令提示字符就是啰!

 

:sp [filename]	开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示)。
[ctrl]+w+↓	
[ctrl]+w+↑	
[ctrl]+w+ q	其实就是 :q 结束离开啦! 
iconv --list
iconv -f 原本编码 -t 新编码 filename [-o newfile]
选项与参数:
--list :列出 iconv 支持的语系数据
-f     :from ,亦即来源之意,后接原本的编码格式;
-t     :to ,亦即后来的新编码要是什么格式;
-o file:如果要保留原本的档案,那么使用 -o 新档名,可以建立新编码档案。

繁体中文的 utf8 转成简体中文的 utf8:
iconv -f utf8 -t big5 vi.utf8 | \
> iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8

 

 

    vim 常用指令示意图

    vim 常用指令示意图

 

七、命令别名与历史命令

alias lm='ls -al | more'
alias rm='rm -i'
unalias lm

history [n]
history [-c]
history [-raw] histfiles
选项与参数:
n   :数字,意思是『要列出最近的 n 笔命令行表』的意思!
-c  :将目前的 shell 中的所有 history 内容全部消除
-a  :将目前新增的 history 命令新增入 histfiles 中,若没有加 histfiles ,
      则默认写入 ~/.bash_history
-r  :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w  :将目前的 history 记忆内容写入 histfiles 中!

!number
!command
!!
选项与参数:
number  :运行第几笔命令的意思;
command :由最近的命令向前搜寻『命令串开头为 command』的那个命令,并运行;
!!      :就是运行上一个命令(相当于按↑按键后,按 Enter)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    The Linux Command Line 中文版

    《The Linux Command Line 中文版》这本书是一部关于Linux命令行操作的经典教程,由William E. Shotts Jr.撰写。它既适合初学者入门学习,也能够帮助有经验的Linux用户进一步提升技能。本书内容全面,涵盖了Linux...

    The Linux command line.pdf

    《The Linux Command Line》是一本深入介绍Linux命令行操作的指南,作者为William E. Shotts, Jr.。这本书是***项目的组成部分,旨在帮助用户从传统操作系统过渡到未来的Linux系统中。书中详细介绍了命令行在Linux...

    linux command line.pdf

    根据给定的文件信息,我们可以看出,文件中提到的《Linux Command Line》这本书是由William E. Shotts, Jr.所著,属于***项目的一部分,旨在教育用户如何使用Linux命令行,促进传统操作系统用户向未来迁移。本书有多...

    Linux Command Line

    This book is part of the LinuxCommand.org project, a site for Linux education and advocacy devoted to helping users of legacy operating systems migrate into the future. You may contact the Linux...

    linux command (全)

    linux command (全) 介绍各种linux指令代码,相当的全。

    The Linux Command Line英文版_terminal_linux_

    《The Linux Command Line》是一本深入探讨Linux命令行界面的权威指南,对于想要掌握Linux操作系统核心功能的用户来说,这是一本不可或缺的参考书。在Linux的世界里,终端(Terminal)或控制台(Console)是与系统...

    Apress - Beginning The Linux Command Line, 2009.zip

    《Apress - Beginning The Linux Command Line, 2009》是一本专为初学者设计的Linux命令行指南。这本书全面介绍了Linux操作系统的基础知识,特别是关于命令行界面的使用,帮助用户掌握在没有图形化界面的情况下操作...

    The Linux Command Line中英文合集.zip

    The Linux Command Line电子书中英文版本合集。学习 Linux 命令行会让你受益匪浅,给你极大的回报。如果你认为, 现在你已经是高手了。别急,其实你还不知道什么才是真正的高手。不像其他一些计算机技能, 一段时间...

    The Linux Command Line 中文版 高清

    The Linux Command Line 中文版 高清

    OS + linux command / Linux Command / Linux command / linux Command

    标题中的“OS + Linux Command”指的是操作系统,特别是Linux操作系统下的命令行工具。在Linux系统中,命令行界面是用户与操作系统交互的主要方式之一,通过输入各种命令,用户可以执行各种任务,如文件管理、进程...

    The Linux Command Line

    Designed for the new command line user, this 555-page volume covers the same material as LinuxCommand.org but in much greater detail. In addition to the basics of command line use and shell scripting,...

    The Linux Command Line A Complete Introduction

    《The Linux Command Line: A Complete Introduction》这本书不仅提供了丰富的实践知识,还强调了对命令行工具背后哲学的理解,让读者能够深入领会Linux桌面机如何继承自过去的Unix超级计算机的遗产。通过学习这本...

Global site tag (gtag.js) - Google Analytics