如果会Linux,面试的时候会问一些常用的Linux命令,这篇文章就来汇总一下常用的Linux命令的常用方法。
文章目录
1. mkdir命令创建目录
命令
mkdir (选项)(参数)
常用选项
-p 父级目录不存在,会自动迭代创建
实例
在当前目录下创建多层目录
mkdir -p test/test1/test2
使用绝对路径创建
mkdir -p /root/test/test1/test2
2. rm命令删除文件、目录
命令
rm (选项)(参数)
常用选项
-r 迭代删除目录文件
-f 强制删除,无需确认,新手慎用
实例
删除一个目录
rm -rf test2/
删除嵌套目录
rm -rf /root/test
删除一个文件
rm -rf test.txt
3. ls命令查看文件列表
ls命令是linux最常用的命令之一,经常结合cd命令查看当前目录或者指定目录下的文件列表。
命令
ls
格式
ls 参数 目录
常用命令
查看当前目录下所有文件
ls -a
参数:-a 展示所有文件包括隐藏文件(.开头的文件)
列表形式展示当前目录下所有文件
ls -l
参数:-l 以列表的形式显示目录下的文件列表
指定文件大小单位显示文件列表
ls -l --block-size=M

参数:–block-size=m 单位包括K, M, G, T, P, E, Z, Y;由于采用进一法,导致展示文件大小时误差较大,不推荐使用
以更易读形式展示文件大小列表
ls -hl

参数:-h 以更易读的方式展示文件大小
4. cd命令切换目录
命令
cd
格式
cd 参数 目录
常用命令
切换到指定目录/home
cd /home
切换到当前用户目录
cd ~
切换到上一层目录
cd ..
切换到相对于当前目录下的指定路径
cd ./home
切换到隐藏目录下
cd .test
5. tree命令显示目录结构
安装tree命令
yum install tree -y
显示当前目录下的一级目录结构
tree -L 1

