ip a / ifconfig:查看IP地址
tree:查看当前目录的树状分层结构图
cd .. //回到上一级目录
cd - //返回上一步
. :表示当前位置
.. :表示上一级目录
修改日期:月日时分年点秒
date -d "+2 day" +%d:显示两天以后的日期
ls -la=ls -l -a=ll -a
ls -l:以长格式列举
ls -l -a:以长格式全部列举
查看目录属性:ll -d
文件类型:【 - 普通文本文件(txt)
d目录文件(文件夹)
l (软链接文件)(快捷方式)】例如bin -> usr/bin
b(块设备文件)
c (字符设备文件)
p(管道符)
s(socket套接字文件)
ls -i:查找inode(每个文件不一样)查找文件
ls -R:递归查找(每个目录逐级显示)
创建硬链接:ln 源文件 链接的文件名 ln /root/file2 /root/hhhh
软连接:ln -s 源文件 快捷方式文件名 不在同一路径:ln -s /root/file2 /hhh
创建文本文件:touch 文本文件名.....(多个用空格分开)
touch {1..5}或者{a,b,c}或者abc{1..5}或者/{a,b,c}
创建目录文件:mkdir 目录文件名.....(多个用空格分开)
创建多级目录:mkdir -pv /1/2/3/4/5(v表示逐级列举出来,不加也可以 ,p表示创建多级目录)
删除文本文件:rm 文本文件名
删除目录文件:rm -rf 删除目录文件(f是强制删除,可以不加)(r表示删除目录文件)
查看文本文件内容:cat 文本文件名
编辑文件内容:echo 文件内容 >> 文件名
表示任意长度的任意字符的通配符:” * “ (rm -rf /*)删除根目录的所有文件
该目录下所有文件占用的空间大小:du -sh(h显示大小k.m.g)
输出重定向符:>(会覆盖原来有的内容) (命令写错了里面的东西也没有了)
追加输出重定符:>>(不覆盖原来有的内容)
输入重定向符:<
指定输入终止结束符:<<
设置终止结束符:cat << 字符 >>file(打完了之后输入字符进入file后打印退出)
命令 > /dev/null:不输出,也不存,去黑洞里面,相当于回收站
管道符 |:把两个命令连起来,上一个命令的结果给第二个命令然后放在文件里面。
使用: 命令 | 命令
tee命令:同时在屏幕和文件里面输出
vi/vim:文件编辑器(没有文件会自己建文件)
:.!加命令:在末行模式下把文件传到vim里面
q!:强制退出
w : 保存
d:删除两行(光标为参考)
dd:删除一行(光标为参考)
dG:删除所有(光标为参考)
dgg:删除文档的所有内容
数字dd:删除包括光标那一行的四行(4dd)
x:向右删除(光标所在)
(数字)yy:复制(向下复制数字行)
(数字)cc:剪切
(数字)p: 粘贴 粘贴到光标的下一行
u/ctrl+r:撤销动作/往后撤回
d^:删除当前位置到行首的所有
d$:删除当前位置到行尾的所有
Shift+^:跳转到行首
Shift+$:跳转到行尾
行号gg:跳转到指定行
GG跳到文档尾的行首
gg:跳到文档首的行首
命令模式进入插入模式:
a:光标后
A:光标行尾
i:光标前
I:光标的行首
s:替换光标所在字符
S:替换光标所在行
o:在光标的下一行添加空白行
O:在光标的上一行添加空白行
set nu:设置行号
:行号:定位到那一行
set nonu:取消行号
:g/关键词/d:删除有关键词的所有行
:/要找的字符:查找字符
:s /替换的关键字/替换的内容/g(g:替换一行所有的匹配的内容)
:%s /替换的关键字/替换的内容/g 或者d (替换每一行的所有)d是删除
:n1,n2 s/old/new/g:在行号“n1,n2”范围内替换所有的字符串“old”为“new”
:w /地址/名字 :另存到地址
hostname A 临时:改用户名(临时的)
vim /etc/hostname 永久改用户名(重启生效)
bash:刷新
cat -a 文件名:内容标注行号(空白行不标)
tac 文件名:把文件内容倒叙
More -行数 文件名:可翻页的几行一页的查看内容
head -5 /文件路径:显示前5行内容
tail -5:显示后5行
tail -f /var/log/messages(日志文件):实时监控文件的更新
grep '关键字' /文件路径:把有关键字的行显示出来
grep -i '关键字' /路径:忽略大小写
grep [123456] /路径:包含123456其中一个的所有字符
grep -w [1-9] /路径:包含其中字符的行 (w是精确检索,只检索单个数)
grep -n [^56789] 文件:反向选择除了包含56789的所有行
grep^q:匹配以q开头的行
grep -v:列出没有关键词的行
grep -n '^$' 文件:过滤出空白行
Cut -d ' 分隔符' -f列数 文件:裁剪出第几列的所有
sort -nr 文件:数字倒叙
Tr - 参数 旧的 新的要替换的(必须和管道符一起用)
uniq:去重复行(sort file | uniq)先排序让重复行相邻
uniq -c:去重并统计次数
wc -l : 统计行数
cp 源文件 目标文件名或者目标路径:复制文本文件
cp 源文件 /路径 : 源文件名为文件名
cp -r : 递归复制目录及其子目录内的所有内容
cp -rp/-a :复制的和源文件的属性一样
cp -f:在覆盖已经存在的目标文件时不提示
mv 源文件 文件名 : 改名
mv 源文件 目标文件或者目标路径:移动文本文件
which 命令:查找命令文件存不存在(搜索可执行的文件)
whereis 文件:查找命令文件在哪
Find /路径 -模糊参数 具体条件(名字,时间)
Find /路径 -name 文件名:按名字查找文件
find /路径 -mtime +/- n 文件名:按修改内容的时间查找文件
find /路径 -newer 文件名 :比文件名新的文件
find / -name a*:以a开头的所有
find / -iname a*:以a开头的所有不分大小写
find / -name ??c?:第三个字母为c的所有
find / -empty:找大小为0的文件
find / -not -user 'root':找所有不是root的文件
*可代替所有字母
?只能代替一个字母
find -mtime +10:找10天以前的
find ~ -user root -exec cp -a {} /media \; :用exec来把前面找到的文件进一步处理复制到media下,必须用\;结尾({}表示前面命令结果的总和)
zip 压缩后文件名 要压缩的文件:压缩文件(原文件还在)
zip -9 test2.zip test2.txt :1的压缩比率最小,9最大
zip -r:压缩目录
zip -m 已经压缩的目标文件 要添加的压缩文件:添加文件进压缩包
zip -d test1.zip test2.txt : 删除压缩文件中的文件
zip test.zip *.txt -x test1.txt :压缩所有的txt文件,-x排除test2
unzip test2.zip: 解压文件test2.zip
unzip test.zip -d dir1:将压缩文件text.zip在指定目录dir1下解压缩
unzip -v dir1:不解压查看内容
gzip test1.txt:使用gzip压缩文件
gzip -r dir1/:使用gzip压缩目录下文件(压缩之后原始文件就没有了。)
tar -zcvf 文件名.tar.gz 要压缩的文件:压缩(不删除源文件)
tar -zxvf 文件名.tar.gz 压缩到的目录:解压文件
tar -cvf 压缩后文件名.tar 要压缩的文件:打包文件
tar -xvf 要解压的文件名.tar (解压后的路径):解包文件
tar -tf 文件:看包里面有哪些文件
alias 别名=“真实命令”:临时创建别名
unalias 别名:删除别名
vim /etc/bashrc (在最后一行输入:alias 别名=真实命令):重启后永久保留别名(所有的用户)
Vim ~/.bashrc :改别名只在当前普通用户生效
useradd 用户名:添加用户
Passwd 用户名 :设密码
echo "111111" | passwd --stdin pzz > /dev/null :非交互式的设密码,中间过程没有了
userdel -r :彻底删除用户
用户账号文件: /etc/passwd
用户配置文件: lisi : x : 1002 : 1002 : : /home/lisi : /bin/bash
用户名:密码占位符:用户唯一id(UID):用户的默认组的唯一id(GID):描述信息,注释字段:家目录 :设置用户是交互式shell还是非交互式shell
usermod -s:更改用户信息
/bin/bash(可登陆)/sbin/nologin(不能登陆)
usermod -s /sbin/nologin 用户名:修改用户的shell为不可交互shell(不能登录了)
-l:改用户的登录名
-u:改用户的uid
-g:改用户的gid
-G: 指定附加组
-c : 改描述
-d:改家目录
-L : 锁定用户密码不能登陆
-U:解锁用
groupadd + 组名:添加组
-g : 指定新组的gid
tail /etc/group :查看组信息
用户名:组密码占位符:gid : 组成员列表
groupmod -U 用户名,用户名 组名:把用户添加进组
-n 新组名 旧组名 :改组名
-p 密码 组名:改密码
-g gid 组名:改组id
groupdel 组名:删除组(不能删除用户主组,通过删除用户删除主组)
chpasswd :批量改密码
1.cat pass.txt
2.在vim中输入每个用户名:密码
3.cat pass.txt | chpasswd
gpasswd 组 :改组密码
-r:删除密码
-a:添加用户到组
-M 用户,用户 组名:添加多个用户到组
-A:指派管理员
-R : 锁定组密码
-d 用户 组名:删除组成员
vim /etc/group:删除组列表删除成员
用户密码文件/etc/shadow
组密码文件:/etc/gshadow
d rwx r-x r-x. 2 root root 6 3月 5 11:22 dir2
u g o 用户 组
u:所属用户权限 g:组权限 o:其他人权限
chmod u=-,g=rw,o=w (ugo=rw)或(u+x)或(u-x)或(006,755) (a+x a表示所有的ugo都加了x)文件名:改文件的权限
Chmod +x :ugo都加x权限
Chmod -R 777 目录:递归的把目录里面文件都给777权限
chown +R 所属用户:所属组 文件名:递归改目录下所有文件的所属用户,所属组
仅主机 同网段的其他物理机<----->(自己的物理机------->虚拟机)
nat 上网<-----同网段的其他物理机<------>(自己的物理机<---->虚拟机)
桥接 上网<--同网段的其他物理机<----->自己的物理机<----->虚拟机(同一网段)--->上网
nmtui:网络管理器(可视化配置网卡)
nmcli connection show ens160 :查看网卡详细配置
nmcli device status :查看已有设备的连接状态
nmcli device show:查看网卡详细配置
nmcli connection up ens160 :激活网卡
nmcli connection down ens160 :关闭网卡
添加网络连接 :
1.nmcli c add type ethernet ifname ens160 con-name ens161 autoconnect yes ip4 192.168.48.135/24 gw4 192.168.48.2
2.nmcli c up ens161 不能在xshell操作,否则ssh连接断掉
配置已存在会话的网卡的ip地址:nmcli connection edit ens160
nmcli> goto ipv4
set addresses 192.168.168.11/24
activate
quit
rpm -ivh 软件名:安装软件
rpm -evh 软件名:卸载软件
-Uvh:软件包升级
-q 软件名 :查看软件安装没有
-qa :安装了的全部列出
-ql 软件名:列出软件安装完成后产生的文件
-qf /绝对路径 :查询文件是由哪个包提供的(不知道路径的which touch)
-qpi 包名:查看包的详细信息
-qc :查看软件的配置文件
curl http://w网址 -o index.html:下载到指定文件index中
wget 下载链接:下软件(rpm格式)
-P 下载到指定目录
-t 最大尝试次数
-b 后台下载模式
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载
用源码安装软件:
1.用wget获取源码包
2.安装必备的编译软件:yum install gcc gcc-c++ make -y
3.解压缩: tar xzvf httpd-2.4.57.tar.gz
4. 进入目录:cd httpd-2.4.57
5.检测安装环境:./configure (缺少就yum下)yum install apr* -y
6.编译:make(报错就yum下,不知道下什么就百度)
7.安装:make install
一条语句完成:./configure && make && make install
mount:查看光盘挂载点
umount:取消挂载
ll /dev/sr0:查看光盘文件
mount | grep sr0 :查看挂没挂上
mount /dev/sr0 /mnt:把磁盘的包改挂载地址到mnt
yum install 包名:安装软件(自动解决软件包的依赖关系,所有软件包以仓库形式定义在配置文件中)
rpm -ivh 下载了的包:安装软件(严格区分包名和软件名,安装软件包必须在包的路径或者绝对路径,不能解决软件包之间的依赖关系)
配置本地yum源(利用光盘挂载下的Appstream和Baseos):
1.mount /dev/sr0/ /media(通过光盘文件文件系统挂载在/media目录(通过/media目录获取软件包)
df -h:看挂成功没
2.vim /etc/yum.repos.d/base.repo(创建定义仓库)
[AppStream] (组信息)
name=RHEL9.1_AppStream (源描述信息)
baseurl=file:///media/AppStream (源路径软件包路径,file是本地协议,http是网络协议)
gpgcheck=0 (公私钥验证,密钥验证0是会验证但是不会阻止,1是要验证会阻止)
[BaseOS] (另一个组信息)
name=RHEL9.1_BaseOS (源描述信息)
baseurl=file:///media/BaseOS (源路径软件包路径,file是本地协议,http是网络协议)
gpgcheck=0 (公私钥验证,密钥验证0是会验证但是不会阻止,1是要验证会阻止)
yum makecache: 加载缓存
yum install 软件包 -y :安装软件
yum remove 软件包 -y:卸载软件 (加y就不用确认)
yum update /upgrade -y 包名 :升级指定的软件包或主机中所有已安装的软件包
yum list all :列出仓库里所有可安装的软件包
yum group install "组包名" :安装组包
yum group remove "组包名":卸载组包
yum provides 文件名 :查找指定的文件属于哪个包
yum search 模糊包名 :查看模糊不清的包名的软件包
yum repolist :查看启用了哪些库
yum grouplist :查看组
网络源安装
1.找到开源网站,复制os之前的链接(包括os)
2.vim /etc/yum.repo.d/名字.repo
[AppStream]
name=RHEL9.1_AppStream
baseurl=http://mirrors.163.com/rocky/9/AppStream/x86_64/os/
gpgcheck=0
[BaseOS]
name=RHEL9.1_BaseOS
baseurl=http://mirrors.163.com/rocky/9/BaseOS/x86_64/os/
gpgcheck=0
3.yum install 软件名 :下载
部署逻辑卷:
1.两块硬盘和成一块:先分区fdisk 全部分成一个分区
2. pvcreate /dev/sda /dev/sdb :部署物理卷(可省略)
pvs / pvdisplay:查看物理卷信息
3. vgcreate vg1(卷组名字)/dev/sda /dev/sdb :卷组取名(-s 16m改PE大小)
vgs:查看
4. lvcreate -n lv1 -l 100%FREE(50) vg1 :所有内存全部部署逻辑卷( l 后面写容量/4=个数)
lvcreate -n lv1 -L 19G vg1 :部署19G逻辑卷
lvs:查看
5.mkfs.xfs /dev/vg1/lv1 : 格式化
6.mount /dev/vg1/lv1 /p1 : 挂载
df -h :查看逻辑卷挂载点
扩展卷组要先把分区部署成物理卷再vgextend /dev/VG1 /dev/sdc
lvremove /dev/VG1/lv1:删除逻辑卷
lvextend -L +6G /dev/vg1/lv1 :扩展逻辑卷(扩展之前先卸载
xfs_growfs /dev/vg1/lv1 :扩展逻辑卷格式化
lvreduce -L -100MB /dev/VG1/lv1:减容
pvmove /dev/nvme 0n2 /dev/nvme0n3:数据迁移n2移到n3
删除物理卷要从逻辑卷开始往上删:
1.umount /p1
2.lvremove /dev/vg1/lv1
3.vgremove vg1
4.pvremove /dev/nvme0n2p1
5.fdisk 删除分区
parted的分区:
parted /dev/nvme0n2
mkpart:分区
起始点:0%
结束点:5G
mkfs.xfs /dev/nvme0n2p1:格式化
killall 进程名/pid:关闭所有进程
Kill pid:关闭j'c
sleep 100:在当前状态睡眠100秒
sleep 100 & :放在后台进行
sleep 100 & ctrl+z:把前台任务放到后台并暂停
jobs:查看后台进程
bg 任务:让后台任务重新开始
fg 任务:把任务从后台放到前台
ps -aux:显示所有用户的进程
Top(任务管理器)的表头前五行:
第一行为任务队列信息:top - 17:21:03 up 4:32, 5 users, load average: 0.19, 0.08,0.06
17:21:03表示当前系统时间;up 4:32表示系统已经启动4小时32分钟了;load average:1,5,15分钟的负载
第二行:Tasks: 483 total, 3 running, 480 sleeping, 0 stopped, 0 zombie
483 total进程的总数; 3 running正在运行的进程数,;480 sleeping处于休眠状态的进程数; 0 stopped停止的进程数, ; 0 zombie僵死的进程数。
第三行:%Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0st
0.3 us表示用户进程占用CPU的百分比;0.7 sy系统进程占用CPU的百分比;
0.0 ni用户进程空间内改变过优先级的进程占用CPU的百分比; 99.0 id空闲CPU占用的百分
比;0.0 wa代表I/Owait表示等待输入、输出的进程占用CPU的百分比;
0.0 hi表示cpu服务于硬件中断所耗费的时间总额; 0.0 si表示cpu服务于软件中断所耗费的时
间总额;0.0 st表示虚拟机被hypervisor偷去的cpu时间。另外,如果是多内核设备,可按下数字键“1”来切换成不同cpu的负载率。
第四行:物理内存
第五行:交换虚拟内存
MBR分区:
fdisk分为MBR分区:(最大2T)
lsblk:查看块设备 (查看分区)
1.fdisk /dev/sda :分区
2.输入n创建分区(分最少一个主,最多一个扩展,主和扩展的所有的第一个扇区都直接回车,第二个扇区写容量)
3.输入w正式创建分区
4.mkfs.xfs /dev/sda1:格式化分区(指定文件系统类型,要一个一个格式化)
5.mount /dev/sda1 /p1:挂载在p1 (blkid查看uuid,用uuid挂载)
umount /dev/sda1 :卸载
GPT分区:
支持的磁盘更大,有备份措施
gdisk分为GPT分区:
1.gdisk /dev/sdc :分区
2.输入n创建分区(都直接回车第一个扇区都直接回车,第二个扇区写容量,后面也直接回车)
3.输入w正式创建分区
4.mkfs.xfs /dev/sdc1:格式化分区(指定文件系统类型,要一个一个格式化)
5.mount /dev/sdc1 /p1:挂载在p1
umount /dev/sda1 :卸载
blkid /dev/sda:查看是什么文件系统
df -h:看有哪些挂载上了,看大小
永久挂载:
1.vim /etc/fstab
文件系统名称 挂载点目录 文件系统类型 defaults(默认) 开始是否备份(0/1) 是否检查(0/1)
2./dev/nvme0n2p1 /p1 xfs defaults 0 0
3.保存退出:wq
mount -a 检查挂载所有的开机自动挂载点(如果没有报错就成功挂载)
重启后就成功永久挂载
4.umount /dev/nvme0n2p1 取消挂载