Linux Command
1. 手册页(manpages)
下载:
manpages - Manual pages about using a GNU/Linux system
manpages-dev - Manual pages about using GNU/Linux for development
manpages-posix - Manual pages about using POSIX system
manpages-posix-dev - Manual pages about using a POSIX system for development
manpages-zh - Chinese manual pages
使用汉化:
man -M /usr/share/man/zh_CN 2 socket # 使用汉化手册查看位于第 2 页面(系统调用)的 socket 函数
搜索:
搜索分为内容搜索和 name 搜索, name搜索又称模糊搜索
man -K AF_INET # 全局搜索关键字"AF_INET", 由于是内容搜索, 速度较慢
man -k shutdown # 模糊搜索, 示例如下:
develon@ubuntu:~$ man -k shutdown
halt (5) - variables that affect the behavior of the shutdown scripts
session-end (7) - event signalling session shutdown
shutdown (2) - shut down part of a full-duplex connection
shutdown (8) - bring the system down
man: command not found 解决办法
sudo apt-get install man-db
2. dpkg
https://help.ubuntu.com/lts/serverguide/dpkg.html.en
-
要列出系统上安装的所有软件包,请在终端提示符下键入:
dpkg -l
-
根据系统上的软件包数量,这可能会产生大量输出。通过grep管道输出 以查看是否安装了特定的包:
dpkg -l | grep apache2
将apache2替换为任何包名称,包名称的一部分或其他正则表达式。
-
要列出软件包安装的文件(在本例中为ufw软件包),请输入:
dpkg -L ufw
-
如果您不确定哪个软件包安装了文件,dpkg -S可能会告诉您。例如:
dpkg -S /etc/host.conf base-files:/etc/host.conf
输出显示/etc/host.conf属于base-files包。
在软件包安装过程中会自动生成许多文件,即使它们位于文件系统上, dpkg -S也可能不知道它们属于哪个软件包。
-
您可以输入以下命令安装本地.deb文件:
sudo dpkg -i zip_3.0-4_i386.deb
将zip_3.0-4_i386.deb更改为您要安装的本地.deb文件的实际文件名。
-
卸载软件包可以通过以下方式完成:
sudo dpkg -r zip
在大多数情况下,建议不要 使用dpkg卸载软件包。最好使用处理依赖关系的包管理器来确保系统处于一致状态。例如,使用dpkg -r zip将删除zip包,但依赖于它的任何包仍将安装,并且可能无法再正常运行。
有关更多dpkg选项,请参见手册页:man dpkg。
3. git
Git是一个开源的分布式版本控制系统,最初由Linus Torvalds开发,用于支持linux内核的开发。每个Git工作目录都是一个完整的存储库,具有完整的历史记录和完整版本跟踪功能,不依赖于网络访问或中央服务器。
在GIT中的版本控制系统安装有下面的命令
sudo apt install git
每个git用户都应该首先通过运行这两个命令将自己介绍给git:
git config --global user.email“you@example.com”
git config --global user.name“Your Name”
开始一个项目:
git clone git@github.com:develon2015/UCUsage.git
如果你没有该项目的访问权限, 你可以使用 http 协议下载
git clone http://github.com/develon2015/UCUsage.git
或者可以推送现有代码;
git remote add gitolite git@$SERVER_IP:$PROJECT_NAME.git
更多命令请参考
https://github.com/develon2015/git-usage
4.
linux 终端分屏命令vsp
比如:某文件夹下有文件:vector.cc, substr.cc
1.使用vim命令打开任意一个文件:vim vector.cc打开第一个文件。如下图所示:
2.按:"Esc"键 + “:”,并输入:vsp substr.cc 。(这里vsp跟vi/vim操作一样,路径可以自由切换。)如下图所示:
3.按"Enter"键。如下图所示:
4.为了让鼠标可以在几个屏幕间自由切换。
按:"Esc"键 + “:”,输入:set mouse=a 。然后,回车(Enter),这样鼠标就可以在多屏幕之间自由移动了。如下图所示:
5.
linux终端screen分屏使用命令
使用screen分屏(只能上下分屏,不能左右分屏)
(1)安装工具
在centos7 中yum install -y screen
(2)使用命令
1,输入命令screen使用工具
2,上下分屏:ctrl + a 再按shift + s
3,切换屏幕:ctrl + a 再按tab键
4,新建一个终端:ctrl + a 再按c
5,关闭一个终端:ctrl + a 再按x (或直接按exit退出)
eg:
1.screen
上下分屏:ctrl + a 再按shift + s
上屏top命令
切换导下屏:
创建下屏终端:ctrl + a 再按c
下屏tail -f 命令
Grep
例子:
1. :
格式: grep [option] pattern filename 注意: pattern如果是表达式或者超过两个单词的, 需要用引号引用. 可以是单引号也可双引号, 区别是单引号无法引用变量而双引号可以.
grep '\<Tom\>' file 包含单词Tom的行
grep 'Tom savage' file 包含Tom savage的行
grep '^Tommy' file 包含以Tommy开头的行
grep '\.bak$' file 包含以.bak结束的行
grep '[Pp]yramid' file 包含pyramid 或Pyramid的单词的行
grep '[A-Z]' file 包含至少一个大写字母的行
grep '[0-9]' file 包含至少一个数字的行
grep '[A-Z]...[0-9]' file 包含五个字符,以大写开头, 和一个数字结尾的行.
grep -w '[tT]est' file 包含单词和test的行.
grep -s 'ken sun' file 找到包含ken sun的行, 但不打印行, 而是用来检查退出状态.
grep -v aaa file 打印不包含aaa的行.
grep -i cathy file 打印所有包含cathy的行, 而不考虑大小些.
grep -l 'dear cathy' * 打印包含dear cathy的文件的文件名清单.
grep -n tom file 打印匹配的行并追加行号.
grep "$LOGNAME" file 包含变量内容的行, 注意必须用双引号, 单引号则无法引用变量.
grep '$name' file 打印包含字符$name的行.
2 : egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式. 注意区别.
扩展表达式:
+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括弧里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.
egrep '^+' file 以一个或者多个空格开头的行.
grep '^*' file 同上
egrep '(TOM|DAN) SAVAGE' file 包含 TOM SAVAGE 和DAN SAVAGE的行.
egrep '(ab)+' file 包含至少一个ab的行.
egrep 'x[0-9]?' file 包含x或者x后面跟着0个或者多个数字的行.
egrep 'fun\.$' * 所有文件里面以fun.结尾的行.
egrep '[A-Z]+' file 至少包含一个大写字母的行.
egrep '[0-9]' file 至少一个数字的行.
egrep '[A-Z]...[0-9]' file 有五个字符, 第一个式大写, 最后一个是数字的行.
egrep '[tT]est' file 包含单词test或Test的行.
egrep 'ken sun' file 包含ken sun的行.
egrep -v 'marry' file 不包含marry的行.
egrep -i 'sam' file 不考虑sam的大小写,含有sam的行.
egrep -l "dear ken" * 包含dear ken的所有文件的清单.
egrep -n tom file 包含tom的行, 每行前面追加行号.
egrep -s "$name" file 找到变量名$name的, 不打印而是显示退出状态. 0表示找到. 1表示表达式没找到符合要求的, 2表示文件没找到.
3 fgrep 很简单就是固化表达式的搜索.如:
fgrep "$name...[a-z]" file 就是在file里面找到和字符$name...[a-z]一样的行. 其中$和...等没有转义的意义.
http://hi.baidu.com/sei_zhouyu/item/c18e1a950d2e9eb5cc80e558
grep (global search regular expression_r(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
- ^
-
锚定行的开始 如:'^grep'匹配所有以grep开头的行。
- $
-
锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
- .
-
匹配一个非换行符的字符如:'gr.p'匹配gr后接一个任意字符,然后是p。
- *
-
匹配零个或多个先前字符如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
- []
-
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
- [^]
-
匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
- \(..\)
-
标记匹配字符,如'\(love\)',love被标记为1。
- \<
-
锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
- \>
-
锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
- x\{m\}
-
重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
- x\{m,\}
-
重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
- x\{m,n\}
-
重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
- \w
-
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
- \W
-
\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
- \b
-
单词锁定符,如: '\bgrep\b'只匹配grep。
- +
-
匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
- ?
-
匹配零个或多个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。
- a|b|c
-
匹配a或b或c。如:grep|sed匹配grep或sed
- ()
-
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
- x{m},x{m,},x{m,n}
-
作用同x\{m\},x\{m,\},x\{m,n\}
-