02-系统管理

nobility 发布于 2020-09-16 1658 次阅读


系统管理

系统启动与关闭

  • shutdown:关机
    • k:給其他用户登入用户发送警告信息
    • h:关闭系统
    • r:重启系统
  • halt:关机,相当于shutdown -h
  • reboot:重启,相当于shutdown -r
  • poweroff:关机,普通用户也可以运行此命令
  • source:重新加载配置文件

文件系统管理

Linux目录结构

目录名 描述
/bin 所有用户都可以使用的可执行程序命令文件目录
/boot Linux启动时需要的文件目录
/dev 外设文件目录
/etc 系统配置文件目录
/home 普通用户家目录
/lib 库文件目录
/media 可移动外设文件目录
/mnt 存储设备外设文件目录
/opt 大型的第三方软件目录
/root root用户的家目录
/sbin 只有root用户才有权限执行的可执行程序命令文件目录
/srv 网络服务启动后所需的数据文件目录
/tmp 临时文件目录
/usr Linux发行版官方的软件目录
/var 系统运行时要改变的数据文件目录

文件目录详细信息

文件详细信息

文件类型
  • -:普通文件
  • d:目录文件
  • l:连接文件(软连接)
  • s:套接字文件
  • c:字符设备文件
  • b:块设备文件
  • p:管道文件
文件权限

9个字符3个为一组,分别代表所属用户权限、所属用户组权限和其他用户权限;每组rwx分别代表读写执行权限,可使用一个比特位代表权限,也就有了对应的十进制数字,如100 = 4 = r--110 = 6 = rw-

SELinux

如果最后一个字符是点的就是设置有安全上下文标签的文件,否则是没有,可以通过stat命令查看文件详细信息中查看安全上下文,在网络服务中经常因为SELinux无法访问文件,在网络服务中经常要修改他

文件管理操作命令

  • du:统计目录包含目录的大小
    • h:以人可阅读的形式列出
    • a:统计目录包含目录和文件的大小
    • s:只显示当前目录的总计大小,不能同时使用a参数,因为这两个参数的目的就冲突了
  • cp:拷贝文件或目录,只能拷贝空目录
    • r:递归拷贝目录,可拷贝非空目录
  • mv:移动文件或目录
  • rm:删除文件或目录,可同时删除多个文件,只能删除空目录
    • i:询问用户是否删除
    • f:不会询问用户直接删除
    • r:递归删除,可删除非空目录
  • ln:创文件的建硬连接,不能是目录;两个连接会指向同一块内容,所以修改一个连接文件内容时另一个也会修改,就好像堆内存对象一般,属于地址引用
    • s:创建文件或目录软连接,路径连接

文件管理查找命令

查找文件
  • locate:从文件数据库中查找包含指定字符串的的文件或目录,文件数据库默认是一天更新一次,所以新创建的文件无法使用该命令找到
  • updatadb:立刻更新文件数据库
  • find:从硬盘上查找文件或目录
    • 第一个参数:指定目录中查找,省略自动从当前目录查找
    • 第二个参数:指定查找的条件,不可省略,要注意此时是一个短参数形式,赋值时无需使用等号空格隔开即可
      • -name:根据文件名查找,
      • -size:根据文件大小查找,这里的大于小于使用的是加减而不是大于小于,等于则是不需要任何符号
      • -atime:根据最近访问时间查找,同样大于小于等于是用的加减,默认是天数
      • -type:根据文件类型查找,f是文件,d是目录
    • 第三个参数:操作查找结果,,要注意此时是一个短参数形式,赋值时无需使用等号空格隔开即可
      • -print:打印查找结果,默认
      • -printf:格式化打印查找结果,%p指的是查找文件名
      • -delete:删除查找出的文件
      • -exec:对查找出的文件执行该命令,该命令需要以{} \;结尾,这个大括号会被查找结果替代(注意前后空格)
      • -ok:与-exec类似,只不过会在执行命令时提示用户确认
查找文件内容
  • grep:全局正则匹配过滤信息
    • i:忽略大小写
    • n:显示行号
    • v:取反搜索
    • r:递归的查找目录,与rgrep命令相同
    • I:排除二进制文件
    • E:激活正则匹配,一般默认是激活的,与egrep命令相同
  • sort:对文件内容排序输出
    • o:将排序内容输出到新文件中
    • r:倒序
    • R:随机排序
    • n:按照数字排序,原本是按照字符串排序,所以123会排到23前面
  • wc:文件字数统计,默认是以行数、单词数、字节数和文件名顺序输出
    • l:只输出行数和文件名
    • w:只输出单词数和文件名
    • c:只输出字节数和文件名
    • m:只输出字符数和文件名
  • uniq:将连序相同的行消除为一行输出,也可以将处理重复的内容输出到新文件中
    • c:统计重复的行数
    • d:只显示重复的行
  • cut:裁剪文件的一部分内容
    • c:根据字符数剪切
    • d:以每行的分割符号裁剪,配合f参数使用
    • f:分割的份数,从一开始,配合d参数使用
