Linux 常用命令总结
来源:互联网 发布:数据库相关书籍 编辑:程序博客网 时间:2024/06/05 10:29
- 查询命令
- find
- locate
- less
- which
- whereis
- tail
- grep
- Other Command
- chmod
- tar
- netstat
- ps
- watch
- Other Command Reference
- vim
- 模式切换
- 插入
- 查找
- 替换
- 复制粘贴
- 跳转
- 选择
- 分屏
- 标签页
- More Command
查询命令
find
* find [指定查找目录] [查找规则] [查找完后执行的action]* find ~/.m2 -name “*.lastUpdated” -exec grep -q “Could not transfer” {} \; -print -exec rm {} \;(查找以lastUpdated 为后缀的文件中包含 “Could not…”的文件,打印并删除他)(`*`表示 通配任意的字符;?表示 通配任意的单个字符)
* -iregex/regex (后面跟正则表达式,i忽略大小写)
* -user //根据属主来查找文件
* -group //根据属组来查找文件
* -a and -o and –not //连接多个条件,-a是与关系,-o是或关系,-not是取反
* -atime;-mtime;-ctime;-amin;-mmin;-cmin //这里atime,mtime,ctime就是分别对应的“最近一次访问时间”“最近一次内容修改时间”“最近一次属性修改时间”,这里的atime的单位指的是“天”,amin的单位是分钟 ( find /tmp –atime +5 //表示查找在五天内没有访问过的文件;find /tmp -atime -5 //表示查找在五天内访问过的文件)
* -type //根据文件类型来查找文件(f 普通文件;d目录文件; l 链接文件; b块设备文件;c 字符设备文件; p 管道文件;s socket文件)
* -size //根据文件大小来查找文件(“find /tmp -size 2M”查找在/tmp 目录下等于2M的文件;+2M,大于;-2M,小于)
* -perm //根据文件权限来查找文件(“find /tmp -perm 755 ” 查找在/tmp目录下权限是755的文件)
* [查找完执行的action]
[ “-print”默认情况下的动作;”-ls”查找到后用ls 显示出来;”-ok [commend] “查找后执行命令的时候询问用户是否要执行;” -exec [commend]”查找后执行命令的时候不询问用户,直接执行]
* “find /tmp -atime +30 –exec rm –rf {} \;” //删除查找到的超过30天没有访问过文件
* “find /tmp -iregex “.*.[sh,bat]” -exec cp {} {}.old \;” // 替代查找到的文件,保留源文件(mv不保留)
locate
locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。locate [option] [pattern]
less
less 工具是对文件或其它输出进行分页显示的工具(建议结合管道针对其他输出使用,文件vim处理),提供前后翻页功能,以及搜索功能。-b [缓冲区大小] 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o [文件名] 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x [数字] 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
which
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。whereis
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。(eg:whereis -b tomcat)和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下是一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
tail
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.tail[必要参数][选择参数][文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c[数目] 显示的字节数
-n[行数] 显示行数
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, –quiet, –silent 从不输出给出文件名的首部
-s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
grep
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来grep [选项]… PATTERN [FILE]…
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-e [范本样式] 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f [范本文件] 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
grep 支持的正则语法
^ 锚定行的开始 如:’^grep’匹配所有以grep开头的行。
$ 锚定行的结束 如:’grep$’匹配所有以grep结尾的行。
. 匹配一个非换行符的字符 如:’gr.p’匹配gr后接一个任意字符,然后是p。
* 匹配零个或多个先前字符 如:’*grep’匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
[] 匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep。
[^] 匹配一个不在指定范围内的字符,如:’[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\ 锚定单词的开始,如:’\匹配包含以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。
\b 单词锁定符,如: ‘\bgrep\b’只匹配grep。
eg:
ls -R 查找目录 | grep “文件名所带字符”(递归查找当前文件夹下,指定文件名)
grep -R “word” “dir”(递归查文件夹下所有文件中的”word“)
grep -E “[1-9]+” 等于 egrep “[1-9]+”
Other Command
chmod
chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。chmod [-cfvR] [–help] [–version] mode file
权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
权限代号:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
s :特殊权限 ([特殊权限](http://alan-hjkl.iteye.com/blog/1526858))
tar
Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。常见解压/压缩命令
tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
netstat
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat [-acCeFghilMnNoprstuvVwx][-A [网络类型]][–ip]
命令参数:
-a或–all 显示所有连线中的Socket。
-A[网络类型]或–[网络类型] 列出该网络类型连线中的相关地址。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示FIB。
-g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的Socket。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistice 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定”-A unix”参数相同。
–ip或–inet 此参数的效果和指定”-A inet”参数相同。
状态说明:
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态
eg:
netstat -apu 显示UDP端口号的使用情况
netstat -a | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ 显统计机器中网络连接各个状态个数
netstat -nat | grep “192.168.120.20:16067” |awk ‘{print $5}’|awk -F: ‘{print $4}’|sort|uniq -c|sort -nr|head -20查看连接某服务端口最多的的IP地址
netstat -anpt | grep ‘:16064’找出运行在指定端口的进程
ps
ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。命令参数:
-a 显示同一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
-e 等于“-A”
e 显示环境变量
f 显示程序间的关系
-H 显示树状结构
r 显示当前终端的进程
T 显示当前终端的所有程序
u 指定用户的所有进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-C【命令】 列出指定命令的状况
–lines[行数]每页显示的行数
–width[字符数] 每页显示的字符数
–help 显示帮助信息
–version 显示版本显示
linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
输出含义:
F 代表这个程序的旗标 (flag), 4 代表使用者为 super user
S 代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
UID 程序被该 UID 所拥有
PID 就是这个程序的 ID !
PPID 则是其上级父程序的ID
C CPU 使用的资源百分比
PRI 这个是 Priority (优先执行序) 的缩写,详细后面介绍
NI 这个是 Nice 值,在下一小节我们会持续介绍
ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 “-“
SZ 使用掉的内存大小
WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作
TTY 登入者的终端机位置
TIME 使用掉的 CPU 时间。
CMD 所下达的指令为何
eg:
ps -u root 显示指定用户信息
ps -ef 显示所有进程信息,连同命令行
ps aux 列出目前所有的正在内存当中的程序
watch
可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令命令参数:
-n或–interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
-d或–differences 用-d或–differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
-t 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
-h, –help 查看帮助文档
eg:
watch -n 1 -d ‘pstree|grep http’ 每隔一秒高亮显示http链接数的变化情况
watch -d ‘ls -l|grep scf’ 监测当前目录中 scf’ 的文件的变化
watch -n 10 ‘cat /proc/loadavg’ 10秒一次输出系统的平均负载
Other Command Reference
vim
模式切换
其它模式==>普通模式Esc
普通模式==>插入模式
i 在光标前插入 I 在行首插入
a 在光标后插入 A 在行末插入
o 在当前行之下新建行 O 在当前行之上新建行
r 替换当前字符 R 从当前字符开始替换
普通模式==>命令模式
:
普通模式==>可视模式
v ,V ,<Ctrl+v>
插入
i 在光标之前插入I 在一行的开头处插入
a 在光标之后追加
A 在一行的结尾处追加
o 在光标所在位置的下一行打开新行插入
O 在光标所在位置的上一行打开新行插入
查找
查询环境设置:set hlsearch 打开高亮显示查找的文本
:set nohlsearch 关闭高亮显示查找的文本
:nohlsearch 关闭当前高亮显示的结果
:set incsearch 打开显示查找匹配过程
:set noincsearch 关闭显示查找匹配过程
:set ignorecase 忽略大小写
:set noignorecase 精确匹配大小写
:set nowrapscan 禁止循环查找方式
:set wrapscan 启用循环查找方式
Command
/csdn 向下查找一个名称为csdn的字符串
?csdn 向上查找一个名称为csdn的字符串
* 和 # 匹配光标当前所在的单词,移动光标到下一个匹配单词(*是下一个,#是上一个)
n 表示向下继续查找前一个查找的操作(和上面的操作配合使用)
N 表示向上继续查找前一个查找的操作(和上面的操作配合使用)
/csdn\c 忽略大小写的查找时候,在索要查找的字符串后面加\c
:%s///gn 统计当前模式匹配的次数(实际上调用了substitute命令,标志位n会抑制正常的替换操作,替换域无论为什么都是不生效的。)
替换
:[range]s/from/to/[flags][range]
不写 默认为光标所在的行。
. 光标所在的行。
1 第一行。
$ 最后一行。
33 第33行。
‘a 标记a所在的行(之前要使用ma做过标记)。
.+1 当前光标所在行的下面一行。
$-1 倒数第二行。(这里说明我们可以对某一行加减某个数值来取得相对的行)。
22,33 第22~33行。
1,$ 第1行 到 最后一行。
1,. 第1行 到 当前行。
.,$ 当前行 到 最后一行。
‘a,’b 标记a所在的行 到 标记b所在的行。
% 所有行(与 1,$ 等价)。
?chapter? 从当前位置向上搜索,找到的第一个chapter所在的行。(其中chapter可以是任何字符串或者正则表达式。
/chapter/ 从当前位置向下搜索,找到的第一个chapter所在的行。(其中chapter可以是任何字符串或者正则表达式。
[flags]
无 只对指定范围内的第一个匹配项进行替换。
g 对指定范围内的所有匹配项进行替换。(g 放在命令末尾,表示对搜索字符串的每次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作)
c 在替换前请求用户确认。
e 忽略执行过程中的错误。
eg:
:s/from/to/ 将当前行中的第一个from,替换成to。如果当前行含有多个from,则只会替换其中的第一个。
:s/from/to/g 将当前行中的所有from都替换成to。
:s/from/to/gc 将当前行中的所有from都替换成to,但是每一次替换之前都会询问请求用户确认此操作。
:33s/from/to/g 在第33行进行替换操作。
:$s/from/to/g 在最后一行进行替换操作。
:%s/from/to/g 对所有行的内容进行替换。
:g/str1/s//str2/g (等于”:1,$ s/str1/str2/g“) 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s/str2/str3/g 用字符串 str3 替换正文中所有出现str1所在行的所有字符串 str2
复制粘贴
vim有12个粘贴板(某些版本大于12个),0-9,a,”,+等,其中”为默认粘贴板,+为系统剪贴板(:reg查看有没有+剪贴板,没有的话需要安装gnome)y 复制选定的内容(结合v,V命令)
yy/Y 复制当前行
yw 复制当前词
2yy/y2y 两行
y$ 复制至行尾
y^ 复制至行首
“+yy 复制当前行到系统剪贴板
p 小写p代表贴至游标后(下)。
P 大写P代表贴至游标前(上)。
“+p 粘贴系统剪贴板内容
跳转
NG/:N 到第 N 行 gg 到第一行。(相当于1G,或 :1)
G 到最后一行。
w 到下一个单词的开头。
e 到下一个单词的结尾。(若单词是由blank字符分隔,需要使用大写的E和W)
% 匹配括号移动,包括 (, {, [. (需要把光标先移到括号上)
0 到行头
$ 到本行最后一个字符
^ 到本行的第一个非blank字符
g_ 到本行最后一个不是blank字符的位置。
fa 到本行下一个为a的字符处,你也可以fs到下一个为s的字符。
t, 到本行逗号前的第一个字符。逗号可以变成其它字符。
3fa 在当前行查找第三个出现的a。
F 和 T 和 f 和 t 一样,只不过是相反方向。
hjkl(←↓↑→) 左下上右
<Ctrl+f> 下翻一页
<Ctrl+d> 下翻半页
<Ctrl+b> 上翻一页
<Ctrl+u> 上翻半页
选择
v 选中字符V 选中行
Ctrl+v 选中块
区域选择
vi” 选中当前光标所在”“里的内容
va” 选中当前光标所在”“里的内容,同时包含”“
v2a” 选中当前光标(#)所在”*”ro#d“***“里的内容,同时包含”“
分屏
split 创建分屏 (:vsplit创建垂直分屏,:new 空白文档)<Ctrl-w><dir> dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。
<Ctrl-w>+ (或 <Ctrl-w>-) 增加尺寸
标签页
:tabe /path/to/file.txt 在一个新的 tab 页中打开文件:tabnew 新建一个 tab 页
:tabs 查看 tab 页列表,通过“>”显示当前窗口、“+”显示可修改的缓冲区
:tabc 关闭当前的 tab 页
:tab split 在当前缓冲区使用新的 tab 页打开文件
:tabn 切换到下一个 tab 页
:tabp 切换到上一个 tab 页
:tabr[ewind] 转到第一个 tab 页
:tabf[irst] 与上一命令作用相同
More Command
d 删除选中内容x 剪切当前字符
r 替换光标所在字符
u 撤销
Ctrl+r 撤销撤销
gU 选中内容变大写
gu 选中内容变小写
gD 跳转到当前word第一次出现的位置,可用于局部变量的定义处查找
dd 删除当前行
Ctrl+n,Ctrl+p 自动补全
J 合并行
” 跳转到光标上次停靠的地方, 是两个’, 而不是一个”
mx 设置书签,x只能是a-z的26个字母
`x 跳转到书签处(“`”,反引号,1左边的键)
‘x 跳转到书签所在行的首字符(“`”,引号)
> 增加缩进,”x>”表示增加以下x行的缩进
< 减少缩进,”x< “表示减少以下x行的缩进
:!<命令> 临时切换到Shell执行命令
0 0
- linux常用命令总结
- LINUX 常用命令总结
- Linux 常用命令总结
- linux入侵常用命令总结
- linux 常用命令总结
- Linux 常用命令总结
- linux 常用命令 总结
- Linux常用命令总结
- Linux 常用命令总结
- linux 常用命令 自己总结
- Linux常用命令总结
- linux常用命令总结
- Linux常用命令总结
- Linux Shell常用命令总结
- Linux 常识,常用命令总结
- Linux常用命令总结
- linux常用命令总结
- linux常用命令总结
- HLS直播点播加密
- spl_autoload_register与__autoload区别
- ionic 打包遇到"Error: spawn EACCES".
- Java中比较两个日期的大小
- 文章标题
- Linux 常用命令总结
- Nginx负载均衡的4种方案配置实例
- Xcode 8适配
- Vim配置、插件和使用
- K Sum问题求解
- 保留 double 型数据小数点位数
- 2016-12-28 外观模式 + 适配器模式
- 初识mySQL(16)
- Mysql几种索引类型的区别及适用情况