linux常用命令

linux常用命令集合

linux教学

一、系统信息

uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
date 显示系统日期

二、文件和目录

cd /data 进入 ‘/ data’ 目录’
cd … 返回上一级目录
cd …/…返回上两级目录
cd - 返回上次所在的目录

2.1 列出文件

ls 列出目录及文件
ls -a 列出全部文件(包含隐藏文件)
ls -l (缩写ll)包含文件的属性与权限等数据
ll -lh 查看文件夹下的详细 包括大小

ll -Sh 按照文件大小进行排序
ll -lrt 按照文件时间进行排序
ll bb 查看文件名包含bb的文件(前后都要有**)

2.2 搜索(重点*)

2.2.1 find(文件和目录)
find命令在目录结构中搜索文件)
find 目录 -name ‘bb’ 查某目录下bb的文件
find 目录 -name ‘bb’ 查某目录下文件名包含bb的文件(前后要有*)
find 目录 -type f -size +1G 查找大文件

2.2.2 grep (文件内的内容)
grep 命令用于查找文件里符合条件的字符串,是一种强大的文本搜索工具。
grep “bb” filename 从文件内容查找匹配指定字符串叫bb的行
grep -A 数字 显示匹配指定内容及之后的n行
grep -B 数字 显示匹配指定内容及之前的n行
grep -C 数字 显示匹配指定内容及其前后各n行(常用)

示例:grep -C 10 ‘bb’ web.log 搜索匹配web.log文件中与”bb”字符串匹配的行,并显示其前后的5行
grep -c 返回一个文件中字符串的个数
示例: cat ssa.log | grep -c ‘ERROR’ 显示该文件中字符串 "ERROR"的个数
grep -r 搜索目录下含有某个关键字的文件
示例:grep -r ‘ERROR’ /home/admin 搜索在目录下面的含有关键字的文件

2.3 创建

mkdir dir1 创建一个叫做 ‘dir1’ 的目录’
mkdir dir1 dir2 同时创建两个目录
touch 1.txt 创建一个名为“1.txt”的空白文件

2.4 删除

rm 1.txt  删除一个叫做 ‘1.txt’ 的文件’
rm -f 1.txt 删除一个叫做 ‘ 1.txt’ 的文件’ (不需要确认删除)
rmdir test 删除一个叫做 ‘test ’ 的目录’
rm -rf test 删除一个叫做 ‘test ’ 的目录并同时删除其内容(不需要确认)
rm -rf test1 test2 同时删除两个目录及它们的内容

2.5 复制

cp file1 file2 复制一个文件

