Linux常用命令(三)
压缩和解压类
gzip / gunzip 压缩
命令 | 描述 |
---|---|
gzip [文件] | 压缩 [文件] 只能将文件压缩为*.gz文件 |
gunzip [文件.gz] | 解压缩文件命令 |
经验技巧
- 只能压缩文件,不能压缩目录
- 不保留原来的文件
- 同时多个文件会产生多个压缩包
zip / unzip 压缩
可以保留源文件
命令 | 描述 |
---|---|
zip -r [压缩的名字.zip] [路径] | -r 压缩目录 |
unzip -d [解压目录] [文件名.zip] | -d 指定目录 |
tar 打包
功能: 打包目录,压缩后的文件格式.ta
命令 | 描述 |
---|---|
-c | 产生打包文件 |
-v | 显示.tar打包信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar 文件 |
-c | 解压到指定的目录 |
常用命令组合
压缩
tar -zcvf temp.tar.gz initial-setup-ks.cfg info 公共/
-zcvf 是参数
temp.tar.gz 是打包后的名称
initial-setup-ks.cfg info 公共/ 打包的内容 或者是 目录
解压
tar -zxvf temp.tar.gz -C /temp
- -zxvf 是参数
- temp.tar.gz 是要解压的文件
- -C /temp 解压到的目录
磁盘查看和分区类
du 查看文件和目录占用的磁盘空间
du [目录或文件夹] 显示目录下每个子目录的磁盘使用情况
选项 | 描述 |
---|---|
-h | 以人们易懂的GBytes,MBytes,KBytes 等格式自行显示 |
-a | 不仅查看子目录大小,还要包括文件 |
-c | 显示所用文件和子目录大小后,显示总和 |
-s | 显示总和 |
–max-depth=n | 指定统计目录的深度为第 n 层 |
df 查看磁盘空间的可以使用情况
命令 | 描述 |
---|---|
df -h | 以人们易懂的GBytes,MBytes,KBytes 等格式自行显示 |
lsblk 查看设备挂载情况
命令 | 描述 |
---|---|
lsblk -f | 查看详细的系统挂载情况,显示文件系统信息 和UUID信息 |
lsblk -l | 查看当前磁盘信息 |
mount/umount 挂载/卸载
对于Linux用户来说,不论有几个分区,分别给哪一个目录使用,它总归就是一个根目录,一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它再用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
命令 | 描述 |
---|---|
mount [-t vfstype] [-o option] device dir | 挂载设备 |
unmount 设备文件名或挂载点 | 卸载设备 |
参数 | 功能 |
---|---|
-t vfstype | 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。 |
-o | loop:用来把一个文件当成硬盘分区挂接上系统; ro:采用只读方式挂接设备; rw:采用读写方式挂接设备; iocharset:指定访问文件系统所用字符集 |
- 挂载
- mount /dev/cdrom /dev/cdrom
- 卸载
- umount /dev/cdrom
常用的文件系统类型
描述 | 类型 |
---|---|
光盘或者镜像光盘 | iso9660 |
DOS fat16 文件系统 | msdos |
Windows 9x fat32 文件系统 | vfat |
Windows NT ntfs 文件系统 | ntfs |
Mount Windows 文件网络共享 | smbfs |
UNIX(Linux) 文件网络共享 | nfs |
设置自动开机挂载
/etc/fstab
配置启动挂载
fdisk 分区
命令 | 描述 |
---|---|
fdisk -l | 查看磁盘分区 |
经验技巧
该命令只能在 root 用户下使用
插入硬盘需要重启才可以看到硬盘
fdisk /dev/sdb
=> m
=> n
=> p
=> 默认直接 Enter
=> 默认直接 Enter
流程截图
到了这一步系统还是无法认识它的,所以我们继续 对硬盘进行 格式化
格式化用到了 mkfs 这个命令
直接执行 mkfs -t xfs /dev/sdb1
在设置挂载点 mount /dev/sdb1 /home/jgckm
如果想要卸载 umount /home/jgckm
进程管理类
ps 查看当前系统进程状态
命令 | 描述 |
---|---|
a | 列出带有终端的所有用户进程 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
u | 面相用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个应用关联的所有进程 |
-f | 显示完整格式的进程列表 |
经常用到的命令
ps aux | less
查看系统中所有进程
选项 | 描述 |
---|---|
USER | 该进程是哪个用户产生的 |
PID | 进程的ID |
%CPU | 该进程占用%CPU的百分比,占用越高,进程就越耗费资源 |
%MEM | 该进程占用物理内存的百分比,占用越高,进程就月耗费资源 |
VSZ | 该进程占用物理内存的大小,单位KB |
RSS | 该进程占用实际物理内存的大小,单位KB |
TTY | 该进程是哪个终端中运行的,对于 CnetOS 来说,ttyl 是图形化终端 |
tty2-tty6 | 是本地的字符界面终端,pts/0-255代表虚拟终端 |
STAT | 进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示 |
STATRT | 该进程的启动时间 |
TIME | 该进程占用CPU的运算时间,注意不是系统时间 |
COMMAND | 产生此进程的命令名 |
ps -rf
可以查看 子父进程之间的关系
这里基本上是和 ps aux | less
一样
选项 | 描述 |
---|---|
PPID | 父进程的PID (就是有谁来启动的) |
经验技巧
如果想查看进程的 CPU 占用率和内存使用率,可以使用 aux
如果想看进程的父进程 ID 可以使用 ef
kill 终止进程
命令 | 描述 |
---|---|
kill [选项] [进程号] | 通过进程号杀死进程 |
killall [进程号] | 通过进程名杀死进程,也支持通配符,这在系统引负载过大而变得很慢的时候很有用 |
kill -9 [进程号] | 强迫进程立即关闭 |
- [进程号] 这里指的是 PID
pstree 查看进程树
命令 | 描述 |
---|---|
pstree -p | 显示PID |
pstree -u | 显示进程的所属用户 |
top 实时监控系统进程状态
命令 | 描述 |
---|---|
top | |
top -d [秒数] | 指定 top 命令每隔几秒更新。默认是 3 秒 在 top 命令的交互模式当中可以执行的命令: |
top -i | 使用 top 不显示闲置或者僵死的命令 |
top -p | 通过指定监控进程 ID 来仅仅监控某个进程的状态 |
操作
操作 | 功能 |
---|---|
P | 以 CPU 使用率来排序,默认就是此项 |
M | 已内存的使用率来排序 |
N | 以 PID 排序 |
q | 退出 |
netstat 显示网络状态和端口占用信息
命令 | 功能 |
---|---|
netstat -anp | grep [进程号] | 查看该进程网络信息 |
netstat -nlp | grep [端口号] | 查看网络端口号占用情况 |
选项 | 功能 |
---|---|
-a | 显示正在监听 (listen) 和为监听的套接字 (socket) |
-n | 拒绝显示别名,能显示数字的全部转化为数字 |
-l | 列出在监听服务的状态 |
-p | 表示显示哪个进程在调用 |
crontab 系统定时任务
crontab 服务管理
重启 crond 服务
命令 | 描述 |
---|---|
systemctl restart crond | 重启 crond 服务 |
crontab 定时任务设置
命令 | 描述 |
---|---|
crontab -e | 编辑crontab 定时任务 |
-l | 查询 crontab 任务 |
-r | 删除当前用户所有 crontab 任务 |
crontab -e 输入命令之后会 会进入 crontab 编辑页面
* * * * *
执行的任务 (分,时,日,月,周)
项目 | 含义 | 范围 |
---|---|---|
第一个 * |
一小时当中的第几分钟 | 0-59 |
第二个 * |
一天当中的第几个小时 | 0-23 |
第三个 * |
一个月当中的第几天 | 1-31 |
第四个 * |
一年当中的第几个月 | 1-12 |
第五个 * |
一周当中的第几天 | 0-7(0和7都代表星期日) |
特殊符号 | 含义 |
---|---|
* |
表示在任何时间。比如第一个 * 就代表一小时中每分钟都执行一次的意思 |
, |
代表不连续的时间。比如 “0 8,12,6 * * *” 就代表在每天的 8点0分,12点0分,6点0分都执行一次 |
- |
代表连续的世间范围。比如 “0 5 * * 1-6” 代表周一到周六的凌晨5点0分执行命令 |
*/n |
代表每隔多久执行一次。比如 “*/10 * * * * “ 代表每隔10分钟就执行一遍命令 |
列子
时间 | 含义 |
---|---|
45 22 * * * |
每天 22点45分 执行命令 |
0 17 * * 1 |
每周一的 17点0分 执行命令 |
0 5 1,15 * * |
每月的 1号 和 15号 凌晨 5点 执行命令 |
40 4 * * 1-5 |
每周一到周五的 4点40分 执行命令 |
*/10 4 * * * |
每天的 4点 每隔 10分钟 执行一次命令 |
0 0 1,15 * 1 |
每个月的 1号和15号 每周一的 0点0分 会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱 |
软件包管理
RPM
RPM (RedHat Package Manager) RedHat 软件包管理工具,类似 Windows 里面的 setup.exe 是 Linux 这系列操作系统里面的打包安装工具,他虽然是 RedHat 的标志,但是概念是通用的。
RPM 包的名称格式
Apache-1.3.12-11.i386.rpm
- “apache” 软件的名称
- “1.3.12-11” 软件的版本号,主版本和此版本
- “i386” 是软件所运行的硬件平台,Intel32 位处理器统称
- “rpm” 文件扩展名,代表 RPM包
RPM 查询命令
命令 | 描述 |
---|---|
rpm -qa | 查询安装过的 RPM 包 |
rpm -qi [包名] | 显示 [包名] 的详情信息 |
通常会使用管道进行过滤 rpm -qa | grep git
RPM 卸载命令
命令 | 描述 |
---|---|
rpm -e [包名] | 卸载 [包名] |
rpm –nodeps | 卸载软件时,不检查依赖。这样的话,那些使用该软件的包的软件在次之后可能就不能正常工作了 |
RPM 安装命令
命令 | 描述 |
---|---|
rpm -i | install 安装 |
-v | –verbose,显示详情信息 |
-h | –hash,进度条 |
–nodeps | 安装前不检查依赖 |
经常使用 rpm -ivh [包名]
进行安装
YUM 仓库配置
YUM (Yellow dog Updater, Modifed) 是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理器,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖关系
,并且一次安装所有依赖的软件包,无需繁琐的一次下载、安装。
命令 | 描述 |
---|---|
yum [选项] [参数] | 安装 |
选项 | 功能 |
---|---|
-y | 对所有提问都回答yes |
参数 | 功能 |
---|---|
install [包名] | 安装包名 |
update [包名] | 更新包名 |
check-update | 检测是否有可用的跟心 RPM 软件包 |
remove [包名] | 删除[包名] |
list [包名] (也可以使用管道) | 显示 [包名软件信心] |
clean | 清除 yum 过期的缓存 |
deplist | 显示 yum 软件包的所有依赖关系 |
修改网络 YUM 源
因为每次下载 都会自动查找最近的镜像源 所以一 已经没必要更改镜像源的必要了
安装 wget,wget 用来从指定的 URL 下载文件
yum -y install wget
1
2
3
4
5
6
7
2. 在 `/etc/yum.repos.d/` 目录下,备份默认的 repos 文件
1. ```
cd /etc/yum.repos.d/
cp CentOS-Base.repo CentOS-Base.repo.backup
直接去 阿里