一.目录的相关操作
1.绝对路径:
简介:路径的写法『一定由根目录 / 写起』,例如:/disk2/ke_test/courseweb这个目录。
用途:
但是对于档名的正确性来说,『绝对路径的正确度要比较好~』。 一般来说,如果是在写程序 (shell scripts) 来管理系统的条件下,务必使用绝对路径的写法。怎么说呢?因为绝对路径的写法虽然比较麻烦,但是可以肯定这个写法绝对不会有问题。
2.相对路径:
简介:路径的写法『不是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下时,时,可以写成: 『cd ../man』这就是相对路径的写法。相对路径意指『相对于目前工作目录的路径!』
用途:
如果路径的名字写的很长,例如: /cluster/raid/output/taiwan2006/smoke 这个目录,而另一个目录在 /cluster/raid/output/taiwan2006/cctm ,那么我从第一个要到第二个目录去的话,怎么写比较方便? 当然是『 cd ../cctm 』比较方便
3.cd(变换目录)=change directory
#去一个绝对路径
[test@nc111 ~]$ cd /disk2/ke_test/resin-4.0.53-courseweb-jdk8
#去一个相对路径
[test@nc111 disk2]$ cd ke_test
[test@nc111 ke_test]$ cd ../ke_jenkins
#代表回到自己的家目录
[test@nc111 sys]$ cd ~
#代表去目前的上层目录
[test@nc111 ~]$ cd test
[test@nc111 test]$ cd -
4. ls
使用权限:所有人
功能 :
显示指定工作目录下之内容
(列出目前工作目录所含之档案及子目录)。
参数 :
-l
除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
total:代表当前目录下所占用空间的总和,单位:kb
第一列:-:文档 d:目录 l:软链接(相当于快捷方式)
数字代表对用户可读可写可执行-对于组里的成员权限-其他用户的权限
第二列:文件代表N个链接指向这个文件 ln 2.txt 6.txt (创建一个硬链接),此时数字会加1,
目录代表目录的子目录的个数,默认有自身和上一级
第三列:属于jingyu 用户,属于kaiwoo组
第五列:文件的大小
第九列:文件的后缀名是没有含义的:touch test.jpg 唯一的目的是让用户认识
参数:
-a
显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
ls -al
-r 将档案以相反次序显示(原定依英文字母次序)
-t
将档案依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有档案,则以下之档案亦皆依序列出
常用方式及使用技巧:
ls –l 以列表形式输出当前目录中存在的文件
ls –lt 按照修改时间倒序排序,即最新的在最上面展示
5.pwd=print working directory
功能:显示当前工作目录
#单纯显示出目前的工作目录:
[test@nc111 ke_jenkins]$ pwd
/disk2/ke_jenkins
6 “>”
功能说明:输出重定向
补充说明:以重写的方式输出重定向
语法:tail –f Error.log > test.log
7 “>>”
功能说明:输出重定向
补充说明:以追加的方式进行输出重定向
语法:tail –f Error.log >> test.log
=============================================================================
二.复制删除与移动
8. cp=copy
功能说明:
复制文件或目录。
语 法:cp [-abdfilpPrRsuvx][-S <备份字尾字符串>][-V <备份方式>][--help][--spares=<使用时机>][--version][源文件或目录][目标文件或目录] [目的目录]
参数:
-a:相当于 -pdr,至于pdr请参考下列说明
-p :连同档案的属性一起复制过去,而非使用默认属性(备份常用);
-d :若原文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-r (通用参数)递归处理,递归持续复制;
-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
#复制jmeter.log,并且更改名字为test1.txt
[jingyu@tb038 ~]$ cp /home/jingyu/jmeter.log /home/jingyu/test/test1.txt
#加参数 -i,目标文件已存在,覆盖的时候先询问
[jingyu@tb038 ~]$ cp -i /home/jingyu/jmeter.log /home/jingyu/test/test1.txt
cp: overwrite `/home/jingyu/test/test1.txt'? y
9. rm
功能说明:删除文件或目录。
语 法:rm [-dfirv][--help][--version][文件或目录...]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。
参 数:
-f或--force 强制删除文件或目录。
-i或--interactive 删除既有文件或目录之前先询问用户。
-r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
注意:在使用rm –rf * 命令前请使用pwd确定当前目录,以免发生误删除
10. mv(初级)=move
功能说明:移动或更名现有的文件或目录。
语 法:mv [-bfiuv][--help][--version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录]
补充说明:mv可移动文件或目录,或是更改文件或目录的名称。
参 数:
-f :force 强制的意思,如果目标档案已经存在,不会询问而直接覆盖;
-i :若目标档案 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标档案已经存在,且source 比较新,才会更新 (update)
常用方式及使用技巧:mv server.xml server.xml_bak
11.mkdir make directory建立新目录
使用权限:于目前目录有适当权限的所有使用者
使用方式:mkdir [-p] dirName
说明:建立名称为 dirName 之子目录。
参数:-p 帮助你直接将所需要的目录(包含上层目录)递归建立起来
范例: #建立一个名为test2的目录
[jingyu@tb038 test1]$ mkdir test2#建立一个多层目录
[jingyu@tb038 test1]$ mkdir -p test3/test4/test5
12.rmdir
功能说明:删除目录。
语法:rmdir [-p][--help][--ignore-fail-on-non-empty][--verbose][--version][目录...]
补充说明:当有空目录要删除时,可使用rm
dir指令。
参数:-p:连同上层【空的】目录也一起删除
#直接删除
[jingyu@tb038 test4]$ rmdir test5
#带上-p参数一起删
[jingyu@tb038 test]$ rmdir -p test3/test4
=============================================================================
/disk2/ke_test/resin-4.0.53-courseweb-jdk8/log
三.查看日志会看到的相关操作
13. cat =concatenate
由第一行开始显示档案内容
使用权限:所有使用者
使用方式:cat [-AbeEnTv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 打印出行号,联通空白行也会有行号
范例:cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
14 more
功能说明:一页一页的显示文件的内容
语法:more filename
使用方式:
空格键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字符串 :代表在这个显示的内容当中,向下搜寻『字符串』;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该档案内容。
15 less
功能说明:less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
语法:less filename
使用方式:
空格键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字符串 :向下搜寻『字符串』的功能;
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
常用方式及使用技巧:less error.log
16 head
功能说明:看一个文件的头几行
语法:head –n filename
参数:-n :后面接数字,代表显示几行的意思
举例:
[jingyu@tb038 ~]$ head -20 test.txt
17tail
功能说明:看一个文件末尾n行
语法:tail [-n number] 文件
使用说明:tail 命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。
Number 变量指定将多少单元写入标准输出。 Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有 -(减号),则从文件末尾指定的单元数开始将文件写到标准输出。如果值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件。
主要参数:
-f 表示持续侦测后面所接的档名,要等到按下【Ctrl】-c 才会结束tail的侦测
-n 后面接数字,代码显示几行的意思
举例:
[jingyu@tb038 ~]$ tail -20 test.txt
18 grep
功能说明:查找文件里符合条件的字符串。
语 法:grep [-acinv][--color=auto] '查找字符串' filename
补充说明:grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。
参 数:
-i 忽略字符大小写的差别
-v 反向选择,即显示出没有查找字符串内容的那一行。
例子:
#将test.txt中出现aaa的那一行取出
[jingyu@tb038 ~]$ grep 'aaa' test.txt
aaaaaaaaa
#将test.txt中没有aaa的就取出
[jingyu@tb038 ~]$ grep -v 'aaa' test.txt
========================================================================
四.更改权限
19 chown = change owner
功能说明:变更文件的所有者,一般用于复制文件给你之外的人,由于复制行为会复制执行者的属性和权限,所以必须修改这个文件的所有者。
语法:chown [-cfhRv][--dereference][--help][--version][拥有者.<所属群组>][文件或目录..] 或chown [-chfRv][--dereference][--help][--version][.所属群组][文件或目录... ...] 或chown [-cfhRv][--dereference][--help][--reference=<参考文件或目录>][--version][文件或目录...]
参数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quite或--silent 不显示错误信息。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
实例:
#将install.log 的所有者改为bin的这个账号
chown bin install.log
#将install.log的所有者和用户组改为root
chown root:root install.log
20 chmod
功能说明:变更文件或目录的权限。
语 法:chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...] 或 chmod [-cfRv][--help][--version][数字代号][文件或目录...] 或 chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
有关权限代号的部分,列表于下:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"。
-:不具任何权限,数字代号为"0"。
参 数:
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
[jingyu@tb038 ~]$ chmod 777 5.txt
=======================================================================================
五.vim程序编辑器
基本上 vi 共分为三种模式,分别是『一般模式』、『编辑模式』、『指令列命令模式』。 这三种模式的作用分别是:
一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移劢光标,你可以使用『删除字符』戒『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
编辑模式: 在一般模式中可以进行删除、复制、贴上等等的操作,但是却无法编辑文件内容! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 戒 REPLACE 』癿字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
指令列命令模式: 在一般模式当中,输入『 : / ? 』三个中癿任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的操作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的操作则是在此模式中达成的!
简易执行范例:
如果你想要使用 vi 来建立一个名为 test.txt 的档案时,你可以这样做:
1. 使用 vi 进入一般模式;
[jingyu@tb038 ~]$ vi test.txt
vi/vim 按键说明
第一部份:一般模式可用的光标移动、复制粘贴、搜索替换等
移动光标的方法
| |
h 或 向左箭头键(←)
|
光标向左移动一个字符
|
j 或 向下箭头键(↓)
|
光标向下移动一个字符
|
k 或 向上箭头键(↑)
|
光标向上移动一个字符
|
l 或 向右箭头键(→)
|
光标向右移动一个字符
|
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
| |
[Ctrl] + [f]
|
屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
|
[Ctrl] + [b]
|
屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
|
[Ctrl] + [d]
|
屏幕『向下』移动半页
|
[Ctrl] + [u]
|
屏幕『向上』移动半页
|
+
|
光标移动到非空格符的下一行
|
-
|
光标移动到非空格符的上一行
|
n<space>
|
那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
|
0 或功能键[Home]
|
这是数字『 0 』:移动到这一行的最前面字符处 (常用)
|
$ 或功能键[End]
|
移动到这一行的最后面字符处(常用)
|
H
|
光标移动到这个屏幕的最上方那一行的第一个字符
|
M
|
光标移动到这个屏幕的中央那一行的第一个字符
|
L
|
光标移动到这个屏幕的最下方那一行的第一个字符
|
G
|
移动到这个档案的最后一行(常用)
|
nG
|
n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
|
gg
|
移动到这个档案的第一行,相当于 1G 啊! (常用)
|
n<Enter>
|
n 为数字。光标向下移动 n 行(常用)
|
搜索替换
| |
/word
|
向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
|
?word
|
向光标之上寻找一个字符串名称为 word 的字符串。
|
n
|
这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
|
N
|
这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
|
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
| |
: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 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
|
删除、复制与贴上
| |
x, X
|
在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
|
nx
|
n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
|
dd
|
删除游标所在的那一整行(常用)
|
ndd
|
n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
|
d1G
|
删除光标所在到第一行的所有数据
|
dG
|
删除光标所在到最后一行的所有数据
|
d$
|
删除游标所在处,到该行的最后一个字符
|
d0
|
那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
|
yy
|
复制游标所在的那一行(常用)
|
nyy
|
n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
|
y1G
|
复制游标所在行到第一行的所有数据
|
yG
|
复制游标所在行到最后一行的所有数据
|
y0
|
复制光标所在的那个字符到该行行首的所有数据
|
y$
|
复制光标所在的那个字符到该行行尾的所有数据
|
p, P
|
p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
|
J
|
将光标所在行与下一行的数据结合成同一行
|
c
|
重复删除多个数据,例如向下删除 10 行,[ 10cj ]
|
u
|
复原前一个动作。(常用)
|
[Ctrl]+r
|
重做上一个动作。(常用)
|
这个 u 与 [Ctrl]+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 为止;(常用)
|
上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
| |
[Esc]
|
退出编辑模式,回到一般模式中(常用)
|
第三部份:一般模式切换到指令行模式的可用的按钮说明
指令行的储存、离开等指令
| |
:w
|
将编辑的数据写入硬盘档案中(常用)
|
:w!
|
若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
|
:q
|
离开 vi (常用)
|
:q!
|
若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
|
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
| |
:wq
|
储存后离开,若为 :wq! 则为强制储存后离开 (常用)
|
ZZ
|
这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
|
:w [filename]
|
将编辑的数据储存成另一个档案(类似另存新档)
|
:r [filename]
|
在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
|
:n1,n2 w [filename]
|
将 n1 到 n2 的内容储存成 filename 这个档案。
|
:! command
|
暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
|
vim 环境的变更
| |
:set nu
|
显示行号,设定之后,会在每一行的前缀显示该行的行号
|
:set nonu
|
与 set nu 相反,为取消行号!
|
=============================================================================
六.进程的管理
22.PS进程查看命令 process status
将某个时间点的进程运行情况,
ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令;
#查看系统所有的进程数据:
[test@nc111 ~]$ ps -aux
#
查看自己程序的进程
[test@nc111 ~]$ ps-l
查看自己程序的进程
(1)linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待):R 运行 runnable (on run queue)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号):S 中断 sleeping
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生):D 不可中断 uninterruptible sleep (usually IO)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放):Z 僵死 a defunct (”zombie”) process
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行):T 停止 traced or stopped
(3)命令参数:
-A 显示所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-l 较详细的将盖Pid的信息列出
23.top动态查看进程的变化
top [-d 数字] |top [-bnp]
常用参数:
-d 后面可以接秒数,整个进程界面更新的秒数,默认是5S.
-b以批次的方式执行top
-p 指定某些pid来进行检测
-n <次数>与-b 搭配,需要进行几次top的输出结果
实例:
#每两秒更新一次top,查看整体信息:
[test@nc111 ~]$ top -d 2
#仅查看单一进程
[test@nc111 ~]$ top -d 93494
24.kill--删除进程
kill命令用于删除执行中的程序或工作。
语法:
kill[参数][进程号]
参数说明:
-l :列出目前kill能够使用的信号(signal),
-9 :立刻强制删除一个工作;
-15:以正常的程序终止一个工作
实例:
杀死进程
# kill 12345
强制杀死进程
# kill -KILL 123456
彻底杀死进程
# kill -9 123456