Linux每日一命令学习系列
这里是罗列出最常用的命令组合,而不是一个个详细介绍每个参数的用法,适合当你面对linux的终端的时候,知道有哪些命令,可是不知道加啥组合参数有啥效果的时候使用。
具体的可以去,这里www.cnblogs.com/peida/tag/每日一linux命令/,有详细介绍,此处是一个快捷的使用总结,方便作为简单的入门手册查询
这篇文章是上篇图片版本的markdown版本,居然没有人看那个,果然是因为复制粘贴不了吗?看看这篇文章浏览量对比那个怎么样
正式开始
说明,文中的,三个减号(—)代表linux的管道符合(|),因为markdown的表格冲突,暂时这样写
命令 | 使用场景 | 组合参数用法 |
---|---|---|
ls | 列出某一个目录下的子目录以及文件 | ls -lRF / |
因为total的原因不够直观,那么可以代替上面这个 | find $PWD ---xargs ls -ldF | |
如果还是不够直观,这次加颜色参数 | find $PWD --- xargs ls -ldF --color | |
当前文件目录最新修改的文件排序最前 | ls -ltr | |
直观的看出目录于名称后加”/”, 可执行档于名称后加”*” | ls -F | |
cd | 进入当前登录用户的目录 | cd |
进入刚才的目录 | cd - | |
后退上一级目录 | cd .. | |
pwd | 当前工作目录的完整路径(软连接,-P物理地址) | pwd |
mkdir | 创建目录 (递归创建目录-p) | mkdir -p hank/a/b/c |
rm | 强制删除当前目录以及里面的文件 | rm -rf * |
rmdir | 删除空目录(删除前目录必须为空)递归删除包括自身 | rmdir -p (不实用) |
mv | 文件改名 | mv test.log test.txt |
文件移动 | mv test.log(文件) test(文件夹) | |
目录移动 | mv testa(文件夹) testb(文件夹) | |
移动当前文件夹下的所有文件到上一级目录 | mv * ../ | |
cp | 复制单个文件到目标目录 | cp test.log(文件) test(文件夹) |
复制整个目录 (testb不存在那么就没有testa) | cp -a testa(文件夹) testb(文件夹) | |
touch | 创建文件 | touch a b c |
修改文件时间戳 | touch a | |
cat | 查看文件 | cat a b c |
生成文件 | cat >test.log<<EOF | |
合并文件 | cat a b c > d | |
nl | 显示行号不管是否为空行 | nl -b a test.log |
让行号左边开头补全零 | nl -b a -n rz test.log | |
more | 向后翻页 | 空格 |
向前翻页 | b键 | |
从第n页开始 | more +n 文件 | |
每页设定n条记录 | more -n 文件 | |
查找一个指定字符串 | more +/字符串 文件 | |
less | 升级版的more,低级版的vi,不需要像more一样全部加载文件 | |
查看文件 | less 文件(其他按键操作看vi) | |
head | 显示文件的前5行 | head -n 5 log.test |
显示文件的除了最后5行的全部内容 | head -n -5 log.test | |
tail | 显示行末的最后5行 | tail -n 5 log.test |
刷新查看最新的文件内容 | tail -f log.test(超实用) | |
显示文件第5行开始的内容 | tail -n +5 log.test | |
which | 查询Path变量路径下的,某个系统可执行(不是任意的文件)的文件的位置 | |
which ls | ||
which which | ||
which cd | ||
whereis | 搜索程序名包括,二进制文件,man说明文件,源代码文件三类(不要搞错) | |
whereis svn | ||
whereis tomcat | ||
whereis resin | ||
locate | 快速查询档案系统是否有指定的档案(这里我也不太懂什么叫档案) | |
查询pwd相关的文件 | locate pwd | |
查询etc目录下所有m开头的文件 | locate /etc/m | |
find | 查询24小时内修改过的文件 | find -atime -1 |
根据关键字查询文件(文件夹) | find -name "*han*" | |
只查询文件不包括文件夹 | find -type f -name "*han*" | |
查询当前目录下的所有子目录 | find . type d | |
查询当前目录下大于1k的文件 | find . -type f -size +1000c | |
列出更加详细的文件信息组合命令 | find . -type f -exec ls -l {} \; | |
把查找到的文件移动到指定目录 | find . -type f -name "*han*" -exec mv {} hello | |
把查找到的文件复制到指定目录 | find . -type f -name "*han*" -exec cp {} hello | |
查找当前目录文件并显示属于哪类文件 | find . -type f --- xargs file | |
查找当面目录文件中包括关键字 | find . -type f --- xargs grep "hank" | |
在a目录查询避开b目录查询 | find a -path "b" -prune -o -print | |
优先在当前目录查找然后去子目录 | find / -name "file" -depth -print | |
chmod | 给文件一组默认执行权限 | chmod 751 test.log |
给文件一组默认读权限 | chmod 444 test.log | |
给文件一组读写执行权限 | chmod 777 test.log | |
tar | 搞清楚打包和压缩两个概念,tar是打包用的,但是可以参数进行压缩 | |
解开一个tar包还原里面的文件 | tar xvf file.tar | |
把文件和目录达成一个tar包 | tar cvf file.tar 对应目录 | |
解开tar包的压缩包版本 (gzip) | tar zxvf file.tar.gz | |
压缩打包后的tar包 (bzip) | tar zcvf file.tar.gz 对应目录 | |
产一个gz的压缩包 | tar -ztvf file.tar.gz | |
chgrp | 群组去/etc/group里面看 | |
根据某个文件改变其他所属的类别 | chgrp --reference=a b | |
chown | 更改指定目录及其子目录所有的拥有者和群组 | chown -R hank:han test.log |
gzip | 压缩当前目录下的所有文件(文件夹忽略) | gzip * |
解压当前目录下的压缩文件 | gzip -d * | |
压缩一个tar包 | gzip -r test.tar | |
递归压缩目录 | gzip -r test/ | |
df | 显示磁盘使用情况 | df |
查看文件系统类型 | df -T | |
更方面人理解的列表(H表示1000而不是1024) | df -h | |
du | 查看当前目录下各个目录占用空间 | du |
查看当前目录下文件+目录各自占用空间 | du -a | |
用人能看懂的方式展示 | du -h | |
只看一级的子目录各自占用的空间大小 | du -h --max-depth=1 | |
ln | 软硬链接的区别,软的是一种快捷方式,硬的直接指向文件所在位置 | |
ln -s test.log test.soft.link | ||
ln test.log test.hard.link | ||
diff | 比较2个文件(文件夹),推荐方式 | diff a b -y |
生成补丁 | diff a b > a.patch | |
打补丁 | patch a a.patch | |
date | 日期 | date "+%D" |
时间 | date "+%T" | |
cal | 本月的日历 | cal |
全年的阳历 | cal -y 2017 | |
grep | 查找指定进错 | ps -ef --- grep svn |
从a文件中读取规则去b文件中找 | cat b --- grep -f a | |
从文件中找关键字 | grep 'han' test.log | |
查找ssh同时排除grep | ps aux--- grep ssh --- grep -v 'grep' | |
查找包含a或者b或者c的内容行 | grep -E 'a---b---c' test.log | |
wc | 统计行数,单词数,字节数,文件名 | wc test.log |
只统计行数 | wc -l test.log | |
ps | 显示所有进程信息(常见) | ps -ef |
查找特定进程(常用) | ps -ef ---grep svn | |
列出当前用户登录的pid相关 | ps -l | |
显示所有内存当中的程序(实用) | ps aux | |
kill | 彻底杀死进程(超常用) | kill -9 进程号 |
killall | 杀死进程通过名字(可能误杀) | killall -9 进程名称 |
top | 显示完整命令(默认cpu排序,实用) | top -c |
free | 查看内存 | free -m |
vmstat | 查看内存使用的详细信息 | vmstat -s |
iostat | 查看所有设备负载情况 | iostat |
watch | 每隔一秒高亮显示网络中链接数的变化 | watch -n 1 -d netstat -ant |
at | 一次性的定时任务 | at 时刻 |
打开定时任务 | /etc/init.d/atd start | |
查看定时任务 | atq | |
删除定时任务 | atrm 任务号 | |
crontab | 打开crond服务 | service crond start |
每日执行一命令 | crontab -e | |
最后一行添加如hello | * * * * * /bin/echo 'hello' > /root/han/cron | |
lsof | 通过进程号显示该进程打开的文件 | lsof -p 进程号 |
列出哪些进程在使用这个文件 | lsof /bin/bash | |
列出tcp网络连接信息 | lsof -i tcp | |
查询谁在使用某个端口 | lsof -i :8080 | |
主要解决了,这个进程打开了哪些文件,这个文件是由那个进程打开的 | ||
ifconfig | 显示网络设备信息 | ifconfig |
route | 查看路由信息 | route -n |
ping | 向指定的ip发送指定次数 | ping -c 10 127.0.0.1 |
traceroute | 向指定的域名发送请求探测出路径 | traceroute www.sogo.com |
netstat | 显示监听的套接口 | netstat -l |
显示所有udp的连接 | netstat -u | |
显示所有tcp的连接 | netstat -t | |
统计机器中网络连接各个状态个数 | netstat -a -- awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' | |
找出程序运行的端口 | netstat -ap --- grep ssh | |
显示pid和进程名字 | netstat -p | |
显示ip地址而不是域名 | netstat -n | |
通过端口找到进程 | netstat -ap--- grep '80' | |
ss | 显示tcp链接 | ss -t -a |
列出所有打开的网络连接端口 | ss -l | |
scp | 本地文件(文件夹)到远程 | scp -r local remoteIP:remote |
远程到本地 | scp -r remoteIP:remote local |