Linux命令整理
目录
本教程针对的是Linux服务器方面的知识,适合从事运维或后端开发的人员阅读。
一、系统信息
arch 或 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 显示系统日期
date 122418002021.00 设置日期和时间 - 月日时分年.秒
二、文件和目录
cd /data 进入 ‘/ data’ 目录’
cd … 返回上一级目录
cd …/… 返回上两级目录
cd 进入个人的主目录
cd - 返回上次所在的目录
2.1 查找
ls 列出目录及文件名
ls -a 列出全部文件,包含隐藏文件
ls -l (缩写ll)包含文件的属性与权限等数据
ls -lh 查看文件夹下的详细 包括大小。显示友好
ll -Slh 按照文件大小进行排序,显示友好
ll -Sh 按照文件大小进行排序
ll -rt 按照时间进行排序
pwd 显示当前路径
ls *[0-9]*显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构
2.2 搜索(重点*)
2.2.1 find
find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。find默认搜索当前目录及其子目录 ,并且不过滤任何结果(也就是返回所有文件)
find / -name “*yaml” 全局搜索
find ./ -name "yaml" 搜索当前目录
find . -name “*.log” -ls 在当前目录查找以.log结尾的文件,并显示详细信息。
find /home -type f -size +1G 查找大文件
find / -mtime n 查找在系统中最后24n小时里修改过的文件
2.2.2 grep
grep 命令用于查找文件里符合条件的字符串,是一种强大的文本搜索工具。
grep "str " filename 从文件内容查找匹配指定字符串的行
grep -A 显示匹配指定内容及之后的n行
grep -B 显示匹配指定内容及之前的n行
grep -C 显示匹配指定内容及其前后各n行(常用) 示例:grep -C 10 name test.txt 搜索匹配test.txt文件中与”name”字符串匹配的行,并显示其前后的5行
grep -c 返回一个文件中字符串的个数 示例: cat test.txt | grep -c ‘name’ 显示该文件中字符串 "name"的个数
grep –e “正则表达式” filename 从文件内容查找与正则表达式匹配的行
grep -r ‘v67’ /home/audio 搜索在目录下面的含有关键字的文件
2.3 创建
mkdir dir1 创建一个叫做 ‘dir1’ 的目录’
mkdir dir1 dir2 同时创建两个目录
mkdir -p /data/dir1/dir2 创建一个目录树
cat >> filename 创建一个新的文件
touch file 创建一个名为“file”的空白文件
2.4 删除
rm file1 删除一个叫做 ‘file1’ 的文件’
rm -f file1 删除一个叫做 ‘file1’ 的文件’ (不需要确认删除)
rmdir dir1 删除一个叫做 ‘dir1’ 的目录’
rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容(不需要确认)
rm -rf dir1 dir2 同时删除两个目录及它们的内容
find . -type f | xargs /bin/rm -f 删除同一个文件夹下的所有文件,不包括文件夹 -type 后面的 f 表示普通文件
2.5 复制
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -r /home/packageA/* /home/cp/packageB/ 把packageA 下的所有文件拷贝到 packageB 中
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
2.6 清空
echo " " > file.log 将file.log日志的内容清空
2.7 移动
mv /home/audio/* /zoo 将文件夹下的全部文件移动到/zoo下
mv /home/audio/*.txt /zoo 将文件夹下的后缀为txt格式的文件移动到/zoo下
2.8 执行
nohup /home/run.sh & 后台运行命令,退出终端不影响程序运行
在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,
&:让命令在后台执行,终端退出后命令仍旧执行。
三、文件内容查看
3.1 cat
cat file1 从第一个字节开始正向查看文件的内容
cat -b file1 列出行号正向查看文件的内容
3.2 tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写
tac file1 倒着显示文件的内容
3.3 more
more file1 查看一个长文件的内容,一页一页翻动
more 运行时可以输入的命令有:
空白键 (space):代表向下翻一页;
Enter:代表向下翻『一行』;
b 或 [ctrl]-b :代表往回翻页
:f :立刻显示出档名以及目前显示的行数;
3.4 less
less file1 类似于 ‘more’ 命令,反向操作 从文件末尾开始
less运行时可以输入的命令有:
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
3.5 head
head -10 file1 查看一个文件的前十行
3.6 tail(重点*)
取出文件后面几行
tail -n 10 file1 查看一个文件的最后十行
tail -f server.log 实时查看被添加到一个文件中的内容
tail -f server.log | grep “error” 查询正在改变的日志,匹配字符串error
tail -f server.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 *打包并压缩该目录下的所有文件 压缩后的压缩包指定名称为xxx.tar
4.1.2 解压
注意:tar -zxvf 用于解压 .tar.gz 后缀结尾的
tar -xvf 用于解压 .tar后缀结尾的
tar -xvf file.tar // 解压 tar 包
tar -xvf file.tar -C /usr ------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’的文件
五、磁盘管理
free -h:以适于人类可读方式显示内存信息。
df -h: 以适于人类可读方式显示文件系统的磁盘空间占用情况
df -h | head: 显示根目录下的磁盘空间
du-sh * 查看当前目录下各个文件及目录占用空间大小
六、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相反,向上搜索
六、其他命令
6.1 网络通信
ifconfig 查看网卡信息
ping 查看与某台机器的连接情况
telnet ip port 测试端口的连通性 例如:telnet 10.28.22.41 80
netstat -palnt 查看当前系统端口
netstat -palnt | grep 8080 搜索指定端口8080
6.2 进程
ps -ef 查看所有正在运行的进程
top -u root 查看用户root的所有进程
lsof -i:8051 查看端口号被哪个进程占用
kill -9 pid 强制杀死进程。pid:进程号
6.3 防火墙
service iptables start --启动iptables服务
service iptables stop --停止iptables服务
service iptables status --查看iptables服务的状态
service iptables restart --重启iptables服务
6.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