- 浏览: 344364 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
springdata_spring:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
使用Maven管理Android项目(一) -
snowfigure:
snowfigure 写道我专门登陆上来,就是想问问,这个Ve ...
IntelliJ IDEA 生成注册码源程序 -
snowfigure:
我专门登陆上来,就是想问问,这个Version有啥鸟用?定义完 ...
IntelliJ IDEA 生成注册码源程序 -
非诚勿扰男嘉宾:
引用整个包就好了,不用具体类
androidannotations Eclipse下报引用不到框架生成类错误的解决方案 -
jf_emal:
至于大数据量时导致图表渲染慢的问题,可以通过改变业务逻辑及交互 ...
报表展示组件Highcharts与Fusioncharts的对比
一、 vi 使用场景 & 常用命令
命令 | 含义 |
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 |
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 用法: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到远程机器上执行命令
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下查看进程占用端口和端口占用进程命令
2013-10-15 15:25 1765Linux下查看进程占用端口: 查看程序对应进程号 :ps ... -
Linux常用基本命令【转】
2013-02-18 10:00 952Linux 基本命令 Li ... -
Linux常用命令总结【转】
2012-10-10 13:43 768原文见: http://www.alibabatech. ... -
crontab执行shell脚本时,不执行mvn命令
2012-06-07 20:59 2275crontab执行shell脚本时,不执行mvn命令 ... -
ubuntu上使用rvm,gem install 报错
2012-05-14 17:49 1296gem install bundler ERROR: ... -
ubuntu上安装sun-java6(转)
2012-05-14 10:47 953Ubuntu < 10.10 To instal ... -
[转]ubuntu12.04搭建ruby on rails 环境
2012-05-14 10:28 1276经过几天的实验,终于 ... -
linux ps命令,查看进程cpu和内存占用率排序(转)
2012-04-19 14:22 3432使用以下命令查看: ... -
rvm实用指南(三)——安装ruby1.9.3报错
2012-04-17 15:52 1501今天在用rvm install 1.9.3时,报了些莫 ... -
linux服务器问题排查常用命令【转】
2012-03-09 16:54 892linux服务器问题排查常用命令,详情见 http://ia ... -
Ubuntu terminator 多窗口终端的快捷键(转)
2011-12-20 21:33 6753Ctrl+Shift+O Split terminals ... -
Linux查看日志命令(转)
2011-11-10 20:20 21761、cat命令: ... -
Linux系统信息查看命令大全(转)
2011-11-04 10:45 724系统 # uname -a ... -
找回ubuntu未分配的磁盘空间的解决办法
2011-10-11 19:52 4833将在160G硬盘的主机上制作的ubuntu镜像,安装到250G ... -
Ubuntu下bundle install报错
2011-09-28 15:56 3848Ubuntu下bundle install命令报错 / ... -
Ubuntu下rvm使用的几个命令
2011-09-28 15:32 878在删除bundler gem包时出现错误,解决措施如下: ... -
在Ubuntu中如何安装Tweak
2011-07-26 13:16 3326Tweak的设计目地是让系统管理和应用管理更加容易。Ubunt ... -
Ubuntu下VirtualBox虚拟系统中无法识别USB的解决方法(转)
2011-07-22 16:30 12898在Virtualbox虚拟机配置面板中打开USB设备选项, ... -
Ubuntu升级后VirtualBox虚拟机无法启动问题的解决方法
2011-07-22 16:20 2107很多时候升级内核都会出现这样的“故障”,因为驱动和内核不匹配了 ... -
远程访问Ubuntu上的Myql时,报10061错误
2011-07-17 17:25 2002在 Ubuntu 中通过 mysql 命令行创建好一 ...
相关推荐
Linux系统学习心得 本资源摘要信息涵盖了 Linux 系统的基础命令、目录结构、FTP 服务实现等多个方面的知识点,旨在为学习 Linux 系统提供一个系统化的学习笔记。 一、基础命令 1. 文件管理命令:ls、pwd、cd、...
Linux的学习的心得 特别是与初学者的一种相互的交流 来源于鸟哥的Linux教材
在学习Linux时,以下几点心得可能对初学者有所帮助: 1. 了解基础命令行操作:熟悉诸如ls、cd、mkdir、rm等基本命令,是掌握Linux的第一步。熟练使用这些命令,可以提高在Linux环境下的工作效率。 2. 学习Shell...
Linux学习心得 Linux学习心得是指学习Linux操作系统的经验和方法。学习Linux需要系统的认识和实践,而不是只是随便玩玩的系统。要真正学习Linux,需要忘记Windows的思维方式,慢慢感受和习惯Linux的操作方式。 第...
从提供的文件内容来看,该文档似乎是关于Linux学习的心得体会。该文档提到了多个与Linux相关的关键概念和历史,以及Linux与Windows、Android等其他操作系统的关系。下面是根据这部分内容生成的知识点。 首先,文档...
**知识点详解:嵌入式系统Linux学习路径与心得** 在IT行业中,嵌入式系统以其独特的魅力吸引着众多学习者,尤其是Linux环境下嵌入式系统的开发更是成为了热门领域。本文将深入探讨一位从零基础开始,通过自学最终...
【Linux学习心得】 Linux操作系统是计算机领域中一个重要的开源系统,由芬兰的Linus Torvalds于1991年10月首次发布0.02版本,直到1994年3月发布了1.0版本,标志着其成熟度的一个重要里程碑。Linux的发展受益于GPL...
详细记录了各个指令的使用方式,以及初学时应注意的重点
学习linux心得,学习Linux系统在服务中的配置方法及使用方法
"Linux学习心得体会" 一、为什么要学Linux? Linux之所以重要,是因为它是开源的。这也是它能够存在到现在的原因之一。学习Linux可以让我们更好地理解操作系统,并且可以做成自己的OS。另外,Linux简单易学,其...
Linux 目录架构详解 Linux 操作系统的目录架构是一种树形结构,根目录 (/) 是所有目录的顶点。下面是 Linux 目录架构的详细解释: 1. 根目录 (/):是所有目录的顶点,所有其他目录都是从这里开始的。 2. /bin:...
以上各个知识点构成了一个全面的嵌入式Linux学习路径,从基础应用到系统级的深入开发,有助于开发者理解和掌握嵌入式系统的设计与实现。通过这些文档,学习者可以逐步建立自己的嵌入式Linux技能,为从事相关领域的...
### Linux学习笔记——深入探索Linux系统管理与应用 #### 核心知识点概览: 1. **Linux系统安装与配置** 2. **理解Linux文件系统结构** 3. **关键目录及其重要性** 4. **系统安全与用户管理** 5. **服务配置与管理...
以下是我对Linux学习的一些心得体会,以及我在学习过程中遇到的问题及解决策略。 首先,了解Linux的基础知识至关重要。这包括Linux的发行版分类(如Ubuntu、CentOS、Debian等),Linux文件系统结构(根目录、用户家...
在深入探讨Linux设备驱动程序的学习心得之前,先要理解什么是设备驱动程序。设备驱动程序是操作系统与硬件设备之间的桥梁,它允许操作系统控制和通信硬件设备,实现数据的传输。在Linux系统中,设备驱动程序是内核的...
在学习和实践中,了解这些知识点并进行实际操作是提升Linux和嵌入式开发能力的关键。通过阅读和理解“linux心得”,可以借鉴作者的经验,避免常见错误,提高开发效率。对于初学者来说,这是一个宝贵的资源,对于经验...
在深入探讨Linux初步学习心得之前,我们先要理解Linux是什么。Linux是一种自由和开放源代码的操作系统内核,由林纳斯·托瓦兹在1991年开发。它不仅是一个内核,还演变成一个完整的操作系统,包含了各种工具、应用...
本文将深入探讨Linux shell命令的学习心得,分享一些实用技巧和常见命令的用法。 首先,Linux shell是操作系统与用户交互的接口,它允许用户通过输入命令来执行各种任务。在众多shell类型中,Bash(Bourne-Again ...
学习Linux操作系统不仅涉及到基本的命令行操作,还包括系统管理、网络配置、安全管理、脚本编程等多个方面。理解Linux的工作原理和系统架构,掌握各种系统工具的使用,对于从事IT行业,特别是系统管理员、开发人员或...