Linux云计算运维常用命令

安装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  [软件包名称]

缺点:

  1. 很难解决包依赖关系
  1. 如果某个文件没有,很难知道它由哪个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.org 校对时间                  cn.pool.ntp.org是ntp网络授时组织的中国授时源
  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全新Linux云计算运维架构师是一个在当前IT行业非常热门的职位。随着云计算技术的不断发展和普及,越来越多的企业开始采用云计算解决方案来提高自身的效率和竞争力。而作为云计算的核心技术,Linux操作系统也得到了广泛应用,并且需要专业的运维架构师来负责云计算环境的搭建和维护。 作为一名全新Linux云计算运维架构师,首先需要具备扎实的Linux操作系统的知识。掌握Linux的基本命令和操作,能够熟练搭建和管理Linux服务器,对系统性能调优和故障排除有一定的经验。 其次,需要了解云计算的基本架构和技术。云计算涉及到虚拟化、容器化、集群管理等关键技术,对云平台的架构和组件要有深入的理解。熟悉常用的云计算平台和工具,如OpenStack、Kubernetes等。 此外,对于运维工作来说,自动化和持续集成是一个重要的趋势。全新Linux云计算运维架构师需要具备相应的自动化工具和编程技能,如脚本语言(如Shell、Python)、配置管理工具(如Ansible、Puppet)、持续集成工具(如Jenkins)等,以实现运维自动化和快速部署。 最后,作为一名全新Linux云计算运维架构师,需要注重实践和不断学习。云计算和相关技术更新非常快,需要保持持续学习的态度,关注最新的行业动态和技术发展,积极参与相关的培训和认证,提升自己的专业素养和能力。 总结起来,全新Linux云计算运维架构师是一个需要具备扎实的Linux知识和云计算技术的职位,同时还需要具备自动化和持续集成方面的技能。只有不断学习和实践,才能适应云计算发展的需求,成为一名优秀的云计算运维架构师。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值