目录信息说明
bin: 系统常用命令所在目录
boot: 系统启动相关的文件
dev: 存放外设的文件
etc: 默认程序、系统的配置文件路径
home:默认新建用户登录后所在的目录
lib/lib64: 程序所有依赖的so库所在目录
media:系统自动识别的设备
mnt:用户临时挂载目录
opt:给系统额外安装的软件,存放目录
proc:内核运行时相关文件
root:root用户的家目录
run:pid 文件所在目录
sbin:root用户常用命令
srv:系统产生的数据
sys:操作系统相关的文件
usr: 用户应用程序安装目录
var:系统产生的不可销毁的缓存文件与日志文件
tmp:可销毁的临时文件
/: 根目录
6. tar命令压缩与解压缩
tar命令介绍
tar命令是linux非常使用频率非常高的一个命令,比如:离线软件包的解压缩、将一个目录打包备份、将一个压缩包解压到一个指定的目录。tar命令主要用来将一个或者多个目录以及一个或者多个文件打包到一个以后缀为tar的文件里,同时也可以将归档的文件压缩成以tar.gz结尾的文件。可以将一个tar或者tar.gz结尾的文件解压到指定的目录下。使用不带界面的linux系统时,使用频率更高,是必须掌握的一个命令。
tar命令格式
解压缩命令
tar -zxvf test.tar.gz
压缩命令
tar -zcvf test.tar.gz ./
tar命令的常用参数
-c, --create 创建一个新归档
-x, --extract, --get 从归档中解出文件
-f, --file=ARCHIVE 使用归档文件
-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档
-C, --directory=DIR 改变至目录 DIR
-v, --verbose 详细地列出处理的文件
将当前目录下的所有文件压缩
tar -zcvf test.tar.gz ./
命令说明:
test.tar.gz 目录被压缩后的文件名字
./ 代表被压缩的目录,压缩当前目录
-zcvf 参照上边的参数说明
将压缩文件解压到当前目录下
tar -zxvf test.tar.gz
说明:
test.tar.gz 将要被解压的备份文件
-zxvf 参数参照上边的参数说明,压缩与解压的唯一区别就是解压参数为x,压缩参数为c
解压后的路径,默认为当前路径
将备份文件解压到指定路径下
tar -zxvf test.tar.gz -C /home/
说明:
test.tar.gz 将要被解压的备份文件
-zxvf 参数参照上边的参数说明,压缩与解压的唯一区别就是解压参数为-x,压缩参数为-c
-C解压到指定路径/home下
将指定目录下的文件打包,不包含目录结构
tar -zcvf test.tar.gz -C /home/testDir/ .
说明:
test.tar.gz 压缩后的文件名字
-zxvf 参数参照上边的参数说明,压缩与解压的唯一区别就是解压参数为-x,压缩参数为-c
-C 压缩时,使用相对路径,不包含目录结果 /home/testDir/下
. 压缩相对目录后的所有文件
7. grep命令查找
grep 命令介绍
grep 查找文件里符合条件的字符串,常与管道符|、cat、ps一起使用;主要用于查找文件中符合条件的字符串、统计文件中符合条件的字符串行数、grep 不显示自身进程
grep 常用命令参数
-c:统计符合字符串条件的行数 -v:显示不包括文本的所有信息
grep 常用命令
过滤test.txt文件中hello内容
grep hello test.txt
说明:
hello 关键字
test.txt 文件名
统计test.txt中hello内容的行数
grep -c hello test.txt
说明:
hello 关键字
test.txt 文件名
-c 统计符合字符串条件的行数
grep、cat、管道符配合使用
cat test.txt |grep hello
说明:过滤test.txt文件中hello内容
hello 关键字
test.txt 文件名
cat 打印文件内容
|管道符,将一个命令的输出作为另外一个命令的输入
grep、ps、管道符配合使用
ps -ef|grep ssh
说明:过滤ssh进程信息
ps 打印进程信息
ssh 过滤关键字
|管道符,将一个命令的输出作为另外一个命令的输入
去掉grep自身进程
ps -ef|grep ssh|grep -v grep
说明:过滤ssh进程信息,并去除最后一行的grep信息
ps 打印进程信息
ssh 过滤关键字
|管道符,将一个命令的输出作为另外一个命令的输入
-v 显示排除grep关键字的所有信息
8. lsof命令查看对应端口的pid
命令
lsof #查看端口对应的pid,通过kill -9杀死对应的进程
格式
lsof 参数
常用命令
列出所有的网络连接
lsof -i
查看指定端口22的pid
lsof -i :22
查看指定用户打开的应用信息
lsof -u root
9. 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
10. chmod命令更改文件权限
命令
chmod (选项)(参数)
常用选项
-R 迭代修改目录及其子目录文件权限
参数说明
实例
修改单个文件权限
chmod 755 test

迭代修改目录及目录下文件权限
chmod -R 755 /root/test

11. chown命令修改文件或目录的所属组或者用户
命令
chown (选项)(参数)
常用选项
-R 迭代修改目录及其子目录文件所属用户、组
实例
修改文件所有者
chown nginx test
迭代修改目录及目录下文件所有者
chown -R nginx /root/test
修改文件所属组
chown :nginx test

同时修改文件所有者以及文件所属组
chown root:root test/

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

13. kill命令杀进程
常用参数
-SIGHUP:启动被终止的进程
-SIGINT:相当于ctrl+c,中断进程
-SIGKILL:强制中断进程
-SIGTERM:以正常的结束进程方式来终止进程
-SIGSTOP:相当于ctrl+z,暂停进程
## kill用法
kill -SIGKILL 10876 # 强制中断PID=10876的进程(PID可以通过ps查到,有时可以加上| grep进行筛选)
kill -9 10876
14. pwd命令查看”当前工作目录“的完整路径
pwd显示的是连接路径
pwd -P # 显示出实际路径,而非使用连接(link)路径;

15. scp命令远程拷贝文件
和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。
常用参数
scp [参数] [原路径] [目标路径]
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
实例

16. ssh命令用于远程登录上Linux主机
参数
ssh [-l login_name] [-p port] [user@]hostname
使用示例
17. 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的参数
使用示例
jps
23991 Jps
23789 BossMain
23651 Resin