Linux常用命令
Posted xinbao777
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令相关的知识,希望对你有一定的参考价值。
我们的业务部署在linux环境下,这些实体机或者虚拟机都在IDC机房,所以我们操作这些机器,通常会用到远程模拟终端 —— Xshell
下面分类介绍一些常用的命令
【文件和目录操作命令】
pwd 显示当前所处目录的全路径
BASE=`cd $(dirname $0); pwd`
cd 改变当前目录
cd ~ 改变到用户的home目录
cd - 改变到上一次的目录
ls -alh 显示所有文件内容,文件大小按照humanable方式显示
tree 以树型显示当前目录下所有内容
mkdir -p 如果父目录不存在则创建
rmdir 只能删除空目录
rmdir -p 如果父目录没内容也删除掉
rm -rf 递归删除 (这是一个极端危险的命令,执行之前一定要确认清楚)
cp src dst 拷贝src到dst
rm dst 删除dst文件
mv src dst 移动或者重命名src到dst
ln 建立符号链接
chown user.usergroup 修改属主信息
chmod 修改文件权限
设定文件权限时,在模式中常用以下的字母代表用户或用户组:
u - 文件的拥有者;
g - 文件的所属组;
o - 其他用户;
a - 代表所有用户(即u+g+o)。
权限用以下字符表示:
r?- 读权限;
w - 写权限;
x - 执行权限;
注意:增加(+)还是减少(-)权限,或是权限(=)
find 查找文件
-name “*.log”
-type f 查找类型为文件(f),目录(d)
-wholename “*/logs/*” 全路径匹配
-mtime +n n天前修改过的文件
find /data/ -type f -wholename “*/logs/*” -mtime +1 -exec rm -f {} ;
查找data下,全路径包含/logs/且1天前修改过的文件并删除
grep 查找内容中指定字符串
支持正则表达式
-i 大小写模糊匹配
--color 高亮匹配内容
tail -f *.log | grep -i --color “uid=”
查看文件内容
cat more less
cat *.log 显示多个文件内容
more a.txt 逐页显示文件内容,支持交互命令
less 是more的改进版,比more更灵活
q 退出 more或者less命令
head tail
head -n 10 显示文件前10行
tail -n 100 显示文件最后100行
tail -f *.log 持续显示*.log的更新内容
文本排序
sort uniq
sort 对文件内容进行排序
uniq -c 计算重复内容的行数
实际业务场景举例
sort a.txt | uniq -c | sort -nr -k1 | head -n 100
【进程操作命令】
ps 查找进程
ps -ef
ps aux
ps aux | grep java
kill killall 终止进程
kill -9 强制终止
killall -9 终止所有符合条件的进程
top 实时监控进程
和ps命令不同,top命令可以实时监控进程状况。top屏幕自动每5秒刷新一次,也可以用“top –d 20”,使得top屏幕每20秒刷新一次
shift+h 可以显示线程信息
【网络相关命令】
netstat
netstat -lntp 显示当前机器侦听地址及进程
netstat -ant 显示当前所有tcp状态信息
netstat -ant | awk ‘{print $6}’ | sort | uniq -c | sort -nr -k1 显示当前网络状态统计
netstat -ant | wc -l 显示当前活跃连接数
ping 测试网络连通性
ping -c 10 10.1.1.1
ifconfig 查看本机ip
注意和windows下ipconfig的区别
curl 模拟浏览器请求
-x http://10.204.1.3:8080 指明代理
-H“Host: wenwen.sogou.com” 指明header
-d 指定POST请求参数
-i 输出内容包含响应的http头信息
-o 输出内容到指定文件
可以模拟任何浏览器请求
lsof 查找打开文件的进程
lsof abc.txt 显示开启文件abc.txt的进程
lsof -c abc 显示abc进程现在打开的文件
lsof -c -p 1234 列出进程号为1234的进程所打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不止一个)
port --> 端口号 (可以不止一个)
【任务调度相关】
bg fg jobs nohup disown
(cmd &) 启动新bash进程并后台运行cmd
nohup 启动后台进程
已经运行中的任务如何后台运行?
首先ctrl+z 停止任务
bg 使得任务后台运行
通过jobs查看刚才任务id,假设为1
通过disown %1将后台任务从当前进程脱离
crontab
crontab * * * * * (cd /data/bin/; ./test.sh)
五个星号分别代表分、时、日、月、周
【文件打包操作】
tar gzip unzip jar
tar cvzf a.tgz content/ 将content文件夹打包为a.tgz
tar xf a.tgz 将a.tgz的文件解压缩到当前目录
gunzip 解压缩zip文件
jar xf core.jar 解压缩jar文件
【改变命令的执行权限】
sudo 临时以root权限执行命令
需要配置 /etc/sudoers
*好给出 iptables/tcpdump 等权限方便定位问题
某些常用命令可以配置NOPASSWD
以上是关于Linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章