linux命令学习总结教程

学习文章:《鸟哥的Linux私房菜》


 • [Tab] 接在一串指令的第一个字的后面,则为命令补全;(按一下)

• [Tab] 接在一串指令的第二个字以后时,则为『档案补齐』 (按两下)

• [Ctrl]-c 按键----中断程序

• [Ctrl]-d 按键----exit

[Tab ][Tab] 输出全部指令

 

【【举例来说,打印的相关指令,鸟哥其实仅记得 lp (line print)而已。那我就由 man

lp 开始,去找相关的说明, 然后,再以 lp[tab][tab] 找到任何以 lp 为开头的指令,找到我认为可能有点相关的指令后, 再以man 去查询指令的用法man lp】】

 

• 将数据同步写入硬盘中的指令: sync (关机或重启前将未被更新的文件写入硬盘,只能root使用)

• 惯用的关机指令: shutdown

(shutdown -t 10『过10秒后关机』 shutdown -h now立刻关机 shutdown -h 20:25

shutdown -h +10 系统再过十分钟后自动关机)

• 重新开机,关机: reboot 立刻重新开机, halt, poweroff

 

  • 绝对路径: 『一定由根目录 / 写起』例如: /usr/share/doc 这个目录
  • 相对路径:『cd ../man』

 

• cd:变换目录 (change directory)

. 代表此层目录

.. 代表上一层目录

- 代表前一个工作目录(返回)

~ 代表『目前使用者身份』所在的家目录

~account 代表 account 这个使用者的家目录

 

• pwd:显示目前的目录

 pwd -P  (不以连结文件的数据显示,而是显示正确的完整路径)

• mkdir:建立一个新的目录 (make directory)

 mkdir -p test1/test2/test3/test4  # 加了这个 -p 的参数,可以自行帮您建立多层目录!

• rmdir:删除一个空的目录

rmdir test,   rmdir -p test/testt1/test2/test3

 

  • ll  ==  ls -l  :长数据串行列出,包含档案的属性等等数据;

 

  • cp (复制档案或目录)

cp [-adfilprsu] 来源档(source) 目的檔(destination)

参数:

-a :相当于 -pdr 的意思;将档案的所有特性都一起复制过来(最强大)

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

-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;

-i :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!

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

-p :连同档案的属性一起复制过去,而非使用预设属性;

-r :递归持续复制,用于目录的复制行为;

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

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

[root@linux tmp]# cp ~/.bashrc bashrc    将家目录下的 .bashrc 复制到 /tmp 下,并更名为 bashrc

cp -a /var/log/wtmp wtmp2

 

•rm [-fir] 档案或目录 (移除档案或目录)

-f :就是 force 的意思,强制移除;

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

-r :递归删除啊!最常用在目录的删除了

[root@linux tmp]# rm -rf test    删除一个不为空的目录(递归+强制删除)

 

• mv [-fiu] source destination (移动档案与目录,或更名)

 mv [options] source1 source2 source3 .... directory

-f :force 强制的意思,强制直接移动而不询问;

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

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

[root@linux tmp]# mv bashrc mvtest   # 将某个档案移动到某个目录去

[root@linux tmp]# mv mvtest mvtest2    将刚刚的目录名称更名为 mvtest2

 

档案内容查阅:

• cat 由第一行开始显示档案内容

# cat [-AEnTv]

参数:

-A :相当于 -vET 的整合参数,可列出一些特殊字符~

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

-n :打印出行号;

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

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

[root@linux ~]# cat /etc/issue  检阅 /etc/issue 这个档案的内容

[root@linux ~]# cat -A /etc/xinetd.conf    将 /etc/xinetd.conf 的内容完整的显示出来(包含特殊字符)

 

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

• nl 显示的时候,顺道输出行号!

• more 一页一页的显示档案内容

[root@linux ~]# more /etc/man.config

空格键 (space):代表向下翻一页;

 Enter :代表向下翻『一行』;

 /字符串 :代表在这个显示的内容当中,向下搜寻『字符串』;/MANPATH

 :f :立刻显示出文件名以及目前显示的行数;

q :代表立刻离开 more ,不再显示该档案内容。

 

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

空格键 :向下翻动一页;

[pagedown]:向下翻动一页;

[pageup] :向上翻动一页;

/字符串 :向下搜寻『字符串』的功能;

?字符串 :向上搜寻『字符串』的功能;

n :重复前一个搜寻 (与 / 或 ? 有关!)

N :反向的重复前一个搜寻 (与 / 或 ? 有关!)

q :离开 less 这个程序;

 

•head 只看头几行

[root@linux ~]# head [-n number] 档案  

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

[root@linux ~]# head /etc/man.config    # 预设的情况中,显示前面十行

 

•tail 只看尾巴几行

[root@linux ~]# tail [-n number] 档案

tail -f 文件名  动态监控日志尾部

 

