前言
做后端开发的同学,一般都会接触到服务器,而我们现在的系统用的比较多的服务器系统就是linux了,平时多多少少也会接触到一些linux下的shell命令。我们来介绍下linux一些常用的命令和使用场景。
pwd,请告诉我,当前在哪个目录?
pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。
实例
[
/root
whoami,告诉我,当前是哪个用户登录的
whoami命令用于打印当前有效的用户名称
实例
[
root
场景
平时我们写一些shell脚本,想指定某些用户才能执行到,一般会先用whoami命令查出当前用户,判断是否为合法用户执行脚本。
ls 看看当前目录下有啥
ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。
语法
ls(选项)(参数)
参数一般是目录:指定要显示列表的目录,也可以是具体的文件。
常用搭配
ls -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
ls -A:显示除影藏文件“.”和“..”以外的所有文件列表;
ls -C:多列显示输出结果。这是默认选项;
ls -l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
实例
[root@localhost ~]# ls -a
.bash_logout .bashrc install.log .mysql_history satools .tcshrc .vimrc
[root@localhost ~]# ls -1
anaconda-ks.cfg
install.log
install.log.syslog
satools
man,呼叫 help~
man,取 manual 之意。通常也称 man page。
man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
实例
我们输入man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输man ifconfig它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。
(manpage 其实就是整个 Linux/BSD/Mac 系统中 shell命令、系统API、Driver 等等各种文档的大集合。如果 shell命令 和 系统API 有重名咋办。这就涉及到不同的 section 了。上面的章节号就是不同的section)
cat,看看文件中有啥内容
cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容
注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
实例
aaa
bbb
常用搭配
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
cat -n con.txt
cat -b con.txt
tail命令用于输入文件中的尾部内容。
实例
tail -f con.txt 实时监控con.txt的变化,当有新内容写入到con.txt时,会马上输出到终端上。
tail -n 100 con.txt 表示输出con.txt最后100行数据
拓展
head -n 100 con.txt 表示输出con.txt前100行数据
场景
这是最最最常用的命令之一。一般我们监控日记输出需要用到这个命令,实时监控日志变化,有助于我们分析程序bug。比如有个文件叫 foo.txt,有个程序会不停地给 foo.txt 中写 log,tail -f 可以一直看到最新的 log
ps, 看进程列表
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
实例场景
这个命令参数很多,建议查看手册使用,或者记忆几种常用的参数来使用。经常是配合grep来查看某个进程是否在运行。
ps -aux | grep 'php' 表示查看php名字的进程
grep
(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
实例
在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep match_pattern file_name
grep "match_pattern" file_name
在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
输出除之外的所有行 -v 选项:
grep -v "match_pattern" file_name
标记匹配颜色 --color=auto 选项:
grep "match_pattern" file_name --color=auto
find,找文件呀、找文件
实例
# 目录结构
# ./bar.c
# ./foo/foo.c
$ find . -name "*.c"
./foo/foo.c
./bar.c
还有其他常用的
kill,干掉某个进程
top, 监控当前CPU占用情况
du, 查看文件大小
df, 查看磁盘空余大小
ifconfig, 看看本机IP
rm, 删文件、目录
mkdir, 创建目录
cd, 跳转目录
最后
上面就列了一些常用的命令,但是还有很多很实用的命令我们没有介绍到,这个还是需要平时多去练习和积累。