Linux指令学习记录笔记

Linux入门命令

1,创建一个目录
mkdir myqxin   	// 创建一个名为myqxin的目录
2,创建一个空白文件
touch myqxin.txt	// 创建一个名为myqxin的txt文件
3,路径的选择
cd /home/myqxin/	// 指定进入/home/myqxin目录下
cd ..	// 返回上一级目录
cd -	// 返回上一次进入的目录位置
cd ~	// 返回家目录
4,删除一个文件
rm myqxin.txt	// 删除名为myqxin的txt文件
5,删除一个目录
rmdir myqxin	// 删除名为myqxin的目录(目录下没有文件)
rm -d myqxin	// 删除名为myqxin的目录(目录下没有文件)
rm -rf myqxin   // 删除名为myqxin的目录包含目录下的所有文件
6,复制目录和文件
# -r 参数是复制目录,复制文件不需要加-r
cp -r myqxin zfwy	// 复制myqxin目录为zfwy
cp myqxin.txt zfwy.txt	// 复制myqxin.txt文件为zfwy.txt
7,移动目录和文件或重命名
mv myqxin test		// 移动myqxin目录到test目录,将当前目录移动到当前目录,就相当于重新命令
mv myqxin.txt zfwy.txt		// 移动myqxin.txt文件到zfwy.txt文件,将当前目录文件移动到当前目录文件,就相当于重新命令
8,查看文件全部内容
cat /home/myqxin.txt	// 查看/home目录下的myqxin.txt文件内容
cat -n /home/myqxin.txt		// 查看/home目录下的myqxin.txt文件内容,并标注了行号
9,查看文件局部内容
head /home/myqxin.txt		// 查看/home目录下的myqxin.txt文件,head默认展示前十行内容
head -n 22	/home/myqxin.txt		// 查看/home目录下的myqxin.txt文件前22行内容,-n 用来指定显示多少行内容
tail /home/myqxin.txt		// 查看/home目录下的myqxin.txt文件,head默认展示后十行内容
tail -n 22	/home/myqxin.txt		// 查看/home目录下的myqxin.txt文件后22行内容,-n 用来指定显示多少行内容
tail -f /home/myqxin.txt	// 查看/home目录下的myqxin.txt文件后10行内容,-f 参数会实时更新,动态查看
10,使用vi编辑文件内容
vi myqxin.txt	// 打开myqxin.txt文件,按a或者i进入编辑状态
# 退出编辑状态,按Esc,然后输入
:q(退出不保存本次编辑内容)
:wq(退出并保存本次编辑内容)
:q!(强制退出不保存本次编辑内容)
:wq!(强制保存并退出本次编辑内容)
11,查找文件
# find 搜索范围 选项 目标文件
find /etc/ -name myqxin.txt		// 查找/etc/目录下的名为myqxin.txt文件
# find 目录 -user 指定用户名
find /etc -user root
# find 目录 -size 文件大小
find /etc -size 1M
# -name、-user、-size组合使用
find /etc/ -name myqxin.txt -size 1M	// 查找/etc/目录下的名为myqxin.txt文件并且文件大小为1M
12,创建一个快捷方式
# ln -s 源文件或目录 软连接名
ln -s /usr /home/myqxin/myusr	// 在/home/myqxin/目录下创建一个软连接myusr连接到/usr目录
# 创建软连接,如果源文件或目录被删掉,快捷方式无法使用
-s 创建软连接必须加上(目录必须加,如果是文件不加-s参数就相当于复制并不能称为软连接)
13,压缩一个文件
# gzip只能将文件压缩成*.gz格式
gzip myqxin.txt	// 将myqxin.txt文件压缩成myqxin.txt.gz压缩文件

tar -zcvf myqxin.tar myqxin.txt		// 将myqxin.txt文件压缩成myqxin.tar压缩文件
tar -zcvf myqxin.tar.gz myqxin.txt		// 将myqxin.txt文件压缩成myqxin.tar.gz压缩文件
14,解压一个文件
gunzip myqxin.txt.gz	// 将myqxin.txt.gz文件解压成myqxin.txt文件

tar -zxvf myqx.tar		// 将myqxin.tar文件进行解压
tar -zxvf myqxin.tar.gz		// 将myqxin.tar.gz文件进行解压
15,提升效率技巧
# table键:补全命令和补全文件的功能
table
# history:查看已经执行过的命令
history
# 上下键:返回上一次距离最近命令(通常是先进行了上键,才能配合下键使用)
↑ ↓

