学习一个Linux命令,需要考虑如何记忆它,比较有用的方式是【全称联想法】。全称一定会对应中文的某个意思(如果母语为英语,则无需翻译成中文)。以df和du为例子,df的全称是disk free,翻译为中文是磁盘剩余空间;du的全称是disk usage,即为磁盘使用情况。因此,要记忆磁盘使用相关的命令,首先联想到【磁盘剩余空间】和【磁盘使用】,接着就能想到disk free/disk usage,再获取其缩写,即为命令的写法。-h是一个比较有意思的参数,表示–human-readable,即人类可读的格式。具体可以看下图:
常见的命令记录查看磁盘的使用情况
df -h 文件夹名du --max-depth=1 -h-s是summary的意思,不能和--max-depth同时使用du -sh 文件夹名
cp用来复制文件或目录,-r/-R 递归复制该目录及其子目录内容,-f 表示不询问而强制复制
scp用于在Linux服务器之间复制文件和目录
从服务器复制到本地,可以这样写,注意要在本地用scp,而不是在服务器下面用scp,不然识别不了。其实可以这样记忆,看以哪个为中心。不管是从远端复制到本地,还是把本地的复制到远端,都在本地操作(主角为本地)。
scp xxx@xxxxxxx:远程路径 本地路径
查看两个文件的不同
diff f1 f2 > diff.txt
0代表标准输入,1代表标准输出,2代表错误输出,>代表重定向,grep (global search regular expression(RE) and print out the line)代表全面搜索正则表达式并把行打印出来。|代表管道,将前面一个指令传出的正确输出信息传递给下一个命令,作为标准的输入。注意,它具有单向性,也叫半双工管道。
du --max-depth=1 -h 、1>/home/qinxue/info.txt 2>/home/qinxue/error.txtdu --max-depth=1 -h 、1>/home/qinxue/info.txt 2>/dev/null du --max-depth=1 -h 、2>/dev/null du --max-depth=1 -h 、2>/dev/null | grep qinxue
mac下用不了--max-depth=1,可以直接用-d 1。
交互式Shell命令,连接服务器,当出现密码的提示时,自动输入。省去了手动输入的麻烦。
#!/usr/bin/expectset timeout 30spawn ssh xx@xxxxxxexpect "password:"send "xxxxxxr"interact
awk命令的使用说明见下图:
参考博客:http://www.zsythink.net/archives/1336/
示例如下:
awk '{print $2}' a.txt | sort | uniq > b.txt
重启linux服务器:reboot
强制关闭谷歌浏览器,关闭其它的也类似
查找某个文件夹下java文件代码的行数
wc -l `find xxx/ -name "*.java"`
远程连接的机器上运行jar包,使其输出到指定文件,关闭窗口不停止运行;关键命令为nohup
nohup java -jar xxx.jar > log.txt 2>&1 &
批量删除以xxx-开头的所有文件夹,此处使用了正则表达式
rm -rf xxx-*
杀掉指定的进程
ps -aux | grep xxx | grep -v grep | awk '{print $2}' | sed -n '1p' | xargs kill -9
查看某个端口号是否正常启用
-a或–all 显示所有连线中的Socket;
-n或–numeric 直接使用IP地址,而不展示域名服务器;
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
netstat -an | grep 10882
同步linux时间的命令(相关博客:https://www.cnblogs.com/JackpotHan/p/10813237.html)
ntpdate -u cn.pool.ntp.org
删除某个文件夹下所有以某个后缀命名的文件
find 、-name ".gitkeep" | xargs rm
查找当前文件夹及其递归子文件夹下所有pom.xml文件中包含有SNAPSHOT的文本
find 、-name 'pom.xml' | xargs grep -R SNAPSHOT