在实际工作中,许多服务器是Linux操作系统,作为程序员无法避免和Linux打交道,所以在应届生面试的时候,Linux常用指令也是面试官经常考察的一个点。
除了我们常用的cd
、ls
,我们应该掌握一些常用的指令
面试常见的Linux指令
1.pwd
pwd
:显示当前目录
1 | [root@izbp1783u2o2usauzn9srez bin]# pwd |
2.mkdir/rmdir
mkdir
:建立一个新目录
这个指令在默认的情况下是要一层一层地建立你所需要的目录。默认的时候你要建立的目录的上级目录必须也要存在,如果想一次建立多层目录,可以-p
选项。
1 | [root@izbp1783u2o2usauzn9srez ~]# mkdir test1/test2 |
rmdir
:删除一个空目录
注意这个指令默认是删除一个空目录,加入-p
选项连同上层“空的”目录也一起删除。
1 | [root@izbp1783u2o2usauzn9srez ~]# rmdir test1/ <==因为尚有内容,无法删除 |
如果想把目录下的东西都删除,这个时候可以使用rm -rf
。
3.cp/rm/mv
cp
:复制文件或目录
cp
这个指令很重要的,不同身份者执行这个命令会有不同的结果产生。
1 | cp [-adfilprsu] 源文件(source) 目标文件(destination) |
rm
:删除文件或目录
1 | rm [-fir] 文件或目录 |
我们在网上经常看到删库跑路的梗rm -rf /
,现在你应该知道这个命令的意思了吧~
mv
:移动文件或目录,或重命名
1 | mv [-fiu] source destination |
4.cat/tac/nl/more/less/head/tail/od
cat
:从第一行开始显示文件内容。tac
:从最后一行开始显示,可以看出tac是cat的倒着写。nl
:显示的时候,同时输出行号。more
:一页一页地显示文件内容。less
:与more类似,但是比more更好的是,它可以往前翻页。head
:只看前面几行。tail
:只看后面几行。od
:以二进制的方式读取文件内容。
5.touch
touch
:创建新文件或修改文件时间
touch
可以创建新文件并不新鲜,但很多人可能不知道它可以修改文件时间,在说修改文件时间之前,我们看看Linux下的文件有哪些时间:
修改时间(modification time, mtime)
当该文件的内容数据变更时,就会更新这个时间,内容数据指的是文件的内容,而不是文件的属性或权限。
状态时间(status time, ctime)
当该文件的状态(status)改变时,就会更新这个时间,举例来说,像是权限与属性被更改了都会更新这个时间。
读取时间(access time, atime)
当该文件的内容被读取时,就会更新这个读取时间(access),举例来说,我们使用cat去读取file.txt,就会更新该文件的atime。
1 | [root@izbp1783u2o2usauzn9srez ~]# date; ll /etc/man_db.conf; ll --time=ctime /etc/man_db.conf; ll --time=atime /etc/man_db.conf |
1 | touch [-acdmt] 文件 |
无论如何,touch
这个命令最常被使用的情况是:
- 建立一个空文件
- 将某个文件日期自定义为目前(mtime和atime)
6.find
find
:查找某路径下指定文件。
1 | find /root(路径) -name 文件名 |
7.grep/wc
grep
:文本搜索
1 | 语法:grep 参数 查找条件 文件名(注:是文件名,目录名下查找不行) |
wc
:统计字数
1 | wc [-clw][--help][--version][文件...] |
在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:
1 | (base) saladdays@MacBook-Pro _posts % wc learnCpp-static.md |
找出某个文件里关键字出现的次数
1 | grep 字符串 文件名 | wc -l |
8.ps/top/kill
ps
:查看进程,显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。top
:显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等。top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
kill
:杀死进程。
9.netstat/lsof
netstat
:常用于查看路由表,显示各种网络相关信息,如网络连接,路由表,接口状态(Interface Statistics),masquerade连接,多播成员。
1 | 命令参数 |
1 | 常用命令参考 |
lsof
:查端口
1 | lsof -i:443 #显示所有打开443端口的进程 |
10.scp
scp
:通过网络在两台主机之间拷贝文件,可以支持Windows。
1 | scp local_file remote_username@remote_ip:remote_folder #本地复制到远程,文件未重命名。 |
从远程复制到本地,只需要将上述命令的后2个参数调换顺序就可以了。
相比于CP命令,主要就是在source跟dest之前加上remote_username@remote_ip:,通过加的位置的不同区分出到底从远程到本地还是本地到远程。
11.tar/zip
tar
:打包/压缩文件zip
:打包/压缩文件
详见:
12.chmod
chmod
:改变文件的权限
1 | 语法:chmod [options] mode files |
我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限
1 | chmod u+x file :给file的属主增加执行权限 |