一.常用命令
find [PATH] [option] [action]
# 与时间有关的参数:
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
-newer file : 列出比file还要新的文件名
# 例如:
find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件
cp 命令,作用复制
rm 命令作用为删除
-f :force强制的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
mv命令作用为移动文件:
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :互动模式,若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新
tar命令,用于压缩解压:
gzip 命令压缩文件或文件夹为 .gz文件
unzip(选项)(参数)
选项
-n:解压缩时不要覆盖原有的文件;
-v:执行时显示详细的信息;
-o:不必先询问用户,unzip执行后覆盖原有的文件;
-d<目录>:指定文件解压缩后所要存储的目录;
实例
将压缩文件text.zip在当前目录下解压缩。
unzip test.zip
将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
unzip -n test.zip -d /tmp
查看压缩文件目录,但不解压。
unzip -v test.zip
将压缩文件test.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
unzip -o test.zip -d tmp/
rmdir
-p 递归删除
最常用命令,就不做解释了
ls、cd、pwd、mkdir、
二. 进程相关命令:
ps命令显示运行的进程,还会显示进程的一些信息如pid, cpu和内存使用情况等
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
常用搭配:ps aux|grep name
kill 命令用于终止进程,参数:
kill -signal PID
1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来终止进程
17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
常用搭配:kill -9 pid
top 命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器:
top -bc -n 1
三、文本查看编辑等命令
vi/vim
搭配使用:
保存并退出esc + :wq
退出不保存esc + :q
more 命令,more可以按页来查看文件的内容
常用操作命令:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
less 命令用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
tail 命令
tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容
head 命令用于显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行:
四、网络相关命令·
ping
ssh 命令用于远程登录上Linux主机:
scp 命令是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的:
telnet 命令用来远程登录操作,也可以用做测试端口的连通性
五、其它常见命令
或操作搭配grep进行多条件匹配文本。
grep -E 'abc|123' filename ##查看filename文件中有abc或123的内容
六、实战
假如cpu占用过高如何定位问题
-
先用top命令找出CPU占比最高
-
ps -ef或者jps进一步看是怎样一个程序
-
定位具体线程或代码 查看线程ps -mp pid -o THREAD,tid,time
-m 显示所有线程 -p进程使用cpu时间 -o用户自定义格式
-
将需要的线程ID转换为16进制格式
printf "%x\n"有问题的线程ID
-
jstack 进程id | grep tid(16进程线程的小写英文) -A60
一、查看一台机器上最耗cpu的线程
1、top -c 查看最耗cpu的进程
2、top -Hp pid 找出进程中最耗cpu的线程
2、查看进程下的所有线程信息 top -H -p 1963(进程号)
3、printf "%x\n" 程id转16进制
4、 jstack 进程id| grep 16进制线程id
二、分析某进程中内存收回情况
1、ps -ef|grep 进程名 查找运行中的进程
2、jstat -gcutil pid 500 3 (500 0.5秒;3次)
通过 jstat 来监视23998的Java进程统计信息,各项监视参数:
S0、S1 代表两个Survivor区;
E 代表 Eden 区;
O(Old)代表老年代;
P(Permanent)代表永久代;
YGC(Young GC)代表Minor GC;
YGCT代表Minor GC耗时;
FGC(Full GC)代表Full GC耗时;
GCT代表Minor & Full GC共计耗时。