重定向
  • 0表示标准输入流
  • 1表示标准输出流
  • 2表示标准错误输出流
  • &表示标准输出流和标准错误输出流
  • >:输出重定向到文件并覆盖,若不想终端输出结果也不想存储文件则重定向到黑洞文件/dev/null
  • >>:输出重定向到文件并且追加
  • <:输入重定向,从文件中读取,一般后跟文件名,将文件中内容重定向给命令
  • <<:输入重定向,从键盘上获取,一般后跟结束字符串,将输如字符串重定向给命令
  • |:管道符,将上一个命令的输出当作下一个命令的输入

权限管理

  • sudo:使用root权限执行命令,要输入当前普通用户的密码而不是root用户的密码
  • sudo su:切换到root用户权限,与su命令不同的是,输入当前普通用户的密码而不是root用户的密码
  • chown:修改文件所有者,也可以修改文件所属组,需要使用:分隔
    • R:递归修改目录中的所有子目录和文件
  • chgrp:修改文件所属组
  • chmod:修改文件访问权限,可以使用权限数字也可以使用以下参数加减等于相应的权限,如chmod u+r filechmod 777 file
    • R:递归修改目录中的所有字子目录和文件
    • u:所有者
    • g:所属组
    • o:其他用户
    • a:所有用户

用户与用户组管理

  • useradd:创建用户
  • passwd:修改用户密码
  • userdel:删除用户,会保留用户家目录
    • r:删除用户同时删除用户家目录
  • usermod:修改用户
    • l:用户重命名,但是家目录不会改,需要手动更改
    • g:修改用户所在群组
    • G:为用户追加多个群组,多个群组参数使用逗号分隔
  • groupadd:添加群组
  • groupdel:删除群组
  • groups:查看用户所属群组

压缩与解压

gzip格式后缀一般为gz,压缩比略低速度快;bzip2格式后缀一般为bz2,压缩比高速度慢

  • f:指定归档或压缩后的文件名,所以为该参数赋值只能写到最后
  • v:显示压缩细节
  • c:创建归档文件
  • x:体取归档或压缩的文件到外面

catlessmore加前缀可以查看不是乱码的压缩文件,如:

  • bcat:查看gzip格式压缩文件
  • bzcat:查看bzip2格式压缩文件
  • tar -zcvf:使用gzip格式压缩文件
  • tar -zxvf:使用gzip格式解压文件
  • tar -jcvf:使用bzip2格式压缩文件
  • tar -jxvf:使用bzip2格式解压文件
  • unzip:解压zip格式文件
    • l:只查看压缩文件内容不解压
  • zip -r:压缩为zip格式文件
  • unrar -e:解压rar格式文件
    • l:只是查看压缩文件内容不解压
  • rar -a:压缩为rar格式文件

rar文件解压和压缩软件需要使用源码安装的手段安装,使用wget https://www.rarlab.com/rar/rarlinux-x64-5.9.1.tar.gz

软件包管理

软件仓库安装

修改yum

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup	#备份原来的yum源
cd /etc/yum.repos.d/	#进入yum源文件目录
wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo	#下载阿里云的yum源配置文件到当前目录
yum clean all	#清除以前的缓存
yum makecache	#生成缓存,若产生问题请将下载下的$releasever变量都改为对应系统号,比如7 替换命令%s/$releasever/7/g

#若以上命令出现yum进程占用重复报错,使用 rm -f /var/run/yum.pid 强制停止yum进程
  • yum update:升级软件
  • yum search:搜索软件
  • yum install:安装软件
  • yum remove:删除软件,由于软件的依赖,通常为了卸载干净使用rpm -aq | grep 关键字 | xargs yum -y remove ,此命令的意思是将带有关键字的软件包全部查询出来后通过xargs命令将每行的内容当作yum -y remove的参数,实现挨个卸载
  • yum provides:查看命令是那个软件包的
  • rpm -ql:查看软件包安装所生成的文件
  • yum localinstall:安装本地rpm软件包,pkgs.org网站提供了大量的rpm安装包,和一些新的rpm软件包格式的源,之后就可以安装正常情况下没有的软件了

软件包转化

使用alien软件可以将其他发行版Linux格式的安装包转化为当前Linux系统格式的安装包

yum install alien	#安装alien软件
alien -r 其他格式安装包	#转化为当前Linux系统格式的安装包,之后本地安装即可

源码安装

