Linux
1 基础命令
文件权限
三个属主
u 该文件的所有者
g 所有者的同组用户
o 其他用户
每个用户有读 写 执行三个权限
- r:4
- w:2
- x:1
chmod 改变权限
第一种方式变更权限
chmod [{ugoa}{±=}{rwx}] 文件或目录
第二种方式变更权限
chmod [mode=421 ] [文件或目录]
# 修改文件使其所属主用户具有执行权限
chmod u+x 文件路径
# 赋予rwx 4+2+1=7 所有访问者 这是数字的方式
chmod 777 文件
# 修改整个文件夹的权限
chmod -R 777 文件夹路径/
chown 改变所有者
chgrp 改变所属组
chown [选项 -R] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
chown 新主 文件路径
用户管理命令
# 添加新用户
useradd 用户
useradd -d 组名 用户名
# 删除
userdel
# 设置用户密码
passwd 用户名
# 查看用户
id
id 用户名
搜索查找命令
find 查找文件/目录
find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件。 |
# 该文件夹下的txt 文件
find /文件夹 -name *.txt
find /文件夹 -user tao
#+n大于 -n小于
find /文件夹 -size +204800# KB即 200M
grep 过滤查找及“|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
grep 选项-n 查找内容 源文件
-n 显示匹配行及行号
# 查找某文件在第几行
[tao@hadoop100 桌面]$ ls | grep -n demo
1:demo.txt
进程线程
**进程 **是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
ps 查看当前系统进程状态
process status
ps aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
选项 | 功能 |
---|---|
-a | 选择所有进程 |
-u | 显示所有用户的所有进程 |
-x | 显示没有终端的进程 |
如果想查看进程的CPU占用率和内存占用率,可以使用aux;
如果想查看进程的父进程ID可以使用ef;
ps aux
所有进程按照这个格式展示
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
ps -ef
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
kill 终止进程
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
-9 表示强迫进程立即停止
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
pstree 查看进程树
pstree [选项]
-p | 显示进程的PID |
---|---|
-u | 显示进程的所属用户 |
top 查看系统健康状态
top [选项]
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令: |
-i | 使top不显示任何闲置或者僵死进程。 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态。 |
netstat 显示网络统计信息和端口占用情况
netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)
netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
-n | 拒绝显示别名,能显示数字的全部转化成数字 |
---|---|
-l | 仅列出有在listen(监听)的服务状态 |
-p | 表示显示哪个进程在调用 |
可以通过这个命令 看看端口是否被占用
crond 系统定时任务
# 重新启动crond 服务
service crond restart
crontab [选项]
注意是crontab
-e | 编辑crontab定时任务 |
---|---|
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
[root@localhost~]# vim /etc/crontab
# 定时任务,支持bash命令
SHELL=/bin/bash
# 定时任务只支持直接写一下目录中的命令 ##(建议:定时任务中的命令全部使用绝对路径)
PATH=/sbin:/bin:/usr/sbin:/usr/bin ## (建议:定时任务能不用命令就不用,最好使用脚本)
# 定时任务执行的内容,如果有输出,或者有报错,则通过邮件发给root用户
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
### 切记:定时任务最小单位分钟,无法精确到秒级
特殊符号 | 含义 |
---|---|
* | 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
, | 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 也就是,号隔开一个层级的不连续时间 |
- | 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令 |
每隔1分钟,向/root/bailongma.txt文件中添加一个11的数字
*/1 * * * * /bin/echo ”11” >> /root/bailongma.txt
解压缩
gzip/gunzip 压缩
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
- 只能压缩文件不能压缩目录
- 不保留原来的文件
zip/unzip 压缩
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
-r 压缩目录
unzip [选项] XXX.zip (功能描述:解压缩文件)
-d 指定解压后文件的存放目录
zip 压缩命令在window/linux都通用,可以压缩目录且保留源文件
## 可以看出 这里是另存为一个package
[tao@hadoop100 桌面]$ zip package.zip demo.txt demo2.txt
adding: demo.txt (stored 0%)
adding: demo2.txt (stored 0%)
[tao@hadoop100 桌面]$ ls
demo2.txt demo.txt package.zip
unzip package.zip -d /opt
tar 打包
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
## 压缩多个文件
tar -zcvf mypackage.tar.gz 1.txt 2.txt
## 压缩目录
tar -zcvf xiyou.tar.gz xiyou/
# 解压到当前目录
tar -zxvf package.tar.gz
tar -zxvf package.tar.gz -C 指定路径
磁盘分区
Linux分区
Device:分区序列
Boot:引导
Start:从X磁柱开始
End:到Y磁柱结束
Blocks:容量
Id:分区类型ID
System:分区类型
df disk free 查看磁盘空间使用情况
列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况
-h 容量 GB MB KB
df -h
fdisk 查看磁盘分区详情
(需要root用户才可以使用)
-l 显示所有硬盘的分区列表
mount/umount 挂载/卸载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得
软件包管理
rpm
yum
yum [选项] [参数]
选项 | 功能 |
---|---|
-y | 对所有提问都回答“yes” |
参数 | 功能 |
---|---|
install | 安装rpm软件包 |
update | 更新rpm软件包 |
check-update | 检查是否有可用的更新rpm软件包 |
remove | 删除指定的rpm软件包 |
list | 显示软件包信息 |
clean | 清理yum过期的缓存 |
deplist | 显示yum软件包的所有依赖关系 |
时间日期命令
[tao@hadoop100 ~]$ date '+%Y+%m+%d %H:%M:%S' 只要是% 随便什么格式都可以解析
2023+05+27 21:03:21
## 真的神奇
[tao@hadoop100 ~]$ date -d '1 days ago'
2023年 05月 26日 星期五 21:04:29 CST
常见问题
- Linux常用命令
find、df、tar、ps、top、netstat等。(尽量说一些高级命令)
- Linux查看内存、磁盘存储、io 读写、端口占用、进程等命令
1、查看内存:top
2、查看磁盘存储情况:df -h
3、查看磁盘IO读写情况:iotop(需要安装一下:yum install iotop)、iotop -o(直接查看输出比较高的磁盘读写程序)
4、查看端口占用情况:netstat -tunlp | grep 端口号
5、查看进程:ps aux