|
---------------------------------------------
Linux Command (1): 非程序员使用的GNU实用程序
---------------------------------------------
1.date
date [yymmddhhmm[.ss]]
功能:实用程序,显示和设置当前日期.
2.clear
功能:实用程序,清屏.
3.man
man [section] word
man -k keyword
(k:1-8 || 1-9)
功能:实用程序,获得联机帮助.
手册页中一般分为以下几个主题:
(1)用户命令
(2)系统调用
(3)库函数
(4)特殊文件
(5)文件格式
(6)游戏
(7)综合
(8)系统管理和特权命令
(9)内核接口(不是所有的Linux分发版都包括)
4.^C = intr
Control-C
功能:终止进程.
5.^D = eof
Control-D
功能:输入结束.
(在最后一行输入之后,另起一行Control-D)
6.^S = stop
Control-S
功能:终止终端输出.
7.^Q = start
Control-Q
功能:重启终端输出.
8.passwd
功能:实用程序,设置密码.
9.pwd
功能:实用程序,打印shell的当前工作目录.
10.cat
cat -n {fileName}*
功能:实用程序,从标准输入式一系列文件中接受输入并在标准输出中显示.
-n选项在结果中添加行号.
(cat可以带任意多个文件作为参数,并依次列出每个文件.适合显示小文件,但在输出满屏时不会暂停.)
11.ls
ls -adglsFGR {fileName}* {directoryName}*
功能:实用程序,列出目录内容.
-a选项显示当前工作目录下的所有文件.
{directoryName}*显示所列目录的内容.
{fileName}*显示具体文件的信息.
-d选项列出目录本身的详细信息,而不是目录中的文件.
-g选项列出文件组.
-l选项输出长列表,包括权限标志,文件所有者和上次修改时间.
-s选项显示文件占用磁盘块的数量(一块大小一般在512字节~4K字节之间).
-F选项在文件名之后添加一个字符表示该文件的类型:*表示可执行文件,/表示目录文件,@表示符号链接,=表示套接字.
-G选项使列表中不包括文件组信息.
12.more
more -f [+lineNumber] {fileName}*
功能:实用程序,列出文件内容.
-f选项告诉more不要折叠较长的行.
(more允许分屏浏览几个文件,每个文件从第1行开始显示,但可以使用+选项指定起始的行号.)
(more更适合查看大文件.在显示一屏文本之后,more显示消息"--More--",等待下一个命令.若显示下一屏,按空格键.若显示下一行,按回车键.按q键退出more.按h键获得其他帮助信息.)
13.head
head -n {fileName}*
功能:实用程序,列出文件内容.
-n选项显示文件的前n行.
(如果不指定n,则默认显示前10行.如果指定多个文件,则在每个文件的内容前,显示一个标识该文件的文件头.)
14.tail
tail -n {fileName}*
功能:实用程序,列出文件内容.
-n选项显示文件的最后n行.
(如果不指定n,则默认显示最后10行.如果指定多个文件,则在每个文件的内容前,显示一个标识该文件的文件头.)
15.mv
mv -i oldFileName newFileName
mv -i {fileName}* directoryName
mv -i oldDirectoryName newDirectoryName
功能:实用程序,重命名文件.
-i选项在newFileName已经存在的情况下,会提示是否确定要覆盖它.
16.mkdir
mkdir [-p] newDirectoryName
功能:实用程序,创建目录.
-p选项创建在newDirectoryName路径名中任何还不存在的目录.
(如果newDirectoryName已经存在,显示一个错误消息,现有文件不会有任何改变.)
17.cd
cd [directoryName]
功能:shell命令,切换目录.
(把shell的当前工作目录切换为directoryName.如果省略参数directoryName,shell将移到所有者的主目录中.)
18.cp
cp -i oldFileName newFileName
cp -ir {fileName}* directoryName
功能:实用程序,复制文件.
-i选项在newFileName已存在的情况,提示是否确定要替换.
-r选项递归复制类型为目录文件的源文件,复制的是整个目录结构.
19.rmdir
rmdir {directoryName}+
功能:实用程序,删除目录名列表中列出的所有目录.
(只有空目录才能被删除.)
20.rm
rm -fir {fileName}*
功能:实用程序,删除文件.
-i选项提示用户是否确定要删除文件:按y键确定,按n键取消.
-r选项在fileName是目录的情况下,递归删除目录的所有内容,包括子目录.
-f选项禁止显示所有的错误消息和提示.
21.wc
wc -lwc {fileName}*
功能:实用程序,计算文件中的行数,字数和(或)字符数.
-l选项计算行数.
-w选项计算字数.
-c选项计算字符数.
(如果不指定文件,则使用标准输入.)
(如果不指定任何选项,则显示全部三个数字.)
(字的定义是被制表符,空格或换行符包围的字符序列.)
22.文件属性(ls -lsF)
22.1:文件占用物理磁盘块数量.
22.2:文件类型与权限.
22.2.1:文件类型.
- 普通文件
d 目录文件
b 缓冲的(面向块的)特殊文件(如磁盘驱动器)
c 非缓冲的(面向字符的)特殊文件(如终端)
l 符号链接
p 管道
s 套接字
22.2.2:文件权限.
22.2.2.1:用户(文件所有者)
22.2.2.2:文件组
22.2.2.3:其他用户
(r 读权限,普通文件可以访问文件内容,目录文件可以列出目录中包含的文件,特殊文件可以使用系统调用read()读文件.)
(w 写权限,普通文件可以修改文件内容,目录文件可以在目录中添加或删除文件,特殊文件可以使用系统调用write()写文件.)
(x 执行权限,普通文件(必须是可执行文件)可以执行文件,目录文件可以访问目录或其子目录中的文件,特殊文件没有含义.)
(- 相应的权限被拒绝.)
22.3:硬链接数.
(指明层次结构中有多少个标签指向同一个物理文件.)
22.4:文件所有者.
(在引用用户时一般使用文本串形式的用户名,而Linux内部是用整数形式的userID来表示用户的.)
22.5:文件组.
(在引用组时一般使用文本串形式的组名,而Linux内部是用整数形式的groupID来表示组的.)
22.6:文件字节数.
22.7:文件最后修改时间.
22.8:文件名.
23.file
file {fileName}+
功能:实用程序,指明文件的内容,包括编写其中文本的语言.
(当用file检查符号链接文件时,file报告的是链接指向的文件,而不是链接本身.)
24.groups
groups [userId]
功能:实用程序,列出组.
(不带参数时,列出你是成页之一的所有组.如果指定一个用户名,则显示该用户所在的所有组.)
25.chgrp
chgrp -R groupName {fileName}*
功能:实用程序,允许用户改变他所拥有的文件的组.
-R选项递归地改变目录中文件的组.
26.chmod
chmod -R change{,change}* {fileName}+
功能:实用程序,修改文件权限.
-R选项递归地改变目录中文件的权限模式.
change参数可以下列形式之一:
clusterSelection+newPermissions(添加权限)
clusterSelection-newPermissions(删除权限)
clusterSelection=newPermissions(只分配这种权限)
其中,clusterSelection是以下各项的任意组合:
u(用户/文件所有者)
g(组)
o(其他用户)
a(所有用户)
newPermissions是以下各项的任意组合:
r(读)
w(写)
x(执行)
s(设置用户ID/设置组ID)
(chmod实用程序可以用一个八进制数指定文件的权限设置,对应一个表示权限的三位二进制数.)
27.chown
chown -R newUserId {fileName}*
功能:实用程序,改变文件所有者.
-R选项递归地改变目录中文件的所有权.
28.newgrp
newgrp {-|groupName}
功能:实用程序,改变组.
-参数用登录系统时创建的shell的相同设置新建一个shell.
groupName参数新建一个有效组ID对应组名的新shell,老的shell进休眠状态,直到退出新建的shell.
29.tset
tset -s [-ec] [-ic] {-m portId:[?]terminalType}*
功能:实用程序,确定终端类型和重设终端类型进行标准操作.
-s选项:
如果不使用-s选项,tset假定终端类型已经存储在TERM环境变量中,并使用存储在"/etc/termcap"或terminfo数据库中的终端功能信息重设终端.
如果使用-s选项,tset检查"/etc/ttys"文件,并把终端的端口映射为此处列出的一种终端类型.然后生成shell命令到标准输出,命令执行时,TERM和TERMCAP环境变量被正确设置.tset使用SHELL环境变量的内容确定生成哪种shell命令.在执行tset生成的命令序列期间,必须暂时禁止文件名扩展,因为可能会有特殊字符被shell错误地解释.
-e选项设置终端的删除字符c,代替默的Control-H设置.表示控制字符可以直接输入字符或在字符前加一个前缀^(即^h表示Control-H).
-i选项设置终端的中断字符为c,代替默认的Control-C设置,表示控制字符可以直接输入字符或在字符前加一个前缀^(即^c表示Control-C).
-m选项可覆盖或补充"/etc/ttys"是映射.序列"-m pp:tt"告诉tset如果终端的端口类型是pp,它应该假定终端是tt类型.如果冒号( : )后面跟随一个问号(?),tset显示tt,并要求用户或者按下回车键,确认终端类型就是tt,或者输入tset应该使用的实际的终端类型.
30.stty
stty -a {option}* {metacharacterString<value>}*
功能:实用程序,检查并设置终端的特性.
-a选项可以列出终端当前的设置.
31.vim
31.1:启动vim.
vim
vim fileName
31.2:文本输入模式.
按下以下列出的任意一个键,都可以从命令模式切换到文本输入模式:
i 在光标前插入文本
I 在当前行的开始插入文本
a 在光标后插入文本
A 在当前行的末尾插入文本
o 在当前行之后打开文本插入点
O 在当前行之后打开文本插入点
R 替换(覆盖)文本
按下Esc键可以从文本模式切换到命令模式.
31.3:命令模式.
按下特殊字符序列,可以选择vim的编辑功能.如,要删除一个字,可以把光标放在这个字的开始,按下d键,再按下w键(delete word).
:命令序列.如,命令:1,3d<Enter>可以删除1到3行.
vim接受的表示行范围的两种格式:
单行,注明行号.
包含多行的块,注明第一行和最后一行的行号,中间有逗号隔开.
vim用$表示文件中最后一行的行号,用.表示包含光标的当前行的行号.
vim中可以使用算术表达式表示行号.如,命令:.,.+2d<Enter>可以删除当前行和随后的两行.
表示行范围的其他几种方式:
1,$ 文件中的所有行
1,. 从第一行到当前行的所有行(包括第一行和当前行)
.,$ 从当前行到最后一行的所有行(包括当前行和最后一行)
.-2 在当前行之前两行的那一行
.+2 在当前行之后两行的那一行
31.4:内存缓冲区和临时文件.
在编辑文件时,vim把文件的一个副本保存在内存中,对这个副本进行修改.直到显示地指示vim写文件时,或者用同时也写文件的一个退出命令退出vim时,磁盘上的文件才会被修改.
在编辑文件时不要连续编辑太长时间,隔一定时间就把修改写入磁盘文件,或者退出vim再返回,是一个好习惯.
31.5:常见的编辑功能.
vim最常见的编辑功能分为以下几类:
移动光标
删除文本
替换文本
粘贴文本
查找文本
查找/替换文本
保存/加载文本
其他功能(包括退出vim)
31.6:光标移动.
上移一行 <向上光标键>或k
下移一行 <向下光标键>或j
右移一个字符 <向右光标键>或l(不会自动换行)
左移一个字符 <向左光标键>或h(不会自动换行)
移到本行开始 ^
移到本行末尾 $
后退一个字 b
前进一个字 w
前进到当前字的末尾 e
移到屏幕顶部 H
移到屏幕中部 M
移到屏幕底部 L
下移半屏 Control-D
前进一屏 Control-F
上移半屏 Control-U
后退一屏 Control-B
移到nn行 :nn<Enter>(nnG也可以)
移到文件末尾 G
31.7:删除文本.
字符 将光标置于字符之上,按x键
字 将光标置于字的开始,按d键和w键
行 将光标置于行中任意位置,按dd键(在dd前输入一个数字,vim会按照指定数字删除从当前行开始向下的若干行)
从当前位置到当前行末尾 按D键
包括若干行的一个块 :<range>d<Enter>
31.8:替换文本.
字符 将光标置于字符上,按r键,然后输入替换字符.
字 将光标置于字的开始,按c键和w键,然后输入替换文本,再按Esc键.
行 将光标置于行中任意位置,按c键两次,然后输入替换文本,再按Esc键.
31.9:粘贴文本.
vim维护一个粘贴缓冲区,用于文件中的复制和粘贴文本.
复制若干行到粘贴缓冲区 :<range>y<Enter>
复制当前行到粘贴缓冲区 Y
在当前行之后插入粘贴缓冲区 p或: pu<Enter>(粘贴缓冲区内容不变)
在nn行之后插入粘贴缓冲区 :nnpu<Enter>(粘贴缓冲区内容不变)
31.10:查找.
vim可以在文件中相对于当前行向前和向后查找某个子串.
从当前位置向前查找字符串sss /sss/<Enter>
从当前位置向后查找字符串sss ?sss?<Enter>
重复上一次查找 n
向相后方向重复上一次查找 N
31.11:查找/替换.
用ttt替换每行中sss的第一个具体值 :<range>s/sss/ttt/<Enter>
用ttt替换每行中sss的所有具体值(全局替换) :<range>s/sss/ttt/g<Enter>
31.12:保存/加载文件.
将文件另存为<name> :w<name><Enter>
用现有的文件名保存文件 :w<Enter>
用现有的文件名保存文件并退出 :wq<Enter>(也可以使用ZZ)
把某个范围内的行保存到另一个文件 :<range>w<name><Enter>
在当前位置读入另一个文件的内容 :r<name><Enter>
放弃当前文件,编辑<name>文件 :e<name><Enter>
编辑最初在命令行中输入的下一个文件 :n<Enter>
(如果第一次启动vim时输入了多个文件,那么vim会先加载第一个文件,要编辑下一个文件,可使用组合键:n.
31.13:其他操作.
重绘屏幕 Control-L
撤销上一次操作 u
撤销对当前行的多个操作 U
连接当前行和下一行 J
重复上次操作 .
在子shell中执行命令,然后返回到vim :!<command><Enter>
在子shell中执行命令,然后在当前位置把命令输出读入编辑缓冲区 :r!<command><Enter>
保存了修改之后退出 :q<Enter>
不保存修改退出 :q!<Enter>
保存修改并退出 :wq<Enter>
31.14:自定义vim.
用户可以设置各种选项来定义vim在不同场合的行为.":set"命令能设置vim的选项,也能取消设置.输入":set all"将列出vim支持的所有选项和当前设置.设置可以打开或关闭,或设为数字或字符串.
autoindent 随后输入的行自动缩进,与上一行对齐 关(默认)
ignorecase 在查找和替换过程中,不区分大小写 关(默认)
number vim在屏幕左边显示行号 关(默认)
showmode 不在命令模式中时,vim指明处于何种文本输入模式(打开,插入,追加或替换) 开(默认)
showmatch vim在用户输入结束括号时,短暂地把光标移到开始括号 关(默认)
(要打开autoindent,输入":set autoindent<Enter>".要关闭autoindent,输入":set noautoindent<Enter>".
31.15:保存自定义设置.
要使vim每次运行时自动设置autoindent和ignorecase,可以创建一个叫做".exrc"的文件.在文件中写入以下几行:
set autoindent
set ignorecase
set nonumber
其实,不必设置"nonumber",它默认就是关闭的. |
|