首页 > 代码库 > Linux基本命令解析(2)
Linux基本命令解析(2)
7.touch:外部命令
功能:改变文件的时间戳;(当修改时间戳的文件不存在时,创建文件)
格式:touch [OPTION]... FILE...
常用选项:
-a:修改文件的存取时间
-c:不创建文件
-m:修改文件
-t:使用指定的时间值
注意:时间不要修改成未来的时间,会造成系统紊乱,当一个文件存在时,touch命令也可以正 常运行,但其只修改文件的时间点;
示例:
[root@localhost aa]# touch qq
[root@localhost aa]# ls
[root@localhost aa]# ls -a
[root@localhost aa]# touch -a qq
[root@localhost aa]# stat qq
文件:"qq"
大小:0 块:0 IO 块:4096 普通空文件
设备:802h/2050dInode:71201995 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2017-03-14 20:42:24.230896396 +0800
最近更改:2017-03-14 20:39:55.077899996 +0800
最近改动:2017-03-14 20:42:24.230896396 +0800
创建时间:-
8.stat:外部命令
功能:显示文件或文件系统状态信息;
格式:stat [OPTION]... FILE...
常用选项:
-L, --dereference:不显示符号链接文件的状态,而是沿着链接路径显示源文件的状态
-Z, --context:在显示结果中添加该文件的SELinux的安全上下文信息
-f, --file-system:显示目标文件所在的文件系统的状态信息而不是该文件的信息
-t, --terse:以简洁模式输出结果,慎用(因为输出结果很难理解)。
-c --format=FORMAT:使用指定格式输出文件的状态信息。
示例:
[root@localhost aa]# touch -a qq
[root@localhost aa]# stat qq
文件:"qq"
大小:0 块:0 IO 块:4096 普通空文件
设备:802h/2050dInode:71201995 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2017-03-14 20:42:24.230896396 +0800
最近更改:2017-03-14 20:39:55.077899996 +0800
最近改动:2017-03-14 20:42:24.230896396 +0800
创建时间:-
9.cat:外部命令
功能:连接文件并在标准输出中显示连接结果;
格式:cat [OPTION]... [FILE]...
常用选项:
-E:显示末尾的换行符$;
-n:对所有行显示行号;
-b:空行不编号,有内容的才编号;
-s:合并多行空白行为一行;
catab /b/c
(连接两个文件的内容)
注意:cat命令不加任何参数,就是从标准输入完成操作(你写什么他显示什么),Ctrl+d退出;
示例:
[root@localhost aa]# cat s
#include<stdio.h>
{
}
[root@localhost aa]# cat -E s
#include<stdio.h>$
{$
$
$
$
}$
[root@localhost aa]# cat -n s
1#include<stdio.h>
2{
3
4
5
6}
[root@localhost aa]# cat -b s
1#include<stdio.h>
2{
3}
[root@localhost aa]#
10.head:外部命令
功能:显示文件开始的部分,默认显示前10行;
格式:head [OPTION]... [FILE]...
常用选项:
-n 5:显示前5行;
-c 10:按字符看,显示前十个字符;
-c #[b|k|m|g]:显示前#个字符;
注意:如果不加任何选项,则默认显示文件的前10行;如果不足10行则显示全部内容;
示例:
[root@localhost aa]# head -n 2 s
#include<stdio.h>
{
[root@localhost aa]# head -c 5 s
#incl[root@localhost aa]#
11.tail:外部命令
功能:输出指定文件的末尾的部分;
格式:tail [OPTION]... [FILE]...
常用选项:
-f:跟随文件增加,实时的检测文件的更新情况。从这个模式中提出则Ctrl+c(日志文 件);
-c#[b|k|m|g]:显示文件的最后#多个字符;
-n #:显示最后#行内容;
示例:
#incl[root@localhost aa]# tail -n 2 s
}
[root@localhost aa]# tail -c 2 s
}
[root@localhost aa]#
12.more:外部命令
功能:利用显示器显示文件的精读过滤程序;
格式:more [options] file [...]
常用选项:
-num:一次显示的行数
-d:在画面下方显示 [Press space to continue, ‘q‘ to quit.]来提示使用者 ,如果使用者按 错键,则会显示 [Press ‘h‘ for instructions.],而不是‘哔‘声
-l:取消遇见特殊字符^L(送纸符)时会暂停的功能
-p:不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c:跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s:当遇到有连续两行以上的空白行,就代换为一行的空白行
+/pattern:在每个文件显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num:从第 num 行开始显示
13.less:外部命令
功能:分页显示文本文档内容,与more相对;
格式:less [option]... [filename]...
常用选项:
-e:文件内容显示完毕后,自动退出;
-f:强制显示特殊文件,例如设备、目录或二进制文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-i:忽略搜索时的大小写
-m:显示类似more命令的百分比
-N:每一行行首显示行号;
-o <文件名>:将less 输出的内容在指定文件中保存起来
-Q:不使用警告音
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。
14.date:外部命令
功能:显示及设置系统日期和时间
格式:
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
常用选项:
-d, --date=STRING:通过‘STRING‘显示时间描述,而非当前时间;
-s, --set=STRING:通过‘STRING‘设置系统时间;
# date+%F 输出年月日
……….+%T输出完整格式的时间:时:分:秒
……….+%Y年
……….+%m月
………+%d 日
………+%H 时
………+%M 分
……….+%S秒
……….+%s时间戳,从19701.1到现在的系统时间所经过的秒数;
示例:
[root@localhost aa]# date -s "2016/10/10 10:10:11"
2016年 10月 10日 星期一 10:10:11 CST
[root@localhost aa]#
15.hwclock:外部命令
功能:查询或设置硬件时钟(RTC)
格式:hwclock [function] [option...]
常用选项:
--set:根据--date选项给定的时间设置硬件时钟;
-s, --hctosys:根据硬件时钟来调整系统时间;
-w, --systohc:根据系统时间来调整硬件时钟;
示例:
[root@localhost aa]# date -s "2016/10/10 10:10:11"
2016年 10月 10日 星期一 10:10:11 CST
[root@localhost aa]# hwclock -s
[root@localhost aa]# date
2017年 03月 14日 星期二 21:32:30 CST
[root@localhost aa]# ^C
[root@localhost aa]#
16.cal:外部命令
功能:显示公元1~9999年中任意一年或任意一个月的日历;
cal–y(可以查看2017年整年的)
示例:
[root@localhost aa]# cal 10 2016
十月 2016
日 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
[root@localhost aa]#
17.shutdown:外部命令
功能:关机;
格式:shutdown[OPTION]… TIME [MESSAGE]
选项:
-h:关闭系统;
-r:重新引导;
-k:警告要登陆的进程本系统将要关机,但并不进行关机操作;
-c:取消一次即将执行的关机作业;
说明:halt:直接关闭所有的进程,具有破坏性;shutdown命令使系统关闭,关机时会通知,还 会对每一个进程进行保留;
TIME:
绝对时间:12:00关机之类;
相对时间:+#,在#分钟后执行关机
特例:+0 相当于now
MESSAGE:
关机留言shutdown –h +10 “message”
18.cp:外部命令
功能:复制文件和目录
格式:
cp [OPTION]… SOURCE DEST(单源复制)
cp [OPTION]… SOURCE… DIRECTORY(多源复制)
常用选项:
-d:复制的源如果是符号链接文件,则将该符号链接文件直接复制到目标位置;
-p:在复制文件时能够保留文件的权限,所有权以及时间戳信息;
-r:能够递归的复制目录及目录中的文件;
-a:相当于-dpr选项的组合;
注意:
1.用cp命令,至少需要两个参数;
2.通常情况下,最后一个参数是此次复制的目标;
3.如果进行单源复制,目标可以不存在,目标可以为非目录文件;
4.如果进行多源复制,目标必须为目录,切复制过程无法更改文件;
示例:
[root@localhost /]# cp -r aa asd
[root@localhost /]# cd asd
[root@localhost asd]# ls
a aa ww
[root@localhost asd]#
[root@localhost /]# ls
3 a aa asd b 。。。
[root@localhost /]# ls -l a
-rw-r--r--. 1 root root 8 3月 12 14:36 a
[root@localhost /]# cp -p a b
cp:是否覆盖"b"? y
[root@localhost /]# ls
3 a aa asd b bin boot
[root@localhost /]# cp -p a aa
[root@localhost /]# cd aa
[root@localhost aa]# ls -l a
-rw-r--r--. 1 root root 8 3月 12 14:36 a
[root@localhost aa]#
19.mv:外部命令
功能:移动(重命名)文件
格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i: 交互式选项,移动文件之前提示用户是否覆盖;
-f: 强制移动,覆盖文件之前不予提示;
说明:
mv … … 移动
mv 旧名字 新名字 (改名)
示例:
[root@localhost aa]# ls
a qq s
[root@localhost aa]# mv a b
[root@localhost aa]# ls
b qq s
[root@localhost aa]# mv b s
mv:是否覆盖"s"? y
[root@localhost aa]# ls
qq s
[root@localhost aa]#
[root@localhost aa]# ls
a qq s
[root@localhost aa]# mv a b
[root@localhost aa]# ls
b qq s
[root@localhost aa]# mv b s
mv:是否覆盖"s"? y
[root@localhost aa]# ls
qq s
[root@localhost aa]#
在Linux系统中,用户往往需要建立自己的文件,无论是一般文件文件,数据文件,数据库文件,还是程序源文件。建立和修改文本文件要利用编辑器。Linux系统常用的文本编辑器,如ed,ex,edit,vi,按功能分为两类:行编辑器(如ed,ex,edit)和屏幕编辑器(如vi,vim)。vi简称Visual Interface BillJoy S.U.M;它汇聚了行编辑器和全屏编辑器的特点,是Linux系统常用的编辑器,几乎每个Linux系统都提供vi。
在Linux系统中,还提供了vim(vi improve)编辑器,它是vi的增强版本,与vi向上兼容。它支持多个窗口和缓冲,语法高亮度化,命令行编辑,联机帮助等功能。
在vim中有五种工作模式编辑模式(命令模式),末行模式,插入模式(输入模式),替换模式,可视化模式;
只有进入vim编辑器,才可以使用vim命令。完成文本编辑以后,应退出vim,回到shell命令状态。
vi/vim打开方式:
1.vi/vim:打开vi/vim界面;
2.vi/vim file:file存在,则打开并将光标默认放置在第一行第一个字符;file不 存在,则以新文件的方式打开,若保存,则文件被创建;若不保存,文件消失;
3.vim +# file:指定在打开文件的时候,将光标定位在第#行行首,如果定位的行 数比整个文档的行还要大,则光标停留在最后一行的行首;
4.vim + file:直接将光标定位在文档最后一行的行首;
5.vim +/PATTERN/:打开文件,并且将光标定位至首次被PATTERN匹配的行的行首位 置,即只完成首次匹配;
vim的关闭方式:
末行模式的关闭:
:q 表示直接关闭vim编辑器,不保存修改内容;
:q! 表示强制退出但不予保存;
:wq 表示保存修改内容后退出;
:wq! 对于root用户来说只读文件可以强制保存并退出;
:w! 强制保存;
编辑模式的关闭:
shift键+ZZ:保存并退出;
shift键+ZQ:不保存退出;
在vi/vim编辑模式中可以通过上下左右键操作光标选中文本位置,而在某些没有上下左右键的键盘中可以通过h(左),j(下),k(上),l(右)键进行逐字符移动;上述操作可以进行逐字符移动,而在某些情况下使用逐字移动的方式更为方便。
w:移动到下一个字的字首;(一个词到另一个词的行首)
e:移动到下一个字的字尾;
b:移动到上一个字的字首;
当文本文件编辑行数过多时使用行内行间跳转可以更有效的工作
①行内跳转:
0:绝对行首;
$:绝对行尾;
^:相对行首;
②行间跳转:
#G:直接将光标移动至第#行;
G:直接将光标移动至文档的最后一行;
gg:直接将光标移动至第一行;
在vi/vim末行模式中进行光标的移动可以通过:
:# 直接将光标移动至#行;
:1 直接将光标移动至第一行;
:$ 直接将光标移动至文档的最后一行;
当文本文件中的内容篇幅过大时,可以使用翻屏操作
Ctrl+f:向下翻一屏;
Ctrl+b:向上翻一屏;
Ctrl+d:向下翻半屏;
Ctrl+u:向上翻半屏;
文本修改:
在命令方式下可使用有关命令对文本进行修改,用另外的文本取代当前文本。这意味着某些文本必须被删除。
逐字符删除:
x:删除光标所在的单个字符;
9x:连着执行9次删除单个字符;
X:删除光标所在位置左侧的单个字符;
编辑模式中的万能删除命令:
dd:删除光标所在整行;
d:d与光标移动命令组合而成的命令就从光标位置开始删到由光标移动限定的文本对象的末尾。如果光标移动命令涉及多行,则删除操作从当前行开始至光标移动所限定的行为止。例如:
dh,dj,dk,dl,dw,de,db,dG,dgg
末行模式下:
:d 表示删除光标所在行;
:#d 表示删除第#号行;
:m,nd 表示从m行到n行删除;
.:表示当前光标所在行;
$:文档的最后一行;
:.,$d 表示从光标所在行到文档最后一行删除;
:m,+nd 表示从m行开始往后再删n行;
当对文件进行错误的修改,想要还原之前的文本文件,就需要一个还原命令即:
撤销编辑操作:
u:撤销一次此前的撤销操作;
U:直接把当前行恢复成它被编辑之前的状态;
Ctrl+r:撤销最近的一次撤销操作;
编辑模式中的粘贴命令:
p(小写):向右向下进行粘贴;
100p:粘贴100次;
P(大写):向左向上进行粘贴;
100P:粘贴100次;
编辑模式中复制命令:
y:复制光标所经过的所有内容;
用法与d命令相同;
yy:复制光标所在行;
熟练的使用文本文件的模式切换对文本进行操作是编写脚本的重要技能之一;在此简单叙述一下在文本文件中模式切换的一些基本命令;
模式的切换:
1.从编辑模式到末行模式:
:输入命令;
/:自上而下;
?:自下而上;
2.从末行到编辑模式:
ESC键
Enter键
Backspace键
3.从编辑模式到输入模式:
I:将光标移动至行首并进入输入模式;
i:在光标所在位置前面加入信息;
A:将光标移动至行尾并进入输入模式;
a:将光标所在的位置的后面插入字符;
O:在光标所在行的上面加入新行;
o:在光标所在行的下面加入新行;
cc:删除整行内容之后,进入输入模式;
C:从光标所在位置删除至行尾进入输入模式;
s:删除光标所在位置的的字符,并进入输入模式;
S:删除整行内容后,并进入输入模式;
4.从输入模式到编辑模式
ESC键
5.从编辑模式到替换模式;
R:进入替换模式;
r:替换光标所在位置的一个字符;
6.从替换模式到编辑模式
ESC键
7.从编辑模式到可视化模式;
v:按照字符为单位进行矩形选取;
V:按照行为单位进行矩形选取;
在选择之后可以执行复制成删除的操作;
只要完成操作,就返回到编辑模式;
所有的模式切换必须经由编辑模式,两种非编辑模式之间无法直接进行切换;
Vimtutor(vim教程)在教程里详细介绍了关于vim的种种的操作,有需要的时候可以进行查找;
Linux基本命令解析(2)