1. mkdir命令创建目录

  1. mkdir (选项)(参数)

迭代创建目录

mkdir -p test/test1/test2

2. rm命令删除文件、目录

rm (选项)(参数)
-r 迭代删除目录文件
-f 强制删除,无需确认,新手慎用

3. ls命令查看文件列表

ls

查看当前目录下所有文件

ls -a

参数:-a 展示所有文件包括隐藏文件(.开头的文件)
列表形式展示当前目录下所有文件

ls -l

参数:-l 以列表的形式显示目录下的文件列表

ls -l --block-size=M  # 指定文件大小单位显示文件列表

4. tar命令压缩与解压缩

解压缩命令

tar -zxvf test.tar.gz

压缩命令

tar -zcvf test.tar.gz ./
 -c, --create               创建一个新归档
 -x, --extract, --get       从归档中解出文件
 -f, --file=ARCHIVE         使用归档文件
 -z, --gzip, --gunzip, --ungzip   通过 gzip 过滤归档
 -C, --directory=DIR        改变至目录 DIR
 -v, --verbose              详细地列出处理的文件

5. grep命令查找

grep 常用命令参数

-c:统计符合字符串条件的行数 -v:显示不包括文本的所有信息

查找test.txt文件中hello内容

grep hello test.txt

统计test.txt中hello内容的行数

grep -c hello test.txt

grep、cat、管道符配合使用

cat test.txt |grep hello

过滤test.txt文件中hello内容

hello 关键字
test.txt 文件名
cat 打印文件内容
|管道符,将一个命令的输出作为另外一个命令的输入

grep、ps、管道符配合使用

ps -ef|grep ssh

过滤ssh进程信息

6. find命令查找文件

find

在指定目录下查找文件
-name: 指定文件名
-iname: 指定文件名,忽略大小写
.: 表示当前目录,可省略,换成绝对路径或者相对路径就可以根据指定路径查找文件。例如:/root
*.tar.gz: 模糊匹配

在当前目录下查找具体文件名的文件

find . -name snmp.tar.gz

在当前目录下查找指定后缀的文件

find . -name "*.tar.gz"

在当前目录下查找具体文件名的文件,忽略文件名的大小写

find . -iname snmp

在指定的路径下查找文件

find /root -name snmp.tar.gz

7. ps命令查看进程

常用参数:

-A:显示所有进程
-a:不与terminal有关的所有进程
-u:有效用户的相关进程
-x:一般与-a一起用,列出完整的进程信息
-l:long,详细列出PID的信息
ps Aux     # 查看系统所有的进程数据
ps ax

查看Java进程:

grep是搜索关键字

>ps -ef | grep java

-aux 显示所有状态

>ps -aux | grep java

8. kill命令杀进程

kill 1086 # 1086是进程号,PID可以通过ps查到,有时可以加上| grep进行筛选

强制杀进程 ,kill -9 发送SIGKILL信号给进程,将其终止

kill -9 10876

对于以下两种情况不适用:
(1)僵尸进程。此时该进程已经释放资源,但是没有被父进程释放。僵尸进程要等到父进程结束,或者重启系统才可以被释放。
(2)进程处于核心态,并且在等待不可获得的资源。会忽略所有信号,只能重启系统。kill只能杀死处于用户态的进程。
先查看父进程,根据当前的进程号,查询父进程,命令如下:
字母后面第一个数字进程号即为该进程父进程号,将其父进程杀死即可。
image.png

9. pwd命令查看”当前工作目录“的完整路径

pwd显示的是连接路径
pwd -P # 显示出实际路径,而非使用连接(link)路径;

10. scp命令远程拷贝文件

scp [参数] [原路径] [目标路径]

image.png

11. JPS工具

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

jps -q  # 只显示 pid,不显示class名称,jar文件名和传递给main方法的参数
jps -m  # 输出传递给 main 方法的参数,在嵌入式jvm上可能是null
jps -l  # 输出应用程序 main class的完整package名 或者应用程序的jar文件完整路径名
jps -v  # 输出传递给 JVM的参数

12. 查看磁盘剩余空间、空闲空间

df -h
  • du 显示目录或文件的大小
  • df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。 (文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。)
  • du命令是用户级的程序,它不考虑 Meta Data,而 df 命令则查看文件系统的磁盘分配图并考虑 Meta Data。
  • df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。

问题:在进行文件删除时,会出现不一致得问题。用du查发现文件删除,用df查,发现空间没有被释放。
原因:当出现不一致时,是进行了文件删除操作。当一个文件删除后,文件系统目录中已经不存在,du命令将不再统计。此时若还有进程持有该文件的句柄,那么该文件没有真正从磁盘中删除,仍然占用内存空间。df命令仍然会统计这个文件。
解决:使用lsof -n | grep deleted命令查看处于deleted状态的文件,即表示文件被删除,但仍有进程使用这个文件,导致内存空间没有被释放。
找到占用该文件的进程id,删除该pid,即可释放内存空间。

13. /etc/hosts⽂件什么作⽤?

在当前主机给ip设置别名,通过该别名可以访问到该ip地址,通过别名、ip访问的效果是⼀样的。

14. Vim未正常关闭

产生.swp文件,因此再对文件进行编辑时会报类似的提示:
Swap file “.hosts.swp” already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:
选择任意选项后正常退出后,下次进入依次会报这些提示。
【O】只读打开文件
【E】继续编辑
【R】恢复未保存内容编辑
【D】删除.swp文件进入编辑
【Q】退出当前文件编辑
【A】退出vim程序
原因:

  • 在vim编辑器的模式下,打开某个文件例如/etc/hosts,vim会自动产生一个类似于.hosts.swp文件以备不测。正常退出的话,该文件(.swp)会自动删除。
  • 如果在.hosts.swp已经存在的情况下,即在A窗口打开该hosts文件后,使用B窗口同时打开该hosts文件,则会产生.swp文件,在使用C窗口打开该文件,产生.swo文件。字母排序逆时针倒序排列。

解决方案:
切换到该目录下,使用 vim -r 文件名 ,恢复该文件
恢复后如果确定该文件已经修改好,并且用不到.swp文件来恢复主文件的话,对.swp文件进行删除

15. 查看某个端口是否被占用

netstat -anp | grep 端口号

image.png
图中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。
查看82端口的使用情况,如图

netstat -anp |grep 82

image.png
可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了。
查看当前所有已经使用的端口情况

netstat -nultp(此处不用加端口号)

image.png

16. top命令查看CPU使用率高的进程

top [参数]

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等