linux学习心得
2010-07-01 17:01
281 查看
一、 vi使用场景&常用命令
Vi命令模式:
进入vi之后默认的就是命令模式,此时可以执行一些常用的编辑命令,如:
vi行末模式
esc + “:” 进入行末模式
此时可以执行行末模式的命令和系统shell命令
Vi输入模式:
进入vi之后,可以像在windows记事本中一样进行文本编辑
vi编辑多个文件
系列图1:
Step1:打开file1
File1内容:
Step2:按esc,shift+: 进入行末模式,输入new file2
执行结果:
上半部分是file2内容,下半部分是file1内容
Step3:可以通过 ctrl+w 在两个文件中间进行切换(图省略)
Step4:跳到file1中第一行执行复制命令yy
Step5:跳到file2中最后一行执行粘贴命令p
Step6:到行末模式下执行wq保存文件并退出,每执行一次关闭一个文件
二、 vi正则表达式:
表示内容的元字符
表示数量的元字符
表示转义和位置的元字符
替换变量
在正规表达式中使用 /( 和 /) 符号括起正规表达式,即可在后面使用/1、/2等变量来访问 /( 和 /) 中的内容。
懒惰模式
/{-n,m} 与/{n,m}一样,尽可能少次数地重复
/{-} 匹配它前面的项一次或0次, 尽可能地少
/| "或"操作符
/& 并列
三、 vi查找替换
首先进入行末模式
查找:
替换:(abc和def可以为正则表达式)
只要熟悉了正则表达式,就可以很容易的实现想要的查找功能
四、 Grep使用场景及常用命令
Grep是要在一个文件中过滤出需要的行或者单词
Grep “abc” file 在file中查找abc,过滤出所有包含abc的行
Grep 常用的命令选项:
五、 Awk使用场景及常用命令
Awk是一个行编辑工具,可以轻松地实现查找、替换、输出定制等功能
awk 用法:awk ‘ pattern {action} ‘
变量名&含义
命令&含义
六、 sed使用场景及常用命令
sed也是一个行编辑工具,主要实现的功能是替换、定制化输出,很多功能和awk都是重叠的,一般都是用其做替换。
命令&含义
七、 Cat使用场景及常用命令
将文件打印到屏幕上,当要输出而不是编辑文件的时候建议使用改命令
Cat file1 >> file2 将file1的内容追加到file2尾部
Cat file1 file2 > file3 将文件file1和file2合成为file3
Cat file1 file2 根据次序显示file1和file2的内容
八、 Man
查看linux命令的帮助文档,如:
Man ls
Man cd
九、 Mv
用户可以使用mv命令为文件或目录改名或将文件由一个目录移至另一个目录。
Mv file1 file2 文件file1命名为file2
Mv file1 dir1/ 文件file1移到文件夹file2
Mv dir1 dir2/ 如果不存在目录dir2,目录dir1命名为dir2,否则会移到dir2下面
十、 Cp
拷贝文件
Cp file1 file2 将file1拷贝为file2
Cp –r dir1 dir2 将目录dir1拷贝为dir2
十一、 Ps
查看当前进程
Ps xf 以进程目录树的形式查看目前用户下的进程
Ps aux 查看所有的进程
十二、 Curl
Curl可以模拟多种协议的请求,如:
FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP
一般我们使用http请求
Curl –s http://www.taobao.com
十三、 Ssh
远程链接,链接的时候需要指定用户名和密码,如:
Ssh admin@192.168.1.1
也可以Ssh到远程机器上执行命令
Ssh admin@192.168.1.1 “ls”
十四、 Scp
远程传输工具,和ssh类似
Scp admin@192.168.1.1:~/file file
将远程机器上的file文件传输到本地
也可以
Ssh file admin@192.168.1.1:~/file
将本地的file文件传输到远程机器
Linux常用命令集锦:
原文地址:http://qa.taobao.com/?p=7389
命令 | 含义 |
vi | 进入 |
vi file1 | 打开文件 |
Vi命令模式:
进入vi之后默认的就是命令模式,此时可以执行一些常用的编辑命令,如:
命令 | 含义 | 命令 | 含义 |
a | 在光标后输入(进入输入模式) | A | 行尾插入(进入输入模式) |
i | 在光标前输入(进入输入模式) | I | 从光标所在列的第一个非空白字元前面开始插入(进入输入模式) |
o | 光标所在行下面新加一行(进入输入模式) | O | 光标所在行上面新加一行(进入输入模式) |
y | 复制选择部分 | yw | 复制单词 |
yy | 复制行 | p | 粘贴 |
d | 删除选择部分 | dd | 删除行 |
数字n+dd | 删除n行 | gg | 到文件头 |
GG | 到文件尾 | h | 后退一个字符 |
l | 前进一个字符 | j | 前进一行 |
k | 后退一行 | n | 找到下一个匹配字符 |
N | 找到上一个匹配字符 | 0 | 到行首 |
$ | 到行尾 | r | 替换 |
u | 撤销上一次操作 | v | 进入选择模式 |
x | 删除一个字符 | shift+v | 进入行选择模式 |
ctrl+v | 进入列选择模式 | ctrl+f | 向下翻屏 |
ctrl+b | 向上翻屏 | ctrl+u | 向上翻半屏 |
ctrl+d | 向下翻半屏 |
vi行末模式
esc + “:” 进入行末模式
此时可以执行行末模式的命令和系统shell命令
Vi输入模式:
进入vi之后,可以像在windows记事本中一样进行文本编辑
命令 | 含义 | 命令 | 含义 |
esc | 重新进入命令模式 | esc + “:” | 进入vi行末模式 |
q | 退出 | q! | 强制退出 |
wq | 保存并退出 | w | 保存 |
ls | 执行系统命令 |
vi编辑多个文件
命令 | 含义 |
vi file1 file2 | 同时打开多个文件 |
vi file1 | 先打开一个文件再打开另一个文件 |
Vi file1+行末模式+new file2 | 在打开一个文件后,打开另一个文件(过程见系列图1) |
系列图1:
Step1:打开file1
vi file1 |
Step2:按esc,shift+: 进入行末模式,输入new file2
执行结果:
上半部分是file2内容,下半部分是file1内容
Step3:可以通过 ctrl+w 在两个文件中间进行切换(图省略)
Step4:跳到file1中第一行执行复制命令yy
Step5:跳到file2中最后一行执行粘贴命令p
Step6:到行末模式下执行wq保存文件并退出,每执行一次关闭一个文件
二、 vi正则表达式:
表示内容的元字符
模式 | 含义 |
. | 匹配任意字符 |
[abc] | 匹配方括号中的任意一个字符。可以使用-表示字符范围,如[a-z0-9]匹配小写字母和阿拉伯数字。 |
[^abc] | 在方括号内开头使用^符号,表示匹配除方括号中字符之外的任意字符。 |
/d | 匹配阿拉伯数字,等同于[0-9]。 |
/D | 匹配阿拉伯数字之外的任意字符,等同于[^0-9]。 |
/x | 匹配十六进制数字,等同于[0-9A-Fa-f]。 |
/X | 匹配十六进制数字,等同于[^0-9A-Fa-f]。 |
/w | 匹配单词字母,等同于[0-9A-Za-z_]。 |
/W | 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]。 |
/t | 匹配<TAB>字符。 |
/s | 匹配空白字符,等同于[ /t]。 |
/S | 匹配非空白字符,等同于[^ /t]。 |
/a | 所有的字母字符. 等同于[a-zA-Z] |
/l | 小写字母 [a-z] |
/L | 非小写字母 [^a-z] |
/u | 大写字母 [A-Z] |
/U | 非大写字母 [^A-Z] |
表示数量的元字符
模式 | 含义 |
* | 匹配0-任意个 |
/+ | 匹配1-任意个 |
/? | 匹配0-1个 |
/{n,m} | 匹配n-m个 |
/{n} | 匹配n个 |
/{n,} | 匹配n-任意个 |
/{,m} | 匹配0-m个 |
/_. | 匹配包含换行在内的所有字符 |
/{-} | 表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好 |
/= | 匹配一个可有可无的项 |
/_s | 匹配空格或断行 |
表示转义和位置的元字符
模式 | 含义 | 模式 | 含义 |
/* | 匹配 * 字符 | $ | 匹配行尾 |
/. | 匹配 . 字符 | ^ | 匹配行首 |
// | 匹配 / 字符 | /< | 匹配单词词首 |
// | 匹配 / 字符 | /> | 匹配单词词尾 |
/[ | 匹配 [ 字符 |
替换变量
在正规表达式中使用 /( 和 /) 符号括起正规表达式,即可在后面使用/1、/2等变量来访问 /( 和 /) 中的内容。
懒惰模式
/{-n,m} 与/{n,m}一样,尽可能少次数地重复
/{-} 匹配它前面的项一次或0次, 尽可能地少
/| "或"操作符
/& 并列
三、 vi查找替换
首先进入行末模式
查找:
模式 | 含义 |
/abc | 查找含有abc的行 |
/^abc | 查找开头是abc的行 |
/abc$ | 查找结尾是abc的行 |
/a[ab]c | 查找aac或者abc |
/a[^b]c | 查找除abc之外的所有a*c |
/a.*c | 查找含有a*c的行,.*是最长匹配 |
/a[0-9]c | 查找含有 “a任一数字c” 的行 |
/a[0-9a-z]c | 查找含有 “a任一数字或者小写字母c” 的行 |
替换:(abc和def可以为正则表达式)
模式 | 含义 |
s/abc/def/ | 将所在行的第一个abc替换成def |
s/abc/def/g | 将所在行的所有abc替换成def |
%s/abc/def/g | 将所有的abc替换成def |
start,end s/abc/def/g | 将start和end行之间的abc替换成def |
只要熟悉了正则表达式,就可以很容易的实现想要的查找功能
四、 Grep使用场景及常用命令
Grep是要在一个文件中过滤出需要的行或者单词
Grep “abc” file 在file中查找abc,过滤出所有包含abc的行
Grep 常用的命令选项:
选项 | 含义 |
-e | 正则表达式 |
-i | 忽略大小写 |
-o | 只输出匹配到的字符串 |
-v | 输出未匹配到的行 |
-c | 输出匹配到的行数量 |
-l | 输出匹配到的文件,文件名可以是正则表达式 |
Awk是一个行编辑工具,可以轻松地实现查找、替换、输出定制等功能
awk 用法:awk ‘ pattern {action} ‘
变量名&含义
变量名 | 含义 | 变量名 | 含义 |
FILENAME | 当前输入文件名 | NR | 当前文件中的记录号 |
FS | 输入域分隔符,默认为一个空格 | RS | 输入记录分隔符 |
NF | 当前记录里域个数 | NR | 到目前为止记录数 |
OFS | 输出域分隔符 | ORS | 输出记录分隔符 |
命令&含义
命令 | 含义 |
Awk ‘/abc/’ file | 输出包含abc的行 |
Awk ‘/abc/,/def/ ’file | 输出包含abc和def的行 |
Awk ‘{FS=”/t”} {print $0}’ file | 文件以tab分隔,输出整行 |
Awk ‘{FS=”/t”} {print $1}’ file | 文件以tab分隔,输出第一列 |
Awk ‘{FS=”/t”} {print $1”/t”$2}’ file | 文件以tab分隔,输出第一列第二列,输出以/t分隔 |
Awk ‘{FS=”/t”} if($1>10){print $0}’ file | 文件以tab分隔,输出第一个列大于10的行 |
Awk ‘{FS=”/t”} if($1>$2){print $0}’ file | 文件以tab分隔,输出第一列大于第二列的行 |
Awk ‘{FS=”/t”} if($1%5==0){print $0}’ file | 文件以tab分隔,输出第一列与5取模为0的行 |
Awk ‘$2>5 && $2<=15’ file | 输出第二列大于5小于等于15的行 |
Awk ‘$1~/abc/ {print $0}’ file | 显示第一个域匹配abc的行 |
awk ‘BEGIN{a=1;} {if(a%2==0){print $0;}a++;}’ | 输出偶数行 |
awk ‘{FS=”/t”} {if($1==”abc”){$1=”def”; print $0}}’ | 将abc替换成def并输出 |
六、 sed使用场景及常用命令
sed也是一个行编辑工具,主要实现的功能是替换、定制化输出,很多功能和awk都是重叠的,一般都是用其做替换。
命令&含义
命令 | 含义 |
Sed –e “s/abc/def/g” file | 将abc替换成def,然后输出,-e表示使用正则表达式 |
Sed –i “s/abc/def/g” file | 将abc替换成def,不输出,-i表示直接对文件进行操作 |
Sed –e “s/abc/def/g; s/aaa/bbb/g” | 进行多处替换,将abc替换成def,将aaa替换成bbb |
Sed –e “/abc/d” file | 将匹配abc的行删除 |
Sed –e “1d” | 删除第一行 |
Sed –e “1,10d” file | 将第1行至第10行进行删除 |
Sed –e “1,$d” file | 将第1行至最后一行进行删除 |
七、 Cat使用场景及常用命令
将文件打印到屏幕上,当要输出而不是编辑文件的时候建议使用改命令
Cat file1 >> file2 将file1的内容追加到file2尾部
Cat file1 file2 > file3 将文件file1和file2合成为file3
Cat file1 file2 根据次序显示file1和file2的内容
八、 Man
查看linux命令的帮助文档,如:
Man ls
Man cd
九、 Mv
用户可以使用mv命令为文件或目录改名或将文件由一个目录移至另一个目录。
Mv file1 file2 文件file1命名为file2
Mv file1 dir1/ 文件file1移到文件夹file2
Mv dir1 dir2/ 如果不存在目录dir2,目录dir1命名为dir2,否则会移到dir2下面
十、 Cp
拷贝文件
Cp file1 file2 将file1拷贝为file2
Cp –r dir1 dir2 将目录dir1拷贝为dir2
十一、 Ps
查看当前进程
Ps xf 以进程目录树的形式查看目前用户下的进程
Ps aux 查看所有的进程
十二、 Curl
Curl可以模拟多种协议的请求,如:
FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP
一般我们使用http请求
Curl –s http://www.taobao.com
十三、 Ssh
远程链接,链接的时候需要指定用户名和密码,如:
Ssh admin@192.168.1.1
也可以Ssh到远程机器上执行命令
Ssh admin@192.168.1.1 “ls”
十四、 Scp
远程传输工具,和ssh类似
Scp admin@192.168.1.1:~/file file
将远程机器上的file文件传输到本地
也可以
Ssh file admin@192.168.1.1:~/file
将本地的file文件传输到远程机器
Linux常用命令集锦:
命令 | 含义 |
ls –ltr * | 按照修改时间来显示文件 |
find . –type f | 当前目录下查找普通文件 |
find . –name “file” | xargs –n1 grep “abc” | 当前目录下按照名字查找文件file并从中查找字符串abc |
du –sh * | 查看文件大小 |
df –h | 查看磁盘空间 |
top | 查看机器运行状况 |
historydiff file1 file2 | 查看历史命令查看两个文件的差异 |
vimdiff file1 file2 | 比较并编辑两个文件 |
head –n file | 查看一个文件的前n行 |
tail –n file | 查看一个文件的后n行 |
tail –f file | 一直查看文件的变化(当文件的内容一直发生变化是,该命令能一直显示最新的内容) |
sort file | 按照字母进行排序 |
sort –n file | 按照数字进行排序 |
sort –n –r file | 按照数字逆序排序 |
sort –u file | 按照字母排序并对结果进行uniq操作 |
sort –n –u file | 按照数字排序并对结果进行uniq操作 |
相关文章推荐
- 接触学习linux系统服务搭建两年来的心得
- 我在大学毕业后学习Linux系统的心得经验
- linux之awk学习心得
- [Linux/Mac学习] grep用法心得
- 学习linux字符设备驱动心得
- Linux学习笔记及心得(持续更新)
- Linux基础 学习心得
- 有关linux的学习心得
- 华为内部LINUX学习资料 笔记心得及linux学习口诀秘诀
- linux下raid学习心得和raid0的实现
- Linux系统的学习心得
- 关于学习linux的一些心得体会
- linux awk 数组的学习心得
- 学习了LINUX下用C语言遍历文件夹,一些心得
- Linux系统的理解及学习Linux内核的心得
- Linux【学习心得】深入剖析软件的源码安装
- 学习心得之linux环境篇
- [Linux/Mac学习] grep用法心得
- 学习了LINUX下用C语言遍历文件夹,一些心得
- 我在大学毕业后学习Linux系统的心得经验