admin管理员组文章数量:1122861
安装centos后所需要命令
在编辑文件 /etc/sysconfig/network-scripts/ifcfg-ens33
启动网卡 nmcli con up ens33
关闭防火墙
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 永久关闭 selinux
systemctl stop firewalld
systemctl disable firewalld 永久关闭防火墙
加入:
BOOTPROTO="static"
IPADDR="[网关ip前三位].[随机一个数字101-254]"
NETMASK="255.255.255.0"
GATEWAY="[网关ip]"
DNS1="[网关ip]"
重启
systemctl restart network
修改主机名
hostnamectl set-hostname [主机名]
echo $? 查看上一条命令是否成功执行 0成功
查看时间:
%F 只显示当前年月日
%X 只显示当前时间到秒
%Y 显示年
%m 显示月
%d 显示日
date + %H 显示小时
%M 显示分钟
%S 显示秒
-s 修改日期和时间
-r 显示上次文件修改时间
-R 按照RFC 5322格式输出时间
查看文件信息:
-d 显示目录本身信息
ls + -l + [路径] 显示文件详细信息
-t 显示按照最新修改时间排序
-h 显示文件大小
-a 显示隐藏文件
-i 显示inode号
tips:
ls:查看当前目录下所有文件
ls = ll
ls -ld [目录路径] 显示目录本身的详细信息
切换目录:
cd + [相对路径/绝对路径] 切换到当前目录
pwd 显示当且目录的绝对路径
tips:
cd ~ 切换到当前用户的家目录
cd - 切换到上一次所在目录
cd .. 切换到上一级目录
修改、移动、重命名文件:
-b 在移动并覆盖文件之前,备份被覆盖的文件
mv + -i + [oldfilepath...] [newfilepath] 在移动过程中,如果目标位置已有同名文件,会提示用户是否覆盖
-n 如果目标位置已有同名文件,则不进行移动
-v 在移动过程中,显示正在被移动的文件的信息
tips:
mv olddir/ newdir/ 重命名目录
mv oldname.txt newname.txt 重命名文件
创建文件:
touch [路径文件名1] [路径文件名2] .... 创建多个文件
touch [路径][文件名]{范围1..范围2}.文件名扩展名] ... 批量创建
创建目录:
mkdir [路径目录名1] [路径目录名2] .... 创建多个目录
mkdir [路径][目录名{范围1..范围2}] .... 批量创建多个目录
-v 显示细节 -p 递归创建
删除文件/目录:
-r 删除目录
rm + + [目录路径/文件路径] .....
-f 强制删除文件
tips:
rm -rf / 禁止使用
rm -rf [文件目录路径] 可以忽略删除提示
关机与重启:
关机:
init 0
poweroff
重启:
reboot
init 6
图形化到最小化:
init 3
最小化到图形化:
init 5
VIM编辑器:
进入编辑模式
i #在光标所在处进入编辑模式
a #在当前光标后面进入编辑模式
A #在行尾进入编辑模式
o #在光标的下一行进入编辑模式
O #在光标的上一行进入编辑模式
# 从编辑模式进入命令模式:ESC
验证内容是否更新
cat [文件名] #查看文件内容
命令模式
光标定位键盘:
hjkl #左下右上
0 #迅速来到本行的行首
$ #迅速来到本行的行尾
gg #页首--首行的行首
G(shift+g) #页尾--末行的行首
3G #进入第三行
/string #查找字符,n下一个,N上一个 (n N 可以循环的)
文本编辑
命令模式中进行操作
yy #复制
3yy #从光标开始复制3行。在最后粘贴
ygg #从当前光标复制到页首
yG #从光标开始复制到页尾
dd #删除一行(vim中只有剪切功能,剪切之后不粘贴就是删除)
3dd #从光标开始删除3行
dgg #从光标开始删除到页首
dG #从光标开始删除到页尾
d^ #删除本行当前光标之前的内容
p #粘贴到本行的下一行
大P #粘贴到本行的上一行
x #删除光标所在的字符
D #从光标处删除到行尾
C #从光标处删除到行尾,且进入编辑模式
u #undo撤销(后退)
Ctrl + r键 #反撤销(前进)
r #可以用来修改一个字符
扩展命令(尾行)模式:
shift+: #进入尾行模式(扩展命令模式)
:10 #进入第10行
:w #保存
:q #退出
:wq #保存并退出
:w! #强制保存
:q! #不保存并退出
:wq! #强制保存并退出
:noh #退出搜索模式
tips:
将文件另存(另存为)
语法----> :w 存储到当前文件
:w /tmp/aaa.txt #另存为/tmp/aaa.txt
:1,3 w /tmp/2.txt #从1-3行的内容另存为/tmp/2.txt
进入其他模式
ctrl+v #进入可视块模式 选中几行后 大I进入编辑模式 进行几行添加,添加完后按连两下esc按键即可完成添加
shift+v #进入可视行模式
v #进入可视模式
查找替换
语法
:范围 s/old/new/选项
:[数字]s /old/new/ #替换指定行
:[范围1],[范围2] /old/new/ #从范围1-范围2行中替换old变为new仅每行搜索到的第一个
:% s/old/new/ #替换所有行
:1,$ s/old/new/ #替换所有行
:% s/old/new/g #替换所有行的所有行内关键字
tips:
%表示替换所有行 g表示行内所有关键字
///只是匹配符号,可以换成任意符号,比如# @ 都可以
$最后一行
设置环境
:set nu #设置行号
:set nonu #取消设置行号
:set list #显示控制字符,一般看每一行的最后有没有空格
:set nolist #取消显示控制字符
目录功能:
bin 普通用户使用的命令
sbin 管理员使用的命令
which [命令] 用于查找文件显示命令的绝对路径 which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
whereis [命令] 用于查找文件显示命令的绝对路径
查看历史命令:
history 查看历史命令
ctrl + p 显示历史中的上一条命令
用户管理:
用户组:
groupadd groupmod groupdel
groupadd命令
groupadd [用户组名称] #创建一个用户组
groupadd [用户组名称] -g [GID] #创建一个用户组并指定GID
查询用户组信息:
grep '[用户组名称]' /etc/group
groupmod命令
groupmod -g [GID] [用户组名称]
groupmod -n [新用户名称] [老用户组名称]
groupdel命令
groupdel [用户组名称]
用户:
创建用户所产生的文件
/etc/passwd ---->查看账户是否存在的文件
/home/ ---->用户的家目录,每创建一个用户会在/home目录下面创建对应的家目录
/etc/shadow --->用户的密码文件
/var/spool/mail --->用户的邮件
useradd usermod userpdel passwd id
id命令
id [用户名称]
显示:uid gid groups
whoami 查看当前我所使用的账户
useradd命令
useradd [用户名称] 创建用户
useradd -u [uid] [用户名称] 创建用户并指定uid
useradd -g [gid] [用户名称] 创建用户并指定gid(gid必须存在)
useradd -G [组名] [用户名称] 创建用户并添加入组
useradd -s [shell登录] [用户名称] 创建用户并指定shell登录选项
usermod命令
usermod -l [新用户名] [老用户名称] 修改用户名
usermod -g [新gid] [用户名称] 修改GID
usermod -u [新uid] [用户名称] 修改uid
usermod -s [新shell登录选项] [用户名称] 修改shell登录
userdel命令
userdel -r [用户名称] 删除用户 一定要加-r!!!!!不然会残留home和邮箱
passwd命令
root:
passwd [所有用户名称]
others:
passwd [本机用户名称]
组成员管理
gpasswd
添加账户给组
gpasswd -a [用户] [组名]
同时添加多个账户给组
gpasswd -M [用户],... [组名]
从组中删除账户
gpasswd -d [用户] [组名]
文件查看命令:
cat head tail less more
cat命令
cat [文件路径] 打印文件内容
cat -n [文件路径] 指在打印内容前加上行号
cat -b [文件路径] 对非空输出行编号
cat -s [文件路径] 不输出多行空行
head命令
head -n [数字] [文件路径] 显示文件前[数字]行数
tail命令
tail -n [数字] [文件路径] 显示文件末尾[数字]行数
less命令
less [文件路径] 显示文件分页 (f向上翻页 b向下分页)可以输入命令进行查找 q退出
more命令
more [文件路径] 显示文件分页 (f向上翻页 b向下分页)
Sort命令(排序,默认升序)
sort [命令参数选项] [文件路径]
-t 指定分隔符(sort指令的默认分隔符是空格)
-k 指定列
-n 按数值
-r 降序
awk命令
awk [命令参数] "NR==[数字1]{print $[数字2],...}" [文件路径] 打印某文件[数字1]行[数字2]列的内容
-F 指定分隔符 默认分隔符是空格或者TAB
文件权限
更改文件的属主属组
chown [属主.属组/属主/ .属组] [文件路径] 修改属主、属组
chown -R [属主.属组/属主/ .属组] [目录路径] 递归修改---针对目录
chown [属主.属组/属主/ .属组] [目录路径]/* 修改目录下的文件,不包含目录本身
tips:
.可以跟换为:
更改文件的权限
符号添加
数字添加
r---4 w---2 x---1
chmod [数字] [文件路径] 修改文件权限
chmod -R [数字] [目录路径/文件路径] 修改目录以及目录下文件的权限,递归修改
chmod [数字] [目录路径]/* 修改目录下文件的权限,不包含目录本身
权限掩码
查看权限掩码
umask
更改权限掩码
umask [xxxx]
计算默认创建目录和文件权限
root 默认 0022
普通用户 默认 0002
目录=777-umask码 创建目录时默认的权限
文件=666-umask码 创建文件时默认的权限
高级权限
suid ==== 4 提权 (只对二进制命令文件生效,其他不管用,用户获得操作权限)
sgid ==== 2 组继承 (只能对目录设置,创建的文件与组权限一致)
sticky == 1 (t权限)权限控制 (只有root用户和自己可以创建和删除)
字符---语法:
chmod u+s [file]
chmod g+s [dir]
chmod o+t [dir]
数字---语法
chmod 4xxx [file]
chmod 2xxx [dir]
chmod 1xxx [dir]
sudo提权
1.编辑相关配置文件
visudo 或者 vim /etc/sudoers :wq!强制保存退出
2.给用户提权
## Allow root to run any commands anywhere
用户名称 ALL=(ALL) NOPASSWD:添加命令列表路径
## Allows members of the 'sys' group to run networking, software,
文件属性
文件属性的查看
lsattr [文件路径]
文件属性的添加与删除
chattr +[命令参数] [文件路径] 添加文件属性
chattr -[命令参数] [文件路径] 删除文件属性
tips
命令参数:
a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何覆盖或截断这个文件(只追加,不覆盖)
i:即Immutable,系统不允许对这个文件进行任何的修改 (不能做任何操作)
A:即Atime,告诉系统不要修改对这个文件的最后访问时间 (不修改最后访问时间)
文件查找
针对文件名查找
find [路径] [条件] [-exec 动作]
路径:
1.默认不写路径时查找的是当前路径.
2.加路径。
条件:
1.指定的名称 -name
2.文件类型 -type
3.权限 -perm
4.时间 -[a,m,c]time
5.大小 -size [+/-/null]
按文件名查找
find [路径] -name '[文件名]'
find [路径] -iname '[文件名]' #-i忽略大小写
find [路径] -iname '[带*的文件名]' #*通配符表示所有字符
find [路径] ! -name '[文件名]' # !--取反查找不带这个文件名的文件路径
按照文件大小查找
find [路径] -size +[数字][单位] #查找该路径下大于[数字][单位]的文件路径
find [路径] -size [数字][单位] #查找该路径下等于[数字][单位]的文件路径
find [路径] -size -[数字][单位] #查找该路径下小于[数字][单位]的文件路径
find [路径] [条件1] -a [条件2] #查找该路径下满足条件1且满足条件2的文件路径
find [路径] [条件1] -o [条件2] #查找该路径下满足条件1或满足条件2的文件路径
按照时间查找
find [路径] -atime +[数字] #查找访问[数字]天之前的文件路径
find [路径] -atime -[数字] #查找访问[数字]天之内的文件路径
find [路径] -mtime +[数字] #查找内容修改[数字]天之前的文件路径
find [路径] -mtime -[数字] #查找内容修改[数字]天之内的文件路径
find [路径] -ctime +[数字] #查找属性修改[数字]天之前的文件路径
find [路径] -ctime -[数字] #查找属性修改[数字]天之内的文件路径
find [路径] -atime +[数字] #查找访问[数字]分钟之前的文件路径
find [路径] -atime -[数字] #查找访问[数字]分钟之内的文件路径
find [路径] -mtime +[数字] #查找内容修改[数字]分钟之前的文件路径
find [路径] -mtime -[数字] #查找内容修改[数字]分钟之内的文件路径
find [路径] -ctime +[数字] #查找属性修改[数字]分钟之前的文件路径
find [路径] -ctime -[数字] #查找属性修改[数字]分钟之内的文件路径
单位(天)
-atime = accesstime 访问修改时间会改变
-mtime = modifytime 内容修改时间会改变
-ctime = changetime 属性修改时间会改变
单位(分钟)
-amin = accessminute 访问修改时间会改变
-mmin = modifyminute 访问修改时间会改变
-cmin = changeminute 访问修改时间会改变
按照文件类型查找
find [路径] -type [文件类型]
按照文件权限查找
find [路径] -perm [文件权限数字]
查找后动作
find [路径] [条件] -exec [cp,ls,rm执行的操作命令] {} \;
-exec和xargs的区别
-exec:参数是一个一个传递的,传递一个参数执行一次命令。
xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。
===============
1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好;
2、exec 格式麻烦,必须用 {} 做文件的代位符,必须用 \来转义; 作为命令的结束符,书写不便。
3、xargs不能操作文件名有空格的文件;
综上,如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的文件,
那么使用 xargs比较方便; 否则,就要用 exec了。
文件服务器(启用前需要关闭防火墙)
构建nfs文件远程共享存储
nfs-server端
1.下载nfs工具包
yum -y install nfs-utils
2.创建挂载目录
mkdir [创建挂载目录的路径]
3.编辑共享文件
vim /etc/exports
本机共享目录 共享给哪一台机子 共享出的文件属性
[创建的挂载目录] [client端的ip地址/网段](参数命令) <--(rw,no_root_squash,sync)
4.启动服务或者重启服务
systemctl start nfs-server
systemctl restart nfs-server
5.确认 NFS 服务器启动
exportfs -v
nfs-client
1.下载nfs工具包
yum -y install nfs-utils
2.创建挂载目录
mkdir [创建挂载目录的路径]
3.挂载
mount -t nfs [server端的ip]:/[server端的挂载目录] [client端的挂载目录]
4.查看是否挂载成功
df -Th
vstpd服务共享
匿名用户可进行增删改查
server端
1.下载vsftpd服务
yum -y install vsfpd
2.修改默认下共享文件的属主属组
chown ftp.ftp /var/ftp/pub -R
3.编辑配置文件
vim /etc/vsftpd/vsftpd.conf
配置文件:
打开配置(此配置允许匿名用户登录进行下载和上传)
anon_other_write_enable=YES 其他用户进行写操作
anon_upload_enable=YES 用户进行上传操作
anon_mkdir_write_enable=YES 用户进行创建文件操作
4.重启/开启服务
systemctl start vsftpd
systemctl restart vsftpd
client端
1.安装lftp
yum -y install lftp
2.通过lftp访问pub目录
lftp [server端ip地址]
客户端可进行下载上传操作的命令
cd [文件路径] 切换
get [文件路径] 下载文件 下载到当前目录
ls [文件路径] 查看当前目录下的内容
put [本地目录] 上传文件
mirror -R [文件路径] 上传目录以及目录中的子文件
mirror [目录路径] 下载目录(仅目录不是目录下的文件)
本地用户进行增删改查
server端
1.创建本地用户并设置密码
useradd [用户名]
passwd [用户名]
echo '[用户密码]' | passwd --stdin [用户名]
2.修改配置文件
vim /etc/vsftpd/vsftpd.conf
配置文件
anonymous_enable=NO 将允许匿名登录关闭(如打开YES,则可zhangsan用户可以进行上传等操作,匿名用户不能进行)
#anon_umask=022 匿名用户所上传文件的权限掩码
#anon_upload_enable=YES 允许匿名用户上传文件
#anon_mkdir_write_enable=YES 允许匿名用户创建目录
#anon_other_write_enable=YES 是否允许匿名用户有其他写入权(改名,删除,覆盖)
local_root=/home/zhangsan 设置本地用户的FTP根目录,一般为用户的家目录
local_max_rate=0 限制最大传输速率(字节/秒)0为无限制
anon_root=/home/zhangsan 上面是修改的匿名用户的默认访问目录
chroot_local_user=YES 将本地用户锁定在主目录中,不允许切换到上一级目录,默认是NO
3.重启服务
systemctl restart vsftpd
client端
1.lftp使用zhangsan用户进行访问
lftp [server的ip地址] -u [server用户]
密码:[password]
安装与管理软件包
rpm
rpm安装:
rpm -ivh [软件包名称]
参数:
-i install
-v 显示安装过程
-h 显示安装进度
-U upgrade 升级
rpm查询:
rpm -qa [软件名称] 查询所有软件包
rpm -ql [软件名称] 查询软件安装的文件
rpm -qf [文件名称] 查询该文件属于哪个包
参数:
-q query 搜寻
-l list 列出软件包中的文件
-f file 查询文件所属于的软件包
-a all 查询所有软件包
tips:
rpm -qa | grep [软件名] 查找软件是否安装
rpm删除
rpm -e [软件包名称]
缺点:
- 很难解决包依赖关系
- 如果某个文件没有,很难知道它由哪个rpm包提供
wget和curl
wget + [网络包地址]
-O 指定存放路径
curl + [网络包地址]
-o 指定存放路径
源码包管理
- 安装编译环境,配置编译环境 例如:gcc,make,zlib-devel,pcre, pcre-devel,openssl-devel
- 准备软件,解压软件包tar xzf [压缩包路径]
- 设置预编译环境进行预编译 ./configure [参数列表] --prefix=[预编译存放目录]
- 编译文件make
- 安装文件make install
yum管理
yum clean all 清理yum缓存
yum makecache 缓存软件包信息,提高搜索/安装软件的速度
yum repolist 查询yum源信息
yum search [软件名称] 查找软件,命令会搜索到系统已经安装和yum源里没有安装的软件信息,可以用他简单测试yum是否好用
yum provides [命令] 查看命令属于哪个软件
yum list 查看系统已经安装好的软件和没有安装的软件(源里存在即可查到)
yum -y install [软件名称] 安装软件,-y跳过确认提示直接安装
yum -y reinstall [软件名] 重装
yum -y erase [软件名称] 卸载软件,删除软件包和配置文件
yum -y remove [软件名称] 卸载软件,删除软件包,配置文件会保留
tips:
yum -y remove `rpm -qa | grep vim` 删除相关的所有软件包
yum源管理
镜像yum源
1.创建目录挂载镜像
mkdir /mnt/[镜像挂载目录]
mount [本地镜像] /mnt/[镜像挂载目录]
2.编辑repo文件
vim /etc/yum.repos.d/[名称].repo
[本地镜像源名称]
name=本地镜像源名称
baseurl=file:///mnt/[镜像挂载目录]
enabled=1
gpgcheck=0
3.查看
yum repolist
本地yum源
1.安装createrepo
yum -y install createrepo
2.创建挂载目录
mkdir /myyum
3.将rpm包copy到此目录下
cp -r [rpm包] /myyum
4.创建repo
createrepo /myyum
5.编辑repo文件
vim /etc/yum.repos.d/myyum.repo
[myyum]
name=myyum
baseurl=file:///myyum
enabled=1
gpgcheck=0
6.查看
yum repolist
远程vsftpd yum源
1.安装createrepo vsftpd
yum -y install vsftpd
yum -y install createrepo
2.将rpm包copy到pub目录下
cp -r [rpm包] /var/ftp/pub
3.创建pub的repo
createrepo /var/ftp/pub
4.在远端机子上编辑repo文件
vim /etc/yum.repos.d/ftp.repo
[ftp]
name=ftp
baseurl=ftp://[服务端ip]/pub
enabled=1
gpgcheck=0
5.查看
yum repolist
磁盘
lsblk 查看磁盘设备
partprobe /dev/sd* 刷新磁盘分区表,手动让内核更新分区表。不需要重启
df -Th 查看磁盘挂载与磁盘使用空间
-T 打印文件系统类型
-h 人性化显示,磁盘空间大小
blkid [磁盘路径] 查看uuid和文件系统类型
mount [命令参数] [磁盘路径] [文件挂载路径]
-o 指定文件系统权限
-t 指定类型
rw 读写
ro 只读
noexec 不允许执行二进制文件
exec 允许执行二进制文件
auto
mount -a 开机自动挂载
remount 在线重新挂载
fdisk命令
fdisk -l /dev/sd* 查看磁盘分区信息
fdisk /dev/sd* 针对MBR格式,创建分区,给sd*卷分区
gdisk命令
安装gdisk工具
yum -y install gdisk
gdisk -l /dev/sd* 查看磁盘分区信息
gdisk /dev/sd* 磁盘分区
创建文件系统和取消挂载文件系统
本地文件系统,不能在网络上用。
ntfs xfs ext2,ext3,ext4
网络文件系统,也可以在本地用。
nfs glusterfs hdfs cephd
1.创建挂载文件目录mkdir [挂载文件目录路径]
2.制作文件系统 mkfs.[文件系统类型] /dev/
2.磁盘挂载mount -o [权限组合] [磁盘路径] [挂载目录路径]
4.partprobe [磁盘分区文件路径]
3.查看是否挂载成功 df -Th
umount [挂载目录路径] 取消挂载
umount -l [挂载目录路径] 强行卸载,即使目录有资源被进程占用,也可以卸载
开机自启动挂载
fstab自动挂载(不可填错,错了将进入救援模式)
1.编辑fstab文件
vim /etc/fstab
文件显示列表
挂载设备 挂载点 文件系统类型 文件系统属性 是否对文件系统进行磁带备份 是否检查文件系统
[挂载设备的路径] [挂载点路径] [文件系统类型] [文件系统权限] [0:不备份/1:备份] [0:不检查/1:检查]
[uuid]
2.mount -a
自动挂载
开机执行脚本rc.local自动挂载
1.编辑开机自启动脚本
vim /etc/rc.d/rc.local
2.添加执行权限
chmod +x /etc/rc.d/rc.local
3.重启查看
reboot
查看inode信息
stat [文件路径] 显示文件具体详细信息
ls -i [文件路径] 文件信息显示inode号
LVM
LVM的制作
第一步,拥有基本分区
做成物理卷: pv ------- sdb1、sdb2 打pv的标记。
加入卷组: vg-------- 卷组里面包含:sdb1 sdb2,建立在PV之上。
逻辑卷 lv ------- 逻辑卷是从卷组里面拿空间出来做成的逻辑卷,在起个名,建立在VG之上
制作文件系统------mkfs.xfs lvm路径
挂载 ------mount 使用lvm
1.安装lvm命令
yum install -y lvm2
2.创建pv
pvcreate [磁盘路径/磁盘分区的路径]
3.查看pv
pvs / pvscan pvdisplay
4.创建vg
vgcreate [vg命名] [带有pv标记的 磁盘路径/磁盘分区路径]
5.查看vg
vgs / vgscan vsdisplay
6.创建lv
lvcreate -L [分的lv大小] -n [给lvm命名] [通过那个VG卷来创建]
lvcreate -l [分的PE块数(一块PE 4MB)] [通过那个VG卷来创建]
7.查看lv
lvs / lvscan lvdisplay
8.制作文件系统
mkfs.[xfs/ext4] [lvm卷的磁盘路径]
9.挂载
[此处省略]
LVM扩容
如果vg上面有空间free
lvextend -L +[需要扩展的大小] [扩展的lv路径] 原有基础上增加[需要扩展的大小]
lvextend -L [需要扩展的大小] [扩展的lv路径] 覆盖[需要扩展的大小
lvextend -l +[扩展大小块数] [扩展lv路径] 原有基础上增加4mb*[扩展大小块数]
lvextend -l [扩展大小块数] [扩展lv路径] 覆盖4mb*[扩展大小块数]
如果vg上面没有空间free
1.创建pv
pvcreate [空闲磁盘分区路径]
2扩容vg
vgextend [需要扩展的VG名字] [刚创建的空闲空闲磁盘分区路径]
3.扩展lv
lvextend -L +[需要扩展的大小] [扩展的lv路径] 原有基础上增加[需要扩展的大小]
lvextend -L [需要扩展的大小] [扩展的lv路径] 覆盖[需要扩展的大小
lvextend -l +[扩展大小块数] [扩展lv路径] 原有基础上增加4mb*[扩展大小块数]
lvextend -l [扩展大小块数] [扩展lv路径] 覆盖4mb*[扩展大小块数]
4.文件系统扩容
xfs_growfs [扩展的lv路径]
resize2fs [扩展的lv路径]
tips:
lvrename 的时候一定要先卸载挂载再重命名
LVM缩容
(仅针对ext4格式文件系统进行缩容)
1.卸载设备
umount /mnt/[挂载的lv]
2.磁盘检查
e2fsck -pf [将要缩容的lv路径]
3.请求收缩文件系统的大小
resize2fs [将要缩容的lv路径] [最后缩容的大小]
4.缩容lv
lvreduce -L [最后缩容的大小] [将要缩容的lv路径]
5.修复检查文件系统
e2fsck -pf [将要缩容的lv路径]
6.重新挂载
mount [将要缩容的lv路径] /mnt/[挂载的lv]
制作交换分区
free -m 查看交换分区
swapon -s 查看交换分区大小
swapon -a 激活swap分区(读取/etc/fstab)
磁盘制作
1.新建磁盘分区
fdisk /dev/sd*
2.制作swap初始化
mkswap /dev/sd*
3./etc/fstab挂载
vim /etc/fstab
/dev/sd* swap swap defaults 0 0
4.激活swap分区并查看
swapon -a
swapon -s
free -m
5.关闭swap分区
swapoff /dev/sd*
大文件制作
1.dd制作大文件分区
dd if=/dev/zero of=[所需要添加大文件路径] bs=[块大小] count=[多少块] #总大小=bs*count
2.初始化大文件分区
mkswap [所需要添加大文件路径]
3.开机自动挂载/etc/fstab挂载
vim /etc/fstab
[所需要添加大文件路径] swap swap defaults 0 0
4.设置600权限!!!!!不做此步骤会出现提示644权限不安全
chmod 600 [所需要添加大文件路径]
5.激活swap分区并查看
swapon -a
swapon -s
free -m
6.关闭swap大文件
swapoff [所需要添加大文件路径]
管道与重定向
重定向
标准输入、标准正确输出、标准错误输出
0标准输入(键盘)
1,标准输出
2,标准错误
3+,进程在执行过程中打开的其他文件。
&:表示正确错误混合输出
输出重定向
> ----覆盖
>> ----追加
正确输出:1> 1>> = > >>
错误输出:2> 2>>
混合 &> 正确的和不正确的凑输入指向路径文件里面
tips:
正确的和错误的输出可以同时加载到不同文件中
ls [正确路径] [错误不存在路径] &>/dev/null #空设备,将正确与错误的输出丢掉
echo $? 查询上一条命令是否执行成功
会自动创建追加的文件
输入重定向
标准输入 等价 0<
结束符号 < [结束字符]
管道
用法:command1 | command2 |command3 |...
ps aux | grep 'sshd' 显示某个进程
rpm -qa | grep 'httpd' 显示安装包
netstat -lntp | awk 'NR==3 {print $4}' | awk -F':' '{print $2}'
参数传递(与管道结合)
[查找出的内容的command] | xargs -i [ls cp rm...(管道不能执行的命令)] {} [路径]
tips:
-i 使得{}生效
若不使用-i则查看的内容直接显示在命令最后
Linux进程管理
查看进程
ps aux 查看所有进程的详细信息
tips:
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
============================================================================
tips:
USER: #运行进程的用户
PID: #进程ID
%CPU: #CPU占用率
%MEM: #内存占用率
VSZ #进程占用的虚拟内存大小
RSS #占用的物理内存大小
STAT: #进程状态
START: #进程的启动时间
TIME: #进程占用CPU的总时间
COMMAND: #进程文件,进程名
进程状态标识符:
? 表示没有占用终端
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵停进程
X 死掉的进程
进程状态:
Sl 以线程的方式运行
Ss s进程的领导者,父进程
R+ +表示是前台的进程组
S< <优先级较高的进程
SN N优先级较低的进程
ps -ef 可以显示进程的ppid也就是父进程
tips:
-e 显示所有进程
-l 长格式显示
-f 完整格式
UID PID PPID C STIM TTY TIME CMD
======================================================
tips:
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU占用率
STIME 开始时间
TTY 开始此进程的TTY----终端设备
TIME 此进程运行的总时间
CMD 命令名/进程名称
查看单个PID
cat /var/run/[进程名]/[进程名].pid
ps aux | grep [进程名字]
ps -ef | grep [进程名字]
查看终端
tty
? 表示这个进程开启的时候没有占用终端
通过端口号查看进程(一般为守护进程)
yum -y install lsof 安装软件包
lsof -i:[端口号] 查看带端口号的进程
netstat -tnpl 查网络进程和正在监听的端口
w 看已经登陆到终端的进程信息,远程登陆会有ip 地址
查看动态进程
top 动态显示信息,三秒刷新一次。
操作:
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出
z 彩色显示
W 保存
PR 优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。
SHR 共享内存大小,单位kb
ni :nice值
id: cpu空闲率
wa:cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
nice: 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
进程控制
pid杀死进程
kill,pkill
kill [参数] [pid]
-1 HUP 重新加载进程或者重新加载配置文件,PID不变
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
kill -l 查看所有信号
pkill -9 [指定进程名字] 使用pkill可以指定进程名字,pkill 可以杀死所有进程
作业控制
sleep [数字] & &:让命令或者程序后台运行
sleep [数字] ->ctrl + z 把程序放到后台(这方法会让程序在后台暂停)
jobs 查看后台工作号
bg %[后台工作号] 让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
fg %[后台工作号] 将后台运行的程序调入前台
kill %[后台工作号] 通过后台工作号来杀死后台进程
打包压缩
tar gzip gunzip bzip2 bunzip2
打包格式:.tar
打包压缩格式:.tar.gz .tar.bz2 .zip
压缩格式:.gz .bz2
打包:
tar cvf [自定义文件名].tar [被打包文件的路径]
解包:
tar xvf [tar包] -C [将要解包的路径]
(gz)打包压缩:
tar cvzf [自定义文件名].tar.gz [被打包文件的路径]
(gz)解包解压缩:
tar xvzf [.tar.gz包] -C [将要解包的路径]
(bz2)打包压缩:
tar cvjf [自定义文件名].tar.bz2 [被打包文件的路径]
(bz2)解包解压缩:
tar xvjf [.tar.bz2包] -C [将要解包的路径]
打包到指定路径:
tar cvzf [指定文件路径和打包后的路径] [打包的目录]
tips:
c : create 创建
v : verbose 详细信息
f : file 文件
z : gzip 压缩
j : bzip 压缩
x: extract 解压缩 解包
-C: 指定解包路径
`[命令]` 以当前命令所打印的东西作为文件名 一搬常用date +%F-%T
压缩解压缩文件
gzip [文件名].gz 压缩文件 源文件不存在
gzip -d [文件名].gz 解压文件
gunzip [文件名].gz 解压文件
gzip -c [文件名].gz > [解压到的路径文件名] 压缩到指定位置 源文件存在
gunzip -c [文件名].gz > [解压到的路径文件名] 解压到指定位置
bzip2 [文件名].bz2 压缩文件 源文件不存在
bzip2 -d [文件名].bz2 解压文件
bunzip2 [文件名].bz2 解压文件
bzip2 -c [文件名].bz2 > [解压到的路径文件名] 压缩到指定位置 源文件存在
bunzip2 -c [文件名].bz2 > [解压到的路径文件名] 解压到指定位置
tips:
bz2格式和gz格式中bz2格式更加消耗资源但是压缩的文件更小
gzip和bzip2,不能单独压缩目录,需要和tar工具结合使用,才能压缩目录
链接
软链接
ln -s [源文件] [目标文件]
rm -rf [目标文件]
tips:
源文件与目标文件的inode号码不相同
删除源文件后链接文件不能用
给目录设置软链接必须是绝对路径
取消链接,注意:删除目录链接时目录后面加“/”是删除目录,不加是删除链接
无论打开哪一个文件,最终读取的都是源文件
硬链接
ln [源文件] [目标文件]
rm -rf [目标文件]
tips:
源文件与目标文件的inode号码相同
用不同的文件名访问同样的内容,对文件内容进行修改,会影响到所有文件;但是,删除一个文件名,不影响另一个文件名的访问。
DNS命令
客户端检测工具
dig
yum -y install bind-utils 下载对应的工具包
dig [域名] 解析域名对应的IP地址等信息
host
yum -y install bind-utils 下载对应的工具包
host [域名] 解析域名对应的IP地址和别名等信息
配置本地DNS解析
Linux本机解析
vim /etc/hosts
内容:
[ip地址] [名称]
Windows本机解析
win+r 输入drivers
点击etc/hosts
内容:
[ip地址] [名称]
Linux本地DNS服务器解析
vim /etc/resolv.conf
nameserver [网关IP]
修改网卡配置文件定义DNS
vim /etc/sysconfig/network-scripts/ifcfg-ens33
内容:
TYPE="Ethernet" 网络类型
BOOTPROTO="static" 指定网络接口的指定协议
NAME="ens33" 指定网络名称
UUID="[本身UUID]" 指定UUID
DEVICE="ens33" 指定设备名称
IPADDR=[与网关前三段一致].[3-253] 设置静态ip
NETMASK=255.255.255.0 指定子网掩码
GATEWAY=[前三段].2 指定网关
DNS1=[前三段].2 指定DNS
ONBOOT="yes" 设置开机自启动
systemctl restart network
计划任务——日志
atd服务 crond服务
一次调度执行(atd服务)
at [时间规格]
at [时间规格] < [文件]
tips:
at now+[数字]min
at [时间格式]
[文件]里面是执行动作
以sudo 用户来创建at任务
循环调度执行(crond服务)
存储位置 /var/spool/cron/
权限文件位置
不允许使用crontab命令用户: /etc/cron.deny
允许使用crontab命令用户: /etc/cron.allow
系统本身的计划任务: /etc/crontab
语法:
crontab -l 列出当前用户的计划任务
crontab -r 删除当前用户所有的计划任务
crontab -e 编辑当前用户的计划任务
tips:
-u [用户] 管理其他用户的计划任务
语法格式:
Minutes Hours Day-of-Month Month Day-of-Week Command
分钟 小时 日 月 周 执行的命令,最好是命令的绝对路径或者是执行脚本
0-59 0-23 1-31 1-12 0-7
时间:
* 每
*/5 每隔分钟
, 不同的时间段
- 表示范围
日志系统
rsyslog 日志管理
logrotate 日志轮转
日志管理
rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron... httpd/nginx/mysql: 可以自己的方式记录日志
/etc/rsyslog.conf 日志的配置文件
日志级别分为:7种日志级别代号0-7
0 debug #有调试信息的,日志信息最多
1 info #一般信息的日志,最常用
2 notice #最具有重要性的普通条件的信息
3 warning #警告级别
4 err #错误级别,阻止某个功能或者模块不能正常工作的信息
5 crit #严重级别,阻止整个系统或者整个软件不能工作的信息
6 alert #需要立刻修改的信息
7 emerg #内核崩溃等严重信息
none #什么都不记录
常见日志命令
w #当前登录的用户 /var/log/wtmp
last #最近登录的用户 /var/log/btmp
lastlog #所有用户的登录情况 /var/log/lastlo
日志轮转
日志问题
logrotate (轮转,日志切割)
1. 如果没有日志轮转,日志文件会越来越大
2. 将丢弃系统中最旧的日志文件,以节省空间
3. logrotate本身不是系统守护进程,它是通过计划任务crond每天执行
配置文件:
主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
子配置文件:/etc/logrotate.d/
配置日志轮转:(/etc/logrotate.d/)
[日志文件路径] {
[轮转方法]
...
}
tips:
日志轮转方法:
daily 轮转的周期天
weekly 轮转的周期周
monthly 轮转的周期月
yearly 轮转的周期年
size [数字] 只要到了[数字] 大小就轮转
minsize [数字] 最小到达[数字] 大小在轮转,否则到了时间也不会轮转
rotate [数字] 保留[数字]份日志,总共[数字]+1份日志
create [权限] [属主] [属组] 轮转后创建新的文件并设置权限
dateext 使用日期作为后缀
compress 日志轮替时,旧的日志进行压缩
notifempty 空文件不轮转
missingok 丢失不提示
SSH远程管理服务
yum install -y openssh*
配置文件:/etc/ssh/sshd_config(可修改端口号)
远程登录
ssh [用户名称]@[ip地址] -p [端口号] #远程登录[ip地址]的某个[用户名称]
秘钥公钥(ssh秘钥认证可以无密码登录)
1.生成密钥
ssh-keygen
2.查看钥匙目录
cd /root/.ssh/
3.拷贝公钥给对方
ssh-copy-id [对方用户]@[ip地址]
4.登录对方账户
ssh [用户名称]@[ip地址] -p [远程端口号]
tips:
密钥生成文件:
id_rsa ---私钥
id_rsa.pub ---公钥
known_hosts ----确认过公钥指纹的可信服务器列表的文件
authorized_keys ---授权文件,是传输过公钥到对方服务后会自动重命名生成的
密钥:公钥+私钥
远程拷贝
scp -r -P [端口号] [源文件] [目标地址]
tips:
目标文件和原文文件可使用[ip地址]:[端口号]/[路径]
谁是远程加谁ip
远程拷贝目标机器改了端口加-(大)P
目录加 -r
访问控制工具tcpwrapper
TCPwrapper有两个配置文件。
1./etc/hosts.allow --允许
2./etc/hosts.deny --拒绝
TCPwrappers先查找/etc/hosts.allow,再查找/etc/hosts.deny,如果两个配置中有冲突,先匹配中的优先,也就是hosts.allow中的配置优先,如果两个配置都没命中,默认放行。
作用范围
tcpwarpper要看该应用是否依赖libwrap.so这个库文件。
使用
ldd `which [程序名称]` | grep wrap 查看[程序名称]是否支持tcpwrapper
telnet [ip地址] [端口号] 检查[ip地址]下的tcp的[端口号]是否开放
常用小命令
dd 生成文件
dd if=/dev/[设备] of=[目录] bs=[块大小] count=[块的数量]
dd #生成文件
if #从哪个设备取空间
of #输出到哪个目录以及文件
bs #block size 块大小
count #块的数量
du 查看目录
du -h [目录路径] 查看目录及目录中的文件大小
du -sh [目录路径] 查看目录的总大小
ls /etc/ | wc -l 查看/etc目录中有多少个文件,wc -l统计数量
uptime 查看当前CPU负载
free -m 查看内存使用情况
df -Th 查看磁盘使用情况
cat /etc/redhat-release 查看系统的版本和内核
uname -a 看查正在运行的内核版本
uname -r 查看内核版本
rz 上传
sz 下载
ping -c [数字] [域名/ip地址] -c指定次数 ping命令,可以检查主机是否可以联网
yum install ntp -y 安装 ntp
ntp cn.pool.ntp 校对时间 cn.pool.ntp是ntp网络授时组织的中国授时源
版权声明:本文标题:Linux云计算运维常用命令 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1726333235a1074937.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论