cp -r dir1 dir2 复制一个目录及子文件
cp -r /home/packageA/* /home/cp/packageB/ 把packageA 下的所有文件拷贝到 packageB 中

2.6 清空

echo " " > file.log 将file.log日志的内容清空

2.7 输入

和> 或者>>一起使用
和>>:输出符号,将内容输出到文件中,>表示覆盖(会删除原文件内容) >>表示追加

echo Hello World > 1.txt #将Hello World输出到当前目录下的1.txt文件
#如果当前目录下有1.txt,则会删除原文件内容,写入Hello World
echo 1234 >> 1.txt #将1234追加到当前目录下的1.txt中,如果文件不存在会创建新文件

2.8 移动

mv /目录1/文件 /目录2/ 把文件移动到目录2
mv /home/audio/*   /zoo 将文件夹下的全部文件移动到/zoo下
mv /home/audio/*.txt   /zoo 将文件夹下的后缀为txt格式的文件移动到/zoo下

2.9 执行

nohup /home/run.sh & 后台运行命令,退出终端不影响程序运行
在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,
&:让命令在后台执行,终端退出后命令仍旧执行。

sh /home/run.sh

2.10上传

主要使用sfp命令
1登录
sftp root@10.101.1.1
2切换远程机目录
cd
3切换本地主机目录
lcd
4上传文件给远程机器
把本地服务器的D:/MyKit/test目录下面的2020.txt文件上传到远程服务器的/home/ilog/test目录下。
put D:/MyKit/test/logs /home/ilog/test/
sftp> lcd D:/MyKit/test
sftp> cd /home/ilog/test
sftp> put 2020.txt

2.11下载

5下载(接上面)
get /home/ilog/test/0824.txt D:/MyKit/test/

三、文件内容查看

3.1 cat

cat 1.txt 从第一个字节开始正向查看文件的内容
cat -b 1.txt 列出行号正向查看文件的内容

3.2 tac

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写
tac 1.txt 倒着显示文件的内容

3.3 more

more 1.txt 查看一个长文件的内容,一页一页翻动
more 运行时可以输入的命令有:
 空白键 (space):代表向下翻一页;
 Enter:代表向下翻『一行』;
 b 或 [ctrl]-b :代表往回翻页
 :f  :立刻显示出档名以及目前显示的行数;

3.4 less

less 1.txt类似于 ‘more’ 命令,反向操作 从文件末尾开始
less运行时可以输入的命令有:
 空白键 :向下翻动一页;
 [pagedown]:向下翻动一页;
 [pageup] :向上翻动一页;

3.5 head

head -10 1.txt 查看一个文件的前十行

3.6 tail(重点* 常看日志最常用)

取出文件后面几行
tail -n 10 web.log 查看一个文件的最后十行

tail -fn 500 web.log (最常用的命令) 实时查看500行日志

tail -f web.log 实时查看文件内容
tail -f web.log | grep “error” 查询正在改变的日志,匹配字符串error
tail -f web.log > temp.txt 查询日志指定生成文件查看

四、打包和压缩文件

Linux 常用的压缩与解压缩命令有:tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar 等。

4.1 tar

linux中的打包文件:xx.tar
linux中的压缩文件:xx.gz
linux中打包并压缩的文件:xx.tar.gz

4.1.1 打包和压缩

其中:
 z:调用gzip压缩命令进行压缩
 c:打包文件
 v:显示运行过程
 f:指定文件名

最常用命令
打包
tar -cvf app.tar *.jpg 将目录里所有jpg文件打包成 app.tar
打包并压缩
tar -zcvf app.tar /home/admin/ 打包并压缩该目录下的所有文件 压缩后的压缩包指定名称为xxx.tar

4.1.2 解压

注意:tar -zxvf 用于解压 .tar.gz 后缀结尾的
   tar -xvf 用于解压 .tar后缀结尾的
tar -xvf file.tar 解压 tar 包
tar -xvf file.tar -C /home/admin ------C代表指定解压的位置

4.2 zip

4.2.1 压缩

zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包

4.2.2 解压

unzip file1.zip 解压一个zip格式压缩包

4.3 gzip

4.3.1 压缩

gzip file1 压缩一个叫做 'file1’的文件
gzip -9 file1 最大程度压缩

4.3.2 解压

gunzip file1.gz 解压一个叫做 'file1.gz’的文件

五、文件目录权限

5.1权限

在这里插入图片描述

r:表示读权限 数字表示为4
w:表示写权限 数字表示为2
x:表示执行权限 数字表示为1

从左到右分别代表:用户 用户组 其他用户 的权限
chmod +nnn 文件名 n代表数字 +代表赋权
chmod -R +nnn 目录名 给目录及目录下所有文件赋权
实例:赋予所有用户 可读、可写、可执行权限
chmod +777 文件名

5.2 用户和所属组

chmod 用户:用户组 文件
实例:修改文件所属为asap用户,root组
chown asap:root 文件名
chown -R asap:root 目录名

六、磁盘管理

free -h 查看内存占用
df -lh 查看磁盘空间占用
du -sh * 查看文件大小

du -h -x --max-depth=1 查看占用空间最大的目录或文件

6.1磁盘清理

1、查看磁盘空间
df -lh
2、切换到root:cd /
执行:du -h -x --max-depth=1 查看占用空间最大的目录或文件
附:
或者执行du -sh *
大目录排序:
du -h --max-depth=2 | sort -n
大目录排序且只看前12个:
du -h --max-depth=2 | sort -nr | head -12
3、进入占用空间最大的目录中
继续执行:du -h -x --max-depth=1
找到大的无用的文件删除即可,如果还没找到可删除的较大文件继续执行:du -h -x --max-depth=1,以此类推
4.排查到某目录 查看最大文件
ls -lhS

rm -rf 文件
验证删除后是否仍被打开
lsof |grep deleted
发现文件依旧被打开,杀掉对应进程号
kill -9 986524

七、vi/vim

Vim 是从 vi 发展出来的一个文本编辑器。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
以下是常用的几个命令:
 i 切换到输入模式,以输入字符。
 x 删除当前光标所在处的字符。
 dd 删除游标所在的那一整行
 ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
 u 返回到上一步
 : 切换到底线命令模式,以在最底一行输入命令。
  ctrl-f ctrl-b 向后/往前翻页 f就是forword b就是backward
  ctrl-d ctlr-u 翻半页。d=down u=up
nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
 gg 移动到这个文档的第一行,相当于 1G !(常用)
  G 翻页直接到最后 (常用)

输入模式
Page Up/Page Down,上/下翻页(MAC 为 fn + 向上/向下 箭头)
  ESC,退出输入模式,切换到命令模式

底线命令模式
  :wq 保存
  :q!不保存退出
  :%s/pattern//gn 查找字符串出现的次数 pattern为查找的字符串
  :set nu 显示行号
  :set encoding=utf-8 打开日志时,中文乱码时可转换成中文
下面的超级好用
/word 向光标之下寻找一个名称为 word 的字符串 (常用)
  ?word 向光标之上寻找一个字符串名称为 word 的字符串。(太常用)
  n 英文按键,如果刚刚我们执行 /word 去向下搜寻 word 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 word 的字符串
  N 与n相反,向上搜索

八、其他命令

8.1 网络通信

ifconfig 查看网卡信息
ping 查看与某台机器的连接情况
telnet ip port 测试端口的连通性 例如:telnet 10.28.22.41 80
netstat -palnt 查看当前系统端口
netstat -palnt | grep 8080 搜索指定端口8080

netstat -anp | grep 端口号 检查端口是否存活(超级常用)

sar -n DEV 2 实时接收多少字节情况 (常用)
在这里插入图片描述

8.2 进程

ps -ef | grep es 查看正在运行的进程es (常用)
top -u root 查看用户root的所有进程
lsof -i:8051 查看端口号被哪个进程占用
kill -9 pid 强制杀死进程。pid:进程号

8.3 防火墙

service iptables start --启动iptables服务
service iptables stop --停止iptables服务
service iptables status --查看iptables服务的状态
service iptables restart --重启iptables服务

8.4 定时任务

yum install crontabs 安装定时任务
crontab -l 查看定时任务列表
crontab -e (等同于vim /var/spool/cron/root) 编辑任务列表
service cron start --启动服务
service cron stop --关闭服务
service cron restart --重启服务
service cron reload --重新载入配置
service crond status --查看crontab服务状态

如果上面的执行不了,可执行这个
systemctl stop crond.service
systemctl start crond.service
systemctl status crond.service

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江河没有风、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值