最近接触线上环境运维,没有图形化界面,很多时候都需要用命令来进行操作服务器。
所有记录下最近常用的一些命令。
查找:
find / -name 1.txt 在根目录下开始寻找1.txt
find /root -name *1.txt 从root目录下开始寻找 带有名称1的txt文件
find /home/deploy/ -name "*" | xargs grep "user" 查找/home/deploy目录下包含user的文件
删除:
功能说明:删除文件或目录。
语 法:rm [-dfirv][--help][--version][文件或目录...]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。
参 数:
-d或–directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force 强制删除文件或目录。
-i或–interactive 删除既有文件或目录之前先询问用户。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
删除文件夹:
rm -rf dicName
-r 递归
-f 强制
删除文件:
rm -f fileName
创建目录/文件:
创建目录:mkdir(make directories)
功能说明:建立目录
语 法:mkdir [-p][--help][--version][-m <目录属性>][目录名称]
补充说明:mkdir可建立目录并同时设置目录的权限。
参 数:
-m<目录属性>或–mode<目录属性> 建立目录时同时设置目录的权限。
-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
例:mkdir test
创建文件 touch
功能说明:改变文件或目录时间。
语 法:touch [-acfm][-d <日期时间>][-r <参考文件或目 录>][-t <日期时间>] [--help] [--version][文件或目录...] 或 touch [-acfm][--help][--version][日期时 间][文件或目录...]
补充说明:使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间。
参 数:
-a或–time=atime或–time=access或–time=use 只更改存取时间。
-c或–no-create 不建立任何文件。
-d<时间日期> 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m或–time=mtime或–time=modify 只更改变动时间。
-r<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
-t<日期时间> 使用指定的日期时间,而非现在的时间。
例:touch 1.txt
压缩打包/解压缩命令
tar打包命令
命令前加“-”执行命令的结果没有区别,只是两种风格
常用参数
-z 是否同时具有gz属性
-j 是否同时具有bz2属性
-J 是否同时具有xz属性
-x 解压缩、提取打包的内容
-t 查看压缩包内容
-c 建立一个压缩,打包文档
-C 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
-v 显示压缩或者打包的内容
-f 使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
-p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P 保留绝对路径
实例:
将三个文件打包成一个jihe.tar文件
$ tar -cvf jihe.tar ccc.txt bbb.sh aaa.sh
查看jihe.tar文件
$ tar -tf jihe.tar
提取jihe.tar文件到的内容到/opt目录下,如果没有"-C" 指定目录则会提取内容到当前目录
$ tar -xf jihe.tar -C /opt/
压缩命令
linux主要有三种压缩方式:
1.gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
2.bzip:压缩形成的文件小,但是可用性不如gzip
3.xz:是最新的压缩方式,可以自动提供最佳的压缩率
参数 | 作用 | 命名方式 |
-z | 用于gzip压缩方式 | 文件名.tar.gz |
-j | 用于bzip2压缩方式 | 文件名.tar.bz2 |
-J | 用于xz压缩方式 | 文件名.tar.xz |
$ tar -zcvf xxx.apk.tar.gz xxx.apk
$ tar -jcvf xxx.apk.tar.gz xxx.apk
$ tar -Jcvf xxx.apk.tar.gz xxx.apk
如果命令2报错,应该是缺少bzip2的包,执行 $ yum -y install bzip2
三种方式对比后
压缩速度:gz > bz2 > xz
压缩率:xz > bz2 > gz
解压
tar命令式一个很聪明的命令,解压的时候不需要指定解压方式,他会自己根据压缩包格式来选择。
$ tar -xf xxx.apk.tar.gz -C /opt/
补充:
a.在打包和压缩的过程中,我们有时候会看到这样的语句:tar: 从成员名中删除开头的“/”,这个并不是报错,是因为没有加上-P选项,没有保留原来的绝对路径去打包或者压缩,提取打包的内容跟解压一样.
解压的时候同理,如果在压缩文件的时候使用了-P选项,那么在解压的时候也要加上-P选项,不然也会出现”tar: 从成员名中删除开头的“/”
b.在使用tar压缩或者打包的时候,可以通过增加--exclude来达到排除指定的文件的目的
将xxx目录打包,但是不打包xxx目录下的ha.txt文件,如下
$ tar -cvf xxx.tar --exclude=aa.txt xxx
压缩文件也是同理,想要排除指定的目录压缩或者打包也是同理
c.使用r选项增加.tar归档文件的内容应该如何怎么操作?
通过tar --help命令查看帮助
-r选项的作用:把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中
实例:
# 首先归档
$ tar -cf xxx.tar xxx/
# 追加一个文件到xxx.tar中
$ tar -rf xxx.tar aaa.sh
根据端口号查看进程PID
命令lsof
$ lsof -i:80
命令netstat
$ netstat -nlp|grep :80
命令ps
$ ps -ef|grep <port>
网络测试命令
telnet命令
telnet为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过telnet来测试端口的连通性
具体用法格式:telnet ip port
说明:
ip:是测试主机的ip地址
port:是端口,比如80
$ telnet qq.com 80
SSH命令
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,在linux上可以通过ssh命令来测试端口的连通性,具体用法格式如下:
用法: ssh -v -p port username@ip
说明:
-v 调试模式(会打印日志).
-p 指定端口
username:远程主机的登录用户
ip:远程主机
curl命令
curl是利用URL语法在命令行方式下工作的开源文件传输工具。也可以用来测试端口的连通性,具体用法:
curl ip:port
说明:
ip:是测试主机的ip地址
port:是端口,比如80
如果远程主机开通了相应的端口,都会输出信息,如果没有开通相应的端口,则没有任何提示,需要CTRL+C断开。
wget方法
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。wget名称的由来是“World Wide Web”与“get”的结合,它也可以用来测试端口的连通性具体用法:
wget ip:port
说明:
ip:是测试主机的ip地址
port:是端口,比如80
如果远程主机不存在端口则会一直提示连接主机。
查看CPU和内存情况
top命令
退出 top 的命令为 q (在 top 运行中敲 q 键一次)。
最下部分的进程列表栏:
以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
s- 改变画面更新频率
l - 关闭或开启第一部分第一行 top 信息的表示
t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)
P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)
M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)
h - 显示帮助
n - 设置在进程列表所显示进程的数量
q - 退出 top
s -改变画面更新周期
查看磁盘使用情况
挂载点
挂载点实际上就是linux中的磁盘文件系统的入口目录,类似于windows中的用来访问不同分区的C:、D:、E:等盘符。
linux、unix这类操作系统将系统中的一切都作为文件来管理。
df命令
作用:用来查看硬盘的挂载点,以及对应的硬盘容量信息。包括硬盘的总大小,已经使用的大小,剩余大小。以及使用的空间占有的百分比等。
参数选项:
- -a:列出所有的文件系统,包括系统特有的/proc等文件系统
- -k:以KB的容量显示各文件系统
- -m:以MB的容量显示各文件系统
- -h:以人们较易阅读的GB,MB,KB等格式自行显示
- -H:以M=1000K替代M=1024K的进位方式
- -T:显示文件系统类型
- -i:不用硬盘容量,而以inode的数量来显示
- -l:只显示本机的文件系统
经常使用有
$ df -lh
$ df -h
du命令
作用:使用du命令查看指定目录的使用情况。du命令来查看硬盘内部的目录或者文件的信息。
命令格式:
du [option] 文件/目录
选项:
- -h 输出文件系统分区使用的情况,例如:10KB,10MB,10GB等
- -s 显示文件或整个目录的大小,默认单位是KB
# 当前目录下硬盘使用大小
du -sh
# 当前目录下子目录的大小
du -sh *
# 指定目录的大小
du -sh /xxx
# 指定目录下子目录大小
du -sh /xxx/*
总结:
du -sh xxx 显示总目录的大小,但是不会列出目录中的每一个文件
du -sh xxx/* 列出xxx下每个目录和文件所占的容量