系统管理
系统启动与关闭
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 file
、chmod 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
:体取归档或压缩的文件到外面为
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
:网络类型,一般是以太网ethernet
ifname
:网络接口设备名autoconnect
:设置是否开机自动启用这个连接,值为yes
或no
ipv4.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