系统管理
系统启动与关闭
shutdown:关机k:給其他用户登入用户发送警告信息h:关闭系统r:重启系统
halt:关机,相当于shutdown -hreboot:重启,相当于shutdown -rpoweroff:关机,普通用户也可以运行此命令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 file、chmod 777 fileR:递归修改目录中的所有字子目录和文件u:所有者g:所属组o:其他用户a:所有用户
用户与用户组管理
useradd:创建用户passwd:修改用户密码userdel:删除用户,会保留用户家目录r:删除用户同时删除用户家目录
usermod:修改用户l:用户重命名,但是家目录不会改,需要手动更改g:修改用户所在群组G:为用户追加多个群组,多个群组参数使用逗号分隔
groupadd:添加群组groupdel:删除群组groups:查看用户所属群组
压缩与解压
gzip格式后缀一般为gz,压缩比略低速度快;bzip2格式后缀一般为bz2,压缩比高速度慢
f:指定归档或压缩后的文件名,所以为该参数赋值只能写到最后v:显示压缩细节c:创建归档文件x:体取归档或压缩的文件到外面为
cat、less、more加前缀可以查看不是乱码的压缩文件,如:
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文件编译安装文件
- 解压源代码压缩文件
- 进入解压后的源代码文件目录执行
./configure,检测当前环境是否满足编译环境,若不满足环境则根据提示信息配置相应的环境即可,若没有configure文件可能就是已经编译好的直接到下一个步骤执行make即可无需在执行make install - 环境没有问题后使用
make命令执行makefile文件,编译软件 - 编译完成后,使用
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 |
host和nslookup命令都可以解析域名
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:网络类型,一般是以太网ethernetifname:网络接口设备名autoconnect:设置是否开机自动启用这个连接,值为yes或noipv4.method:设置地址获取方式auto:自动获取manual:手动获取
ipv4.addresses:之前的版本是ip4,设置ipv4的地址和子网掩码,可以绑定多个,使用引号包裹空格分隔,所以是复数ipv4.gateway:之前的版本是gw4,设置默认网关ipv4.dns:dns地址
deleat:根据连接名删除连接up:根据连接名激活对应的连接modify:根据连接名修改网络连接信息,与add的参数几乎一致,也可以使用加减号来添加或删除对应的信息reload:重新加载修改的内容
nmcli networking:no是打开网络,off是关闭网络
nmtui
nmcli的文本伪图形化界面,一级菜单依次是编辑连接,激活连接,修改主机名,
修改配置文件
- Linux下的本机DNS解析文件路径是
/etc/host,同样是空格分隔配置信息- Windows下的本机DNS解析文件路径是
C:\Windows\System32\drivers\etc\host,同样是空格分隔配置信息
- 网络接口配置文件地址
/etc/sysconfig/network-scripts/ifcfg-enoXXX,最后那个文件名是对应的网络接口名称 - 对应的配置参数列表如下:
/etc/resolv.conf文件可以配置公共的DNS服务器地址,优先级比较低所以会根据网络接口文件中的配置信息更改,要以nameserver 114.114.114.114的形式,注意没有等号,只是空格分隔/etc/hostname文件可以配置主机名
| 参数名 | 描述 |
|---|---|
| TYPE | 设备类型。通常都是Ethernet表示以太网 |
| BOOTPROTO | 地址分配模式,有手动none、static和自动dhcp两种 |
| NAME | 设备名,一定要于设备名保持一致 |
| ONBOOT | 启动状态,yes和no |
| IPADDR | IP地址 |
| NETMASK | 子网掩码,长格式 |
| PREFIX | 子网掩码,短格式 |
| GATEWAY | 网关IP |
| DNS1 | 第一个DNS服务器IP |
- 使用
systemctl restart network命令重启network服务
其他
wget:下载http和ftp协议的文件c:断点续传O:输出的文件名
scp:安全远程拷贝,是基于ssh协议的,远程主机文件表示为用户名@IP地址:文件路径的形式P:指定ssh端口号

Comments NOTHING