•od 以二进制的方式读取档案内容!非纯文字文件

 

  • 档案类型:file filename  知道某个档案的基本数据,例如是属于 ASCII 或者是 data 档案

[root@linux ~]# file ~/.bashrc

 

档案的搜寻:

• which (寻找『执行档』)     ##which 后面接的是『完整档名』

[root@linux ~]# which [-a] command

参数:

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

[root@linux ~]# which passwd

[root@linux ~]# which traceroute -a

 

• whereis (寻找特定档案)

[root@linux ~]# whereis [-bmsu] 档案或目录名

参数:

-b :只找 binary 的档案

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

-s :只找 source 来源档案

-u :没有说明档的档案!

 

• locate

[root@linux ~]# locate filename   直接在后面输入『档案的部分名称』

忘记某个档案的完整档名时使用

 

• find

[root@linux ~]# find [PATH] [option] [action]

参数:

1. 与时间有关的参数:

-atime n :n 为数字,意义为在 n 天之前的『一天之内』被 access 过的档案;

-ctime n :n 为数字,意义为在 n 天之前的『一天之内』被 change 过状态的档案;

-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被 modification 过的档案;

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

找出档名为 passwd 这个档案

[root@linux ~]# find / -name passwd

 

  • vi文字编辑器

『 vi 档名』进入一般模式

按下 i 进入编辑模式,开始编辑文字;

按下 [ESC] 按钮回到一般模式;

一般模式

 

[Ctrl] + [f]

 

屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)

[Ctrl] + [b]

屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)

0 这是数字『 0 』:移动到这一行的最前面字符处 (常用)

 

$ 移动到这一行的最后面字符处(常用)

 

G 移动到这个档案的最后一行(常用)

 

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

 

/word

向光标之下寻找一个字符串名称为 word 的字符串

 

?word 向光标之上寻找一个字符串名称为 word 的字符串。

 

:n1,n2s/word1/word2/g

 

n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符

串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行

之间搜寻 vbird 并取代为 VBIRD 则:

『:100,200s/vbird/VBIRD/g』。(常用)

:1,$s/word1/word2/g

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为

word2 !(常用)

 

:1,$s/word1/word2/gc

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为

word2 !且在取代前显示提示字符给使用者确认 (conform) 是否

需要取代!(常用)

 

u 复原前一个动作。(常用)

 

[Ctrl]+r 重做上一个动作。(常用)

 

指令列命令模式

 

:w 将编辑的数据写入硬盘档案中(常用)

 

:w!

若档案属性为『只读』时,强制写入该档案。不过,到底能不能写

入, 还是跟您对该档案的档案权限有关啊!

 

:q 离开 vi (常用)

 

:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案

 

:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)

 

:e! 将档案还原到最原始的状态!

 

:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)

 

 

 

程序与资源管理

• 管理背景当中的工作: kill

[root@linux ~]# kill -signal %jobnumber

[root@linux ~]# kill -l

参数:

-l :这个是 L 的小写,列出目前 kill 能够使用的讯号 (signal) 有哪些?

signal :代表给予后面接的那个工作什么样的指示啰!用 man 7 signal 可知:

-1 :重新读取一次参数的设定档 (类似 reload);

-2 :代表与由键盘输入 [ctrl]-c 同样的动作;

-9 :立刻强制删除一个工作;

-15:以正常的程序方式终止一项工作。与 -9 是不一样的。

[root@linux ~]# kill -9 {进程}

 

• ps

[root@linux ~]# ps aux   列出目前所有的正在内存当中的程序

[root@linux ~]# ps -lA   以完整的显示内容,显示出所有的程序

[root@linux ~]# ps axjf

参数:

-A :所有的 process 均显示出来,与 -e 具有同样的效用;

-a :不与 terminal 有关的所有 process ;

-u :有效使用者 (effective user) 相关的 process ;

x :通常与 a 这个参数一起使用,可列出较完整信息。

输出格式规划:

l :较长、较详细的将该 PID 的的信息列出;

j :工作的格式 (jobs format)

-f :做一个更为完整的输出。

 

• netstat

[root@linux ~]# netstat -[atunlp]

参数:

-a :将目前系统上所有的联机、监听、Socket 数据都列出来

-t :列出 tcp 网络封包的数据

-u :列出 udp 网络封包的数据

-n :不已程序的服务名称,以埠号 (port number) 来显示;

-l :列出目前正在网络监听 (listen) 的服务;

-p :列出该网络服务的程序 PID

 

netstat  -anp  |grep  82查看82端口的使用情况,

netstat   -nultp(此处不用加端口号)  该命令是查看当前所有已经使用的端口情况

 

通过指令ps -ef | grep java 可以查看进程

lsof -i:8080   当前登录用户端口的使用情况

ps aux   列出目前所有的正在内存当中的程序

kill -9      强制删除一个工作

 

发布了7 篇原创文章 · 获赞 2 · 访问量 2365

猜你喜欢

转载自blog.csdn.net/lyt_mico/article/details/105535570