Linux进阶命令

1,新增用户
# useradd 用户名
# sudo 临时获取管理员权限,如果是root用户来创建用户就不需要加这个
sudo useradd myqxin		// 新增一个名为myqxin的用户,并且会在/home/目录下生成一个跟用户名相同的目录(默认是在/home/下生成)
sudo useradd myqxin -d /home/zfwy/myqxin		// 新增一个名为myqxin的用户,并且会在/home/zfwy/目录下生成一个跟用户名相同的目录
2,给用户设置密码
# sudo 临时获取管理员权限,如果是root用户来设置用户密码就不需要加这个
sudo passwd myqxin		// 为myqxin用户设置密码(如果passwd后面不指定用户,默认会为当前登录用户设置密码)

然后系统会提示你设置密码,然后确认密码,成功后提示:

passwd: all authentication tokens updated successfully.
3,切换用户
su - myqxin		// 切换到myqxin用户(如果提示输入密码,输入即可)
# 查看当前登录的用户
whoami
# 退出当前用户
exit
4,删除用户
# -r 表示在删除用户的同时删除用户的家目录
sudo userdel -r myqxin		// 删除用户名为myqxin并且删除它的目录
sudo userdel myqxin		// 删除用户名为myqxin,不删除它的目录

用户基本信息:存储在 /etc/passwd 文件中
用户密码信息:存储在 /etc/shadow 文件中
用户群组基本信息:存储在 /etc/group 文件中
用户群组信息信息:存储在 /etc/gshadow 文件中
主目录默认位于 /home/用户名

5,显示用户UID和GID
# id 不指定用户名,会显示当前登录用户的信息
id root		// 查看root用户的UID和GID
#能看到uid(用户ID)、gid(初始组ID), groups是用户所在组,这里既可以看到初始组,如果有附加组,则也能看到附加组
uid=0(root) gid=0(root) groups=0(root)
6,新增用户组
sudo groupadd myqxin	// 新增用户组myqxin
# 查看用户组信息
cat /etc/group
7,删除用户组
sudo groupdel myqxin	// 删除用户组myqxin
8,将用户加入或移出用户组
# -a 将用户加入到用户组中
sudo gpasswd -a myqxin zfwy		// 将用户myqxin加入到zfwy用户组
# -d 将用户从用户组中移出
sudo gpasswd -d myqxin zfwy		// 将用户myqxin从zfwy用户组移出
9,文件权限基本介绍
# 查看文件权限
ls -l
drwxr-xr-x 2 csdn csdn 4096 83  2021 Code

在这里插入图片描述
文件类型和权限那一块,除了第一个参数标注为文件类型,后面都是三个参数为一组(不含链接数及后面的内容)
如:rwx为一组、r-x为一组,r-x为一组

在这里插入图片描述

10,修改文件权限
# chomd 修改权限,加三个参数,每个参数最高为7,最低为1
chmod 777 myqxin	// 将myqxin目录设置为最高级别权限(拥有者,所属用户组,其他用户都是顶级)
# 读取权限用数字4表示,写权限用数字2表示,执行权限用数字1表示
r=4 w=2 x=1
# 给读写执行权限
rwx=4+2+1=7
# 给读写权限
rw=4+2=6
# 给读执行权限
rx=4+1=5
# 给写执行权限
wx=2+1=3


#思路:drwxr-xr-x 2 csdn csdn 4096 8月   3  2021 Code
#1.所有者权限不变。数值相加为7
#2.组权限不变。数值相加为5
#3.其它所有者权限要变更,数值相加为5
#4,前面说过文件类型和权限那一块,三个参数为一组,每一组相加最高为7,所有说我们最高的权限为777  rwxrwxrwx
结果:755

演示效果:这只是改拥有者权限,所属用户组及其他用户权限不予修改

在这里插入图片描述

