Linux命令大全
一、系统管理与设置; 二、用户和用户组管理; 三、磁盘管理; 四、文件和目录管理; 五、备份与压缩; 六、网络管理与相关应用; 七、vi/vim编辑器; 八、Shell编程
一、系统管理与设置
1、信息显示命令
64位系统输出信息如下:
sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
32位系统输出信息如下:
/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
64位系统输出如下信息:
Linux server141.guodu.net 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
32位系统输出如下信息:
Linux bank.guodu.net 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
Linux内核版本信息:
Redhat 9.0———————————————2.4.20-8
RHEL 3 Update 8————————————2.4.21-47
RHEL 4 ————————————————2.6.9-5
RHEL 4 Update 1————————————2.6.9-11
RHEL 4 Update 2————————————2.6.9-22
RHEL 4 Update 3————————————2.6.9-34
RHEL 4 Update 4————————————2.6.9-42
RHEL 4 Update 5————————————2.6.9-55
RHEL 4 Update 6————————————2.6.9-67
RHEL 4 Update 7————————————2.6.9-78
CENTOS 5/RHEL 5 ———————————2.6.18-8
CENTOS 5.1/RHEL 5 Update 1——————2.6.18-53
CENTOS 5.2/RHEL 5 Update 2——————2.6.18-92
CENTOS 5.3/RHEL 5 Update 3——————2.6.18-128
CENTOS 5.4/RHEL 5 Update 4——————2.6.18-164
CENTOS 5.5/RHEL 5 Update 5——————2.6.18-194
CENTOS 5.6/RHEL 5 Update 6——————2.6.18-238
2、系统管理命令
bash 快捷键:
常用:
Ctrl+a 开始位置
Ctrl+e 最后位置
Ctrl+k 删除此处至末尾所有内容
Ctrl+u 删除此处至开始所有内容
Ctrl-C 杀死当前任务
Ctrl-L 刷新屏幕
Ctrl-shift-c 复制
Ctrl-shift-v 粘贴
tab 补全
terminal窗口操作:
Alt+1 切换到标签页1
Alt+2 切换到标签页2
Alt+3 切换到标签页3
Ctrl+PageDown 后一标签页
Ctrl+PageUp 前一标签页
Shift+Ctrl+N 新建窗口
Shift+Ctrl+PageDown 标签页右移
Shift+Ctrl+PageUp 标签页左移
Shift+Ctrl+Q 关闭终端
Shift+Ctrl+T 新建标签页
Shift+Ctrl+W 关闭标签页
terminal窗口中的复制/粘贴:
Shift+Ctrl+C 复制
Shift+Ctrl+V 粘贴
改变terminal窗口大小:
!! 执行上一条命令
!?string? 执行含有string字符串的最新命令
!num 执行命令历史列表的第num条命令
↑(Ctrl+p) 显示上一条命令
↓(Ctrl+n) 显示下一条命令
Alt+< 历史列表第一项
Alt+> 历史列表最后一项
Ctrl - 减小
Ctrl+Shift + 放大
Ctrl 0 原始大小
Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令
Ctrl+s 与Ctrl+r类似,只是正向检索
F11:全屏
history 显示命令历史列表
ls !$ 执行命令ls,并以上一条命令的参数为其参数
光标移动:
Alt+b 光标向后移动一个单词
Alt+c 把当前词汇变成首字符大写
Alt+d 剪切光标之后的词
Alt+f 光标向前移动一个单词
Alt+l 把当前词转化为小写
Alt+t 交换当前与以前单词的位置
Alt+u 把当前词转化为大写
Ctrl+(x u) 按住Ctrl的同时再先后按x和u,撤销刚才的操作
Ctrl+a 光标移到行首。
Ctrl+b 光标左移一个字母
Ctrl+c 删除整行
Ctrl+d 删除光标所在字母(注意与backspace以及Ctrl+h的区别,这两个是删除光标前的字符)
Ctrl+d 退出当前 Shell(当前行无字符时)
Ctrl+e 光标移到行尾。
Ctrl+f 光标右移。
Ctrl+h 删除光标前一个字符,相当于按 backspace 键。
Ctrl+k 清除光标后至行尾的内容。
Ctrl+l 清屏,相当于clear
Ctrl+q 重新启用挂起的shell
Ctrl+r 搜索以前输入过的命令。将有提示,根据输入的关键字搜索bash的history
Ctrl+s 挂起当前shell
Ctrl+t 交换光标位置前的两个字符。
Ctrl+u 清除光标前至行首间的所有内容。
Ctrl+v 插入特殊字符,如Ctrl+v+Tab加入Tab字符键
Ctrl+w 清除光标所在处之前的一个词(以空格、标点等为分隔符)
Ctrl+y 粘贴或恢复上次的删除。
Ctrl+z 把当前进程转到后台运行,使用 fg 命令恢复。
Esc+b 移动到当前单词的开头
Esc+f 移动到当前单词的结尾
Esc+t 颠倒光标所在处及其相邻单词的位置
Esc+w 删除光标所在处之前的字符至其单词尾(以空格、标点等为分隔符)
3、系统维护命令
修改/etc/sysconfig/clock文件的内容为:
ZONE=”Asia/Shanghai”
UTC=false
ARC=false
(注:以上命令使用的shell是bash)
do rpm -e $i -nodeps
done //删除系统中与软件php相关的所有已安装的软件包
释放linux系统的内存(在RHEL4.0及以上版本测试通过。注:在应用程序未退出时不能使用该命令):
为内核打补丁
iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8 //把用繁体编码的utf8文件vi.utf8转成简体的utf8文件vi.gb.utf8
4、自动作业处理
5、系统日志
二、用户和用户组管理
EOF //向登录用户wang发送即将关机的信息
System will shutdown soon!
三、磁盘管理
========================== 参考: mount远程目录并让本地非root用户可读可写 http://blog.chinaunix.net/uid-20680966-id-4153081.html
==========================
Block size: 4096
四、文件和目录管理
cp [-adfilprsu] 源文件(source) 目标文件(destination) cp [options] source1 source2 source3 … directory 参数: -a:相当于-pdr的意思,见后文(常用); -d:若源文件为连接文件属性,则复制连接文件属性而非文件本身; -f:若目标文件已存在且无法开启,则删除后再尝试一次; -i:若目标文件已存在时,在覆盖时会先询问操作的进行(常用); -l:进行硬连接的连接文件创建,而非复制文件本身; -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用); -r:递归持续复制,用于目录的复制行为(常用); -s: 复制成为符号链接文件,即“快捷方式”文件; -u:若destination比source旧才更新destination。最后需注意的是,如果源文件有两个以上,则最后一个目的文件一定要是“目录”才行。
chmod —=0 -w-=2 r–=4 rw-=6 --x=1 -wx=3 r-x=5 rwx=7 s,S,t,T=特殊权限
u=属主 g=属组 o=其它用户 a=所有用户 rwx=读,写,执行 ±=:加权限,减权限,赋权限
空格键:向下翻动一页;
[PageDown]:向下翻动一页;
[PageUp]:向上翻动一页;
/字符串:向下查询“字符串”的功能;
?字符串:向上查询“字符串”的功能;
n:重复前一个查询(与/或?有关);
N:反向重复前一个查询(与/或?有关);
q:离开less这个程序。
lrwxrwxrwx 1 root root 4 Apr 7 2010 disk1 -> home/
五、备份与压缩
六、网络管理与相关应用
动态增加IP
DNS域名
NFS服务
showmount -e 192.168.2.10 6 //在客户上查看服务器共享目录
配置文件
vi /etc/hosts vi /etc/network //修改主机名称配置文件
vi /etc/rc.local //修改mac地址配置文件
vi /etc/resolv.conf //修改DNS配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0 //修改网卡配置文件
vi /var/spool/cron/username //修改cron任务配置文件
vi /var/spool/mail //修改邮件配置文件
七、vi/vim编辑器
也可建立vi到vim的符号连接(即实际调用的是vim)
进入vi的命令:
vi 直接进入编辑并创建新文件
vi filename 编辑文件(不存在则创建文件),并将光标置于第一行首
vi +n filename 打开文件,并将光标置于第n行首
vi + filename 打开文件,并将光标置于最后一行首
vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复文件
vi file1…filen 打开多个文件,依次进行编辑
vi -o aaa bbb 水平窗口打开aaa,bbb两个文件
vi -O aaa bbb 垂直窗口打开aaa,bbb两个文件(Ctrl+W两次可在多个文件间切换)
多文本编辑的按键: :n 编辑下一个文件 :N 编辑上一个文件 :files 列出目前这个vi的打开的所有文件
多窗口情况下的按键功能: :sp [filename] 打开一个新窗口,如果有加filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容(同步显示)
[ctrl]+w+j [ctrl]+w+↓ 按键的按法是:先按下[ctrl]不放,再按下w后放开所有的按键,然后再按下j(或向下箭头键),则光标可移动到下方的窗口
[ctrl]+w+k [ctrl]+w+↑ 同上,不过光标移动到上面的窗口
[ctrl]+w+q 其实就是:q结束离开。例如,想要结束下方的窗口,那么利用[ctrl]+w+↓移动到下方窗口后,按下:q即可离开,也可以按下[ctrl]+w+q
块选择的按键意义: v 字符选择,将光标经过的地方反白选择
V 行选择,将光标经过的行反白选择
Ctrl + v 块选择,可以用长方形的方式选择数据
y 将反白的地方复制起来 d 将反白的地方删除
恢复命令:
u 恢复最后一个指令之前的结果 . 继续最后一个指令的执行结果
ctrl+r 撤销恢复
U 恢复光标该行之所有改变
移动光标命令:
h 光标左移一个字符
l 光标右移一个字符
space 光标右移一个字符
Backspace 光标左移一个字符
k或Ctrl+p 光标上移一行
j或Ctrl+n 光标下移一行
Enter 光标下移一行
w或W 光标右移一个字至字首
b或B 光标左移一个字至字首
e或E 光标右移一个字至字尾
) 光标移至句尾
( 光标移至句首
} 光标移至段落开头
{ 光标移至段落结尾
nG 光标移至第n行首
n+ 光标下移n行
n- 光标上移n行
n$ 光标移至第n行尾
H 光标移至屏幕顶行
M 光标移至屏幕中间行
L 光标移至屏幕最后行
0 (注意是数字零)光标移至当前行首
$ 光标移至当前行尾
翻屏命令:
Ctrl+u 向文件首翻半屏
Ctrl+d 向文件尾翻半屏
Ctrl+f 向文件尾翻一屏
Ctrl+b 向文件首翻一屏
nz 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部
插入文本、复制与粘贴:
i 在光标前插入
I 在当前行首插入
a 在光标后插入
A 在当前行尾插入
o 在当前行之下新开一行
O 在当前行之上新开一行
r 替换当前字符
R 替换当前字符及其后的字符,直至按ESC键
s 从当前光标位置处开始,以输入的文本替代指定数目的字符
S 删除指定数目的行,并以所输入文本代替之
ncw或nCW 修改指定数目的字
nCC 修改指定数目的行
yy p 复制当前行,并粘贴到下一行 nyy n为数字。复制光标所在的向下n行,例如20yy,则是复制20行 y1G 复制光标所在行到第一行的所有数据 yG 复制光标所在行到最后一行的所有数据 y0 复制光标所在的那个字符到该行行首的所有数据 y$ 复制光标所在的那个字符到该行行尾的所有数据
shift + i 在该行之首插入字符
shift + a 在该行末尾输入字符
shift + r 改写自光标位置及后面的所有内容
shift +o 在光标之上新增一行输入字符
删除命令:
ndw或ndW 删除光标处开始及其后的n-1个字
d0 删至行首(为数字0)
d$ 删至行尾 shift + d 剪切至行尾
dd 删除一行
ndd 删除自光标开始的n行
s 删除光标所在之字符,并进入输入模式直到《ESC》
S 删除光标所在之该行资料,并进入输入模式直到《ESC》
x或X 删除一个字符,x删除光标后的,而X删除光标前的 nx n为数字,连续向后删除n个字符。如,要连续删除10个字符,则:“10x”
Ctrl+u 删除输入方式下所输入的文本
搜索及替换命令:
/pattern 从光标开始处向文件尾搜索pattern
?pattern 从光标开始处向文件首搜索pattern
n 在同一方向重复上一次搜索命令
N 在反方向上重复上一次搜索命令
:s/p1/p2/ 替换当前行第一个p1为p2
:s/p1/p2/g 将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
-
:g/p1/s//p2/g 将文件中所有p1均用p2替换
-
1,$s/old/new/g 将文件中所有的『old』改成『new』
-
1,$s/old/new/gc 将文件中所有的『old』改成『new』,并在改前提示用户确认
-
10,20s/^/ / 将第10行至第20行资料的最前面插入5个空格
-
%s/^m//g 删除文件中所有的^M符号
选项设置:
all 列出所有选项设置情况
term 设置终端类型
ignorance 在搜索中忽略大小写
list 显示制表位(Ctrl+I)和行尾标志($)
number 显示行号
report 显示由面向行的命令修改过的数目
terse 显示简短的警告信息
warn 在转到别的文件时若没保存当前文件则显示NO write信息
nomagic 允许在搜索模式中,使用前面不带“”的特殊字符
nowrapscan 禁止vi在搜索到达文件两端时,又从另一端开始
mesg 允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令:
:n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d 将n1行到n2行之间的内容删除
:e filename 打开文件filename进行编辑
-
:e! dd 强制关闭当前文件(不保存)打开新文件dd
- e! 放弃修改重新编辑
:q! 不保存文件并退出vi
:r fff 在当前位置读入fff文件
:set nonu 不显示行号
:set nu 显示行号
:w 保存输入的内容到当前文件
:w eee 另存为eee文件
:wq 保存并退出
:x 保存当前文件并退出
:n1,n2 w eee 将文件中n1行至n2行的内容保存成eee文件 :!command 暂时离开vi到命令行模式下执行command的显示结果。例如,“:! ls /home”即可在vi当中查看/home下面以ls输出的文件信息
寄存器操作:
"?nyy 将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw 将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl 将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p 取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd 将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中
vim操作环境(不建议修改/etc/vimrc文件;建议手动修改~/.vimrc文件)
vim常用指令示意图
八、shell编程
type:不加任何参数时,type会显示出name是外部命令还是bash内置命令 -t :当加入-t参数时,type会将name以下面这些字眼显示出它的意义: file:表示为外部命令 alias:表示该命令为命令别名所设置的名称; builtin:表示该命令为bash内置的命令功能。 -p :如果后面接的name为外部命令时,才会显示完整文件名; -a :会由PATH变量定义的路径中,将所有含name的命令都列出来,包含alias
/etc/fstab /root //将三个文件复制到root目录下(如果命令串太长的话,可以用两行来输出)。“[Enter]”为转义符,“>”为系统自动出现的,不需要输入。
#############################################
通配符与特殊符号 符号 意义
? 代表『一定有一个』任意字符 [ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』 [ - ] 若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的! [^ ] 若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。
bash 环境中的特殊符号 符号 内容
跳脱符号:将『特殊字符或通配符』还原成一般字符 | 管线 (pipe):分隔两个管线命令的界定(后两节介绍); ; 连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同) ~ 用户的家目录 $ 取用变量前导符:亦即是变量之前需要加的变量取代值 & 工作控制 (job control):将命令变成背景下工作 ! 逻辑运算意义上的『非』 not 的意思! / 目录符号:路径分隔的符号
, >> 数据流重导向:输出导向,分别是『取代』与『累加』 <, << 数据流重导向:输入导向 ’ ’ 单引号,不具有变量置换的功能 " " 具有变量置换的功能! 两个『 ` 』中间为可以先运行的命令,亦可使用 $( ) ( ) 在中间为子 shell 的起始与结束 { } 在中间为命令区块的组合!
#############################################
############################################# 基础正则表达式字符 (characters)
^word 意义:待查找的字符串(word)在行首 范例:查找行首为 # 开始的那一行,并列出行号 grep -n ‘^#’ regular_express.txt
word$ 意义:待查找的字符串(word)在行尾 范例:将行尾为 ! 的那一行列印出来,并列出行号 grep -n ‘!$’ regular_express.txt
. 意义:代表一定有一个任意字符的字符 范例:查找的字符串可以是 (eve) (eae) (eee) (e e), 但不能仅有 (ee),亦即 e 与 e 中间“一定”仅有一个字符,而空格符也是字符 grep -n ‘e.e’ regular_express.txt
意义:转义字符,将特殊符号的特殊意义去除 范例:查找含有单引号 ’ 的那一行 grep -n ’ regular_express.txt
意义:重复零个到无穷多个的前一个 RE(regular)字符 范例:找出含有 (es) (ess) (esss) 等等的字符串,注意,因为 * 可以是 0 个,所以 es 也是符合带查找字符串。另外,因为 * 为重复“前一个 RE 字符”的符号, 因此,在 * 之前必须要紧接著一个 RE 字符喔。例如任意字符则为 “.” grep -n 'ess’ regular_express.txt
[list] 意义:从字符集合的 RE 字符里面找出想要选取的字符 范例:查找含有 (gl) 或 (gd) 的那一行,需要特别留意的是,在 [] 当中代表一个待查找的字符, 例如“ a[afl]y ”代表查找的字符串可以是 aay, afy, aly 即 [afl] 代表 a 或 f 或 l 的意思 grep -n ‘g[ld]’ regular_express.txt
[n1-n2] 意义:从字符集合的 RE 字符里面找出想要选取的字符范围 范例:查找含有任意数字的那一行。需特别留意,在字符集合 [] 中的减号 - 是有特殊意义的,他代表两个字符之间的所有连续字符。但这个连续与否与 ASCII 编码有关,因此,你的编码需要配置正确(在 bash 当中,需要确定 LANG 与 LANGUAGE 的变量是否正确)。例如所有大写字符则为 [A-Z] grep -n ‘[A-Z]’ regular_express.txt
[^list] 意义:从字符集合的 RE 字符里面找出不要的字符串或范围 范例:查找的字符串可以是 (oog) (ood) 但不能是 (oot) ,那个 ^ 在 [] 内时,代表的意义是“反向选择”的意思。例如,我不要大写字符,则为 [^A-Z]。但是,需要特别注意的是,如果以 grep -n [^A-Z] regular_express.txt 来查找,却发现该文件内的所有行都被列出,为什么?因为这个 [^A-Z] 是“非大写字符”的意思, 因为每一行均有非大写字符,例如第一行的 “Open Source” 就有 p,e,n,o等小写字符 grep -n ‘oo[^t]’ regular_express.txt
====================================== 文件测试的标志与意义:
关於某个文件名的“文件类型”判断,如 test -e filename 表示存在否 -e 该文件名是否存在?(常用) -f 该文件名是否存在且为文件(file)(常用) -d 该文件名是否存在且为目录(directory)(常用) -b 该文件名是否存在且为一个 block device 设备 -c 该文件名是否存在且为一个 character device 设备 -S 该文件名是否存在且为一个 Socket 文件 -p 该文件名是否存在且为一个 FIFO (pipe) 文件 -L 该文件名是否存在且为一个连结文件
关於文件的权限检测,如 test -r filename 表示可读否 (但 root 权限常有例外) -r 检测该文件名是否存在且具有“可读”的权限 -w 检测该文件名是否存在且具有“可写”的权限 -x 检测该文件名是否存在且具有“可执行”的权限 -u 检测该文件名是否存在且具有“SUID”的属性 -g 检测该文件名是否存在且具有“SGID”的属性 -k 检测该文件名是否存在且具有“Sticky bit”的属性 -s 检测该文件名是否存在且为“非空白文件”
两个文件之间的比较,如:test file1 -nt file2 -nt (newer than)判断 file1 是否比 file2 新 -ot (older than)判断 file1 是否比 file2 旧 -ef 判断 file1 与 file2 是否为同一文件,可用在判断 hard link 的判定上。 主要意义在判定两个文件是否均指向同一个 inode
关於两个整数之间的判定,例如 test n1 -eq n2 -eq 两数值相等 (equal) -ne 两数值不等 (not equal) -gt n1 大於 n2 (greater than) -lt n1 小於 n2 (less than) -ge n1 大於等於 n2 (greater than or equal) -le n1 小於等於 n2 (less than or equal)
判定字串的数据 test -z string 判定字串是否为 0,若 string 为空字串,则为 true test -n string 判定字串是否非为0,若 string 为空字串,则为 false 注:-n 亦可省略
test str1 = str2 判定 str1 是否等於 str2 ,若相等,则回传 true test str1 != str2 判定 str1 是否不等於 str2 ,若相等,则回传 false
多重条件判定,例如:test -r filename -a -x filename -a 两个条件同时成立!例如 test -r file -a -x file,则 file 同时具有 r 与 x 权限时,才回传 true -o 任何一个条件成立!例如 test -r file -o -x file,则 file 具有 r 或 x 权限时,就可回传 true ! 反相状态,如 test ! -x file ,当 file 不具有 x 时,回传 true
本文地址:http://sicmodule.glev.cn/quote/838.html 歌乐夫 http://sicmodule.glev.cn/ , 查看更多