`
zhangym124
  • 浏览: 344364 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

linux学习心得(转)

阅读更多

一、 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 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 系统的基础命令、目录结构、FTP 服务实现等多个方面的知识点,旨在为学习 Linux 系统提供一个系统化的学习笔记。 一、基础命令 1. 文件管理命令:ls、pwd、cd、...

    Linux学习心得

    Linux的学习的心得 特别是与初学者的一种相互的交流 来源于鸟哥的Linux教材

    Linux学习心得体会

    在学习Linux时,以下几点心得可能对初学者有所帮助: 1. 了解基础命令行操作:熟悉诸如ls、cd、mkdir、rm等基本命令,是掌握Linux的第一步。熟练使用这些命令,可以提高在Linux环境下的工作效率。 2. 学习Shell...

    linux学习心得.doc

    Linux学习心得 Linux学习心得是指学习Linux操作系统的经验和方法。学习Linux需要系统的认识和实践,而不是只是随便玩玩的系统。要真正学习Linux,需要忘记Windows的思维方式,慢慢感受和习惯Linux的操作方式。 第...

    Linux学习心得.pdf

    从提供的文件内容来看,该文档似乎是关于Linux学习的心得体会。该文档提到了多个与Linux相关的关键概念和历史,以及Linux与Windows、Android等其他操作系统的关系。下面是根据这部分内容生成的知识点。 首先,文档...

    嵌入式系统linux学习心得

    **知识点详解:嵌入式系统Linux学习路径与心得** 在IT行业中,嵌入式系统以其独特的魅力吸引着众多学习者,尤其是Linux环境下嵌入式系统的开发更是成为了热门领域。本文将深入探讨一位从零基础开始,通过自学最终...

    linux学习心得 多年的总结

    【Linux学习心得】 Linux操作系统是计算机领域中一个重要的开源系统,由芬兰的Linus Torvalds于1991年10月首次发布0.02版本,直到1994年3月发布了1.0版本,标志着其成熟度的一个重要里程碑。Linux的发展受益于GPL...

    本人linux学习心得(纯手打)

    详细记录了各个指令的使用方式,以及初学时应注意的重点

    学习linux心得 学习方法

    学习linux心得,学习Linux系统在服务中的配置方法及使用方法

    linux学习心得体会xx.doc

    "Linux学习心得体会" 一、为什么要学Linux? Linux之所以重要,是因为它是开源的。这也是它能够存在到现在的原因之一。学习Linux可以让我们更好地理解操作系统,并且可以做成自己的OS。另外,Linux简单易学,其...

    linux 学习心得

    Linux 目录架构详解 Linux 操作系统的目录架构是一种树形结构,根目录 (/) 是所有目录的顶点。下面是 Linux 目录架构的详细解释: 1. 根目录 (/):是所有目录的顶点,所有其他目录都是从这里开始的。 2. /bin:...

    嵌入式linux学习总结.zip

    以上各个知识点构成了一个全面的嵌入式Linux学习路径,从基础应用到系统级的深入开发,有助于开发者理解和掌握嵌入式系统的设计与实现。通过这些文档,学习者可以逐步建立自己的嵌入式Linux技能,为从事相关领域的...

    Linux学习笔记(关于linux系统的一点学习心得)

    ### Linux学习笔记——深入探索Linux系统管理与应用 #### 核心知识点概览: 1. **Linux系统安装与配置** 2. **理解Linux文件系统结构** 3. **关键目录及其重要性** 4. **系统安全与用户管理** 5. **服务配置与管理...

    linux学习心得体会及遇到的问题

    以下是我对Linux学习的一些心得体会,以及我在学习过程中遇到的问题及解决策略。 首先,了解Linux的基础知识至关重要。这包括Linux的发行版分类(如Ubuntu、CentOS、Debian等),Linux文件系统结构(根目录、用户家...

    Linux设备驱动程序学习心得

    在深入探讨Linux设备驱动程序的学习心得之前,先要理解什么是设备驱动程序。设备驱动程序是操作系统与硬件设备之间的桥梁,它允许操作系统控制和通信硬件设备,实现数据的传输。在Linux系统中,设备驱动程序是内核的...

    linux学习心得 总结了我这学期以来s3c2440的所有心得体会

    在学习和实践中,了解这些知识点并进行实际操作是提升Linux和嵌入式开发能力的关键。通过阅读和理解“linux心得”,可以借鉴作者的经验,避免常见错误,提高开发效率。对于初学者来说,这是一个宝贵的资源,对于经验...

    学习心得

    在深入探讨Linux初步学习心得之前,我们先要理解Linux是什么。Linux是一种自由和开放源代码的操作系统内核,由林纳斯·托瓦兹在1991年开发。它不仅是一个内核,还演变成一个完整的操作系统,包含了各种工具、应用...

    Linux shell命令学习心得

    本文将深入探讨Linux shell命令的学习心得,分享一些实用技巧和常见命令的用法。 首先,Linux shell是操作系统与用户交互的接口,它允许用户通过输入命令来执行各种任务。在众多shell类型中,Bash(Bourne-Again ...

    Linux操作系统总结与心得.doc

    学习Linux操作系统不仅涉及到基本的命令行操作,还包括系统管理、网络配置、安全管理、脚本编程等多个方面。理解Linux的工作原理和系统架构,掌握各种系统工具的使用,对于从事IT行业,特别是系统管理员、开发人员或...

Global site tag (gtag.js) - Google Analytics