11,修改文件所有者
# chown 用户名 目录或文件名
sudo chown myqxin /home/myqxin.txt		// 修改myqxin.txt文件所有者为myqxin
sudo chown -R myqxin /home/myqxin		// 修改myqxin目录及该目录下所有文件的所有者为myqxin(仅修改目录不需要加-R)
12,修改文件所属用户组
# chgrp 用户名 目录或文件名
sudo chgrp myqxin /home/myqxin.txt		// 修改myqxin.txt文件所属用户组为myqxin
sudo chgrp -R myqxin /home/myqxin		// 修改myqxin目录及该目录下所有文件的所属用户组为myqxin(仅修改目录不需要加-R)
13,查看系统中的所有进程
# aux参数的含义  
# a 显示现行终端机下的所有程序,包括其他用户的程序
# u 以用户为主的格式来显示程序状况
# x 显示所有程序,不以终端机来区分
ps aux
USER   PID %CPU %MEM  VSZ   RSS   TTY   STAT START  TIME COMMAND
csdn    1  0.0  0.1  40352  5040 pts/0  Ss+  22:09  0:00 /bin/zsh
标识 含义
USER 该进程是由哪个用户产生的
PID 进程的ID
%CPU 该进程占用CPU资源的百分比,占用的百分比越高。进程越耗费资源
-%MEM- 该进程占用物理内存的百分比。占用的百分比越高。进程越耗费资源
VSZ 该进程占用虚拟内存的大小,单位为KB
RSS 该进程占用实际物理内存的大小,单位为KB
TTY 该进程是在哪个终端运行的。其中,tty1~tty7代表本地控制台终端(可以通过alt+F1 ~ F7快捷键切换不同的终端)。tty1tty6是本地的字符界面终端,tty7是图形终端。pts/0255代表虚拟终端,一般是远程连接的终端。第一个远程连接占用pts/0,第二个远程连接占用pts/1,依次增长
STAT 进程状态
START 该进程的启动时间
TIME 该进程占用CPU的运算时间,注意不是系统时间
COMMAND 产生此进程的命令名
14,实时监控程序运行
# 默认每隔3秒刷新一次
top

# ? 或 h:显示交互模式的帮助
# P:按照 CPU 的使用率排序,默认就是此选项
# M:按照内存的使用率排序
# N:按照 PID 排序
# T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序
# k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号
# r:按照 PID 给某个进程重设优先级(Nice)值
# q:退出 top 命令

在这里插入图片描述

红框部分:显示的是整个系统的资源使用状况,我们就是通过这项输出来判断服务器的资源使用状态的
黄框部分:显示的是系统中进程的信息

在这里插入图片描述

第一行为任务队列信息:

内容 说明
16:51:31 系统当前时间
up 9 min 系统的运行时间,本机已经运行9分钟
0 users 当前登录了0个用户
load average:0.08,0.04,0.00 系统在之前1分钟、5分钟、15分钟的平均负载

第二行为进程信息:

内容 说明
Tasks: 4 total 系统中的进程总数
1 running 正在运行的进程数
3 sleeping 睡眠的进程数
0 stopped 正在停止的进程数
0 zombie 僵尸进程数。如果不是0,则需要手工检查僵尸进程

第三行为CPU信息:

内容 说明
%Cpu(s): 0.5 us 用户模式占用的CPU百分比
0.5 sy 系统模式占用的CPU百分比
0.0 ni 改变过优先级的用户进程占用的CPU百分比
99.0 id 空闲CPU占用的CPU百分比
0.0 wa 等待输入/输出的进程占用的CPU百分比
0.0 hi 硬中断请求服务占用的CPU百分比
0.0 si 软中断请求服务占用的CPU百分比
0.0 st st(steal time)意为虚拟时间百分比

第四行为物理内存信息:

内容 说明
Mem : 4301840 total 物理内存的总量,单位为KB
4054420 free 已经使用的物理内存数量
119156 user 空闲的物理内存数量。我们使用的是虚拟机,总共分配了628MB内存,所以只有119MB的空闲内存
128264 buff/cache 作为缓冲的内存数量

第五行为交互分区(swap)信息:

内容 说明
Swap: 0 total 交换分区(虚拟内存)的总大小
0 free 已经使用的交换分区的大小
0 user 空闲交换分区的大小
4115616 avail Mem 作为缓存的交换分区的大小

第六行为系统进程资源具体使用情况(默认按照CPU的占用量排序):

内容 说明
PID 进程ID,我们杀掉某个进程就可以使用kill -9 PID
USER 进程所有者的用户名
PR 优先级
NI nice值(负值表示高优先级,正值表示低优先级)
VIRT 进程使用的虚拟内存总量(KB)
RES 进程使用的未被换出的物理内存大小(KB)
SHR 共享内存大小(KB)
S 进程状态
%CPU 进程上次更新到现在的CPU时间占用百分比
%MEM 物理内存占比
TIME+ 进程使用的CPU时间总计(单位1/100秒)
COMMAND 命令名
15,定时任务
# 1,编辑 crontab 文件
sudo crontab -e
# 2,写入执行命令并保存
*/1 * * * * /bin/echo "myqxin" >> /home/myqxin/test.txt	// 向/home/myqxin/目录下的test.txt文件每隔一分钟写入myqxin内容
# 3,使用tail命令验证
tail -f /home/myqxin/test.txt