一般可以参考源代码中的README.md文件编译安装文件

  1. 解压源代码压缩文件
  2. 进入解压后的源代码文件目录执行./configure,检测当前环境是否满足编译环境,若不满足环境则根据提示信息配置相应的环境即可,若没有configure文件可能就是已经编译好的直接到下一个步骤执行make即可无需在执行make install
  3. 环境没有问题后使用make命令执行makefile文件,编译软件
  4. 编译完成后,使用make install命令安装编译后的软件,安装完成后的命令会放入/usr/local/bin

进程管理

查看登入用户

  • who:返回所有当前登入用户
  • w:返回所有当前登入用户,信息比who更加详细
  • last:返回所有用户登入登出信息

查看和终止进程

  • ps:进程状态的静态列表,默认当前终端当前用户的进程
    • ps -ef:列出所有进程
    • ps -efH:乔木状列出所有进程
    • ps -axjf:以树形结构显示所有进程
    • ps -u root:列出该root用户的所有进程
    • ps -aux:通过CPU和内存使用情况来过滤进程
    • ps -aux --sort -pmem:根据内存使用率来排序,也可以使用-pcpu对CPU占用率来排序
  • pstree:以树形结构显示所有进程
  • top:进程状态的动态列表,默认按照CPU占用率排序
    • q键:退出
    • f键:使用空格键添加或删除显示列,使用s键指定按照那一列排序,使用q键退出
    • u键:过滤用户
    • k键:根据进程号结束进程
    • s键:动态刷新时间,默认是三秒
  • kill:根据进程号杀死进程
    • 9:强制终止
  • pidof:根据程序名获取进程号
  • killall:根据程序名杀死进程

后台进程

  • &:在命令后追加&符号,该进程会进入后台运行,该进程是与当前终端相关联的,也就是说关闭当前终端该后台进程也会终止执行
  • nohup:后跟一个执行的命令,此进程会进入后台运行,并且与当前终端无关,会将该命令的输出输出到nohup.out文件中
  • Ctrl + z:该快捷键会将前台程序暂停运行后放入后台
  • jobs:后台进程列表
  • bg:将后台进程从暂停执行状态转化为运行状态,若不加参数则默认是最近使用Ctrl + z的进程,也可以根据后台进程编号
  • fg:根据后台进程编号将后台进程从后台转到前台运行

定时任务

  • at:延时执行命令,使用Ctrl + D快捷键结束输入命令
    • 日期是按照时:分 月/日/年的格式指定具体时间
    • 以当前时间为基准now 加减时间,需要指定时间单位
      • minutes:分钟
      • hours:小时
      • days:天
      • weeks:星期
      • months:月
      • years:年
  • atq:显示at命令等待执行的队列
  • atrm:根据atq队列中的任务编号来删除任务
  • sleep:使当前命令行休眠指定时间,默认是秒,单位:m是分钟、h是小时、d是天
  • crontab:定时执行命令,每个用户都有自己单独的crontab文件
    • l:显示crontab文件内容
    • e:修改crontab文件,不存在则自动创建,在语法正确的情况下会输出crontab: installing new crontab表示正在安装新的crontab文件
    • r:删除crontab文件
crontab文件的格式

分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-6) 命令

  • 若某个位置是*号则代表某个任意,比如0 0 * * * 命令代表每天00:00时执行该命令
  • 可以使用逗号分隔多个时间点,也可以使用短横线连接多个时间点,比如0 0 1-5,25-30 * * 命令代表月1-15日和25-30日执行该命令
  • 某个位置是*/数值则代表每隔该数值时间,比如*/5 * * * * 命令代表每隔5分钟执行该命令

网络管理

虚拟机下的网络模式

模式 虚拟机之间 局域网内 外网 宿主机
桥接 可以互相通讯 可以互相通讯,相当于真机,在同一网段 可以
net 可以互相通讯 虚拟机可以向局域网内发请求,局域网不能像虚拟机发请求,不再同一网段;原因是因为虚拟机使用路由转发功能(地址转化技术),将虚拟机的请求转发到局域网的,所以虚拟机可以访问局域网,而局域网不能访问虚拟机 可以 Vmnet8
仅主机 可以互相通讯 不可以与局域网互相通讯,不在同一网段 不可以 Vmnet1
  • hostnslookup命令都可以解析域名

  • traceroute命令用来追踪路由