查看任务列表

crontab -l

查看任务状态

crontab status

Linux实用命令

1,grep命令
  • 使用grep来查找文本内容:
# 查找文件myqxin.txt中含有"hello"字符串的行
grep hell myqxin.txt
# 查找文件myqxin.txt中没有"hello"字符串的行
grep -v hello myqxin.txt
# 查找文件myqxin.txt中含有“hello”字符串的行以及它前面的3行
grep -v hello -B 3 myqxin.txt
# 查找文件myqxin.txt中含有“hello”字符串的行以及它后面的3行
grep -v hello -A 3 myqxin.txt
# 查找文件myqxin.txt中含有“hello”字符串的行以及它前后的3行
grep -v hello -C 3 myqxin.txt
2,awk命令
  • 使用awk来过滤文本:

awk ‘BEGIN{ commands } pattern{ commands } END { commands }’ file’

BEGIN{ commands } 指定最开始执行的脚本
pattern{ commands } 对文件的每一行遍历,判断是否满足pattern的模式,如果满足则执行脚本
END{ commands } 指定最后执行的脚本

# 打印“开始”,打印每行,打印“结束”
awk 'BEGIN{ print "开始" }{ print } END { print "结束" }' myqxin.txt
# 打印每行的行号
awk '{print NR}' myqxin.txt
# 打印每行的文本
awk '{print $0}' myqxin.txt
# 打印每行的第一列(默认用空格分隔)
awk '{print $1}' myqxin.txt
# 打印每行的最后一列(默认用空格分隔)
awk '{print $NF}' myqxin.txt
# 打印每行的倒数第二列(默认用空格分隔)
awk '{print $(NF-1)}' myqxin.txt
# 打印每行,并为每行带上行号
awk '{print NR":",$0}' myqxin.txt
3,sed命令
  • 使用sed命令来替换或删除文本行
# 查找并替换每行第一个“hello”为“你好”
sed 's/hello/你好/' myqxin.txt 
# 查找并替换每行中所有的“hello”为“你好”
sed 's/hello/你好/g' myqxin.txt
# 删除含有“hello”的行
sed '/hello/d' myqxin.txt
# 删除第二行
sed '2d' myqxin.txt
# 删除第三行到第五行
sed '3,5d' myqxin.txt
4,losf命令
  • 使用losf命令可以用来查看“文件打开的进程”、“进程打开的文件、“进程打开的TCP或者UDP端口”,“占用了某个TCP或者UDP端口的进程”等。最常用如下:

-a: 列出打开文件存在的进程
-c<进程名>:列出指定进程所打开的文件
-d<文件号>:列出占用该文件号的进程
-p<进程号>:列出指定进程号所打开的文件
-i<条件>:列出符合条件的进程(协议、端口、@IP)

# 查看那个进程占用了8888端口
lsof -i:8888
# 列出进程10532所打开的文件
lsof -p 10532
# 监听tcp链接进程信息
lsof -i tcp
# 查看占用了tcp端口9999的进程
lsof -i tcp:9999
5,df和du命令
  • 使用df和du配合用来查看空间占用情况

df 命令用来查看磁盘的空间占用情况,其中选择-h表示以K,M,G为单位,提高信息的可读性
du 命令用来查看目录的空间占用情况,默认会统计到所有子目录,其中选择-h表示以K,M,G为单位,提高信息的可读性,其中选项-s表示只显示统计汇总信息

# 查看系统磁盘的空间占用情况
df -h
# 查看指定目录系统磁盘的空间占用情况
df -h /home/
# 查看指定目录的空间占用情况
du /home/ -h
# 查看指定目录的空间占用情况,只显示汇总信息
du /home/ -sh
# 查询指定目录下的直接子目录空间占用情况,只显示汇总信息
du /var/*/ -sh
6,tcpdump命令
7,netstat命令
8,cURL和wget命令
9,管道

LInux常用命令

1,查看占用内存最大的目录
du -h -x --max-depth=1
2,查询指定端口进程
netstat -lnp|grep 80

猜你喜欢

转载自blog.csdn.net/qq_45752401/article/details/125637731
今日推荐