net-tools

  • ifconfig:显示已激活的网络接口信息
    • a:显示全部网络接口信息
    • interface:指定网络接口进行设置或查看,需要用指定接口名替换
    • state:设置接口状态,需要用指定以下状态替换
      • down:关闭
      • up:启动
    • address:设置指定接口IP地址,需要用指定IP地址替换
    • netmask:此后跟子网掩码,要注意前面不能加-
    • broadcast:此后跟广播地址,要注意前面不能加-
  • route:显示设置的路由信息
    • add:添加路由信息,要注意前面不能加-
    • del:删除路由信息,要注意前面不能加-,删除时根据主机地址或到达网段进行删除
    • dev:此后跟网络接口,要注意前面不能加-
    • gw:指定网关,default gw指定默认网关
    • host:到达的主机地址
    • net:到达的网段地址
    • netmask:到达网段的子网掩码
  • netstat:查看网络统计信息
    • i:显示网络接口信息
    • t:显示TCP统计连接信息,使用at显示所有TCP连接信息
    • u:显示UDP统计连接信息,使用au显示所有UDP连接信息
    • a:显示连接的连接信息,使用aut显示所有连接信息
    • l:一般监听服务的都是TCP协议,所以与t连用显示监听的网络服务
    • n:端口以数字形式显示
    • s:显示所有协议的统计信息

iproute2

  • ip addr:显示全部网络接口信息,与ifconfig -a类似
    • show:后跟指定网络接口进行查看,要注意前面不能加-
    • add:为接口添加IP,后直接跟IP地址和子网掩码
      • brd:后跟广播地址,+代表使用标准的广播地址
      • dev:后跟网络接口名称
    • del:根据IP和网络接口名删除一个IP地址,后跟IP地址和子网掩码
      • dev:指定网络接口名称
  • ip link set interface state:设置指定接口状态,interface需要用实际的接口替换,state需要用指定以下状态替换
    • up:启动
    • down:关闭
  • ip route:显示设置的路由信息
    • add:添加路由信息,要注意前面不能加-
    • del:删除路由信息,要注意前面不能加-,删除时根据主机地址或到达网段进行删除
  • ss:查看网络统计信息
    • l:一般监听服务的都是TCP协议,所以与t连用显示监听的网络服务
  • ip -s link:显示网络接口信息

Network Manager

若系统没有则使用yum install NetworkManager安装

nmcil
  • nmcil device:显示网络接口信息
    • status:显示网络接口信息,默认
    • show:显示网络接口详细信息,可跟设备名
    • disconnect:关闭设备
    • connect:启动设备
  • nmcil connection:显示所有网络连接信息,这里的连接可以看作一个网络配置信息的模板,方便切换
    • show:默认,显示所有网络连接信息,后可跟连接名,默认的连接名和设备名是相同的
    • add:添加网络连接信息
      • con-name:网络连接名
      • type:网络类型,一般是以太网ethernet
      • ifname:网络接口设备名
      • autoconnect:设置是否开机自动启用这个连接,值为yesno
      • ipv4.method:设置地址获取方式
        • auto:自动获取
        • manual:手动获取
      • ipv4.addresses:之前的版本是ip4,设置ipv4的地址和子网掩码,可以绑定多个,使用引号包裹空格分隔,所以是复数
      • ipv4.gateway:之前的版本是gw4,设置默认网关
      • ipv4.dns:dns地址
    • deleat:根据连接名删除连接
    • up:根据连接名激活对应的连接
    • modify:根据连接名修改网络连接信息,与add的参数几乎一致,也可以使用加减号来添加或删除对应的信息
    • reload:重新加载修改的内容
  • nmcli networkingno是打开网络,off是关闭网络
nmtui

nmcli的文本伪图形化界面,一级菜单依次是编辑连接,激活连接,修改主机名

修改配置文件

  • Linux下的本机DNS解析文件路径是/etc/host,同样是空格分隔配置信息
  • Windows下的本机DNS解析文件路径是C:\Windows\System32\drivers\etc\host,同样是空格分隔配置信息
  1. 网络接口配置文件地址/etc/sysconfig/network-scripts/ifcfg-enoXXX,最后那个文件名是对应的网络接口名称
  2. 对应的配置参数列表如下:
    1. /etc/resolv.conf文件可以配置公共的DNS服务器地址,优先级比较低所以会根据网络接口文件中的配置信息更改,要以nameserver 114.114.114.114的形式,注意没有等号,只是空格分隔
    2. /etc/hostname文件可以配置主机名
参数名 描述
TYPE 设备类型。通常都是Ethernet表示以太网
BOOTPROTO 地址分配模式,有手动nonestatic和自动dhcp两种
NAME 设备名,一定要于设备名保持一致
ONBOOT 启动状态,yesno
IPADDR IP地址
NETMASK 子网掩码,长格式
PREFIX 子网掩码,短格式
GATEWAY 网关IP
DNS1 第一个DNS服务器IP
  1. 使用systemctl restart network命令重启network服务

其他

  • wget:下载httpftp协议的文件
    • c:断点续传
    • O:输出的文件名
  • scp:安全远程拷贝,是基于ssh协议的,远程主机文件表示为用户名@IP地址:文件路径的形式
    • P:指定ssh端口号
此作者没有提供个人介绍
最后更新于 2020-09-16