鸟哥的Linux私房菜:基础学习篇 第四版 | 鸟哥的 Linux 私房菜:基础学习篇 第四版 (gitbooks.io)
Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 (linuxcool.com)
Linux学习教程,Linux入门教程(超详细) (biancheng.net)
Linux 教程 | 菜鸟教程 (runoob.com)
组合键
Ctrl + A 光标移动到头部
Ctrl + E 光标移动到尾部
Ctrl + U 删除所有在光标左侧的命令字符
Ctrl + K 删除所有在光标右侧的命令字符
Ctrl + C 结束正在运行的程序
Ctrl + Z 暂停当前运行的程序并放入后台
Ctrl + D 结束输入或退出shell
Ctrl + S 暂停屏幕输出【锁住终端】
Ctrl + Q 恢复屏幕输出
Ctrl + L 清屏,【是字母L的小写】等同于Clear
文件
目录配置
Linux 系统目录结构 | 菜鸟教程 (runoob.com)
文件管理
cd命令 – 切换目录
cd directory
-p 显示链接文件 指向的文件 的路径
ls 命令 – 显示指定工作目录下的文件及属性信息
ls [parameter] [objectname]
-a 列出隐藏文件
-d 列出目录本身
-l 显示详细信息
cp命令 – 复制文件或目录
cp origin object
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-r 递归复制文件和目录
-a 等价于“pdr”选项
chgrp命令 – 更改文件用户组
chgrp group file
-R 递归修改
-v 显示执行过程
chown命令 – 改变文件或目录的用户和用户组
chown [account][:group] file
-R 递归修改
-v 显示拥有者变更的详细资料
chmod命令 – 改变文件或目录权限
chmod number file
chmod ugoa -+= rwx
-R 递归修改
mkdir命令 – 创建目录文件
mkdir directory
-m 设置权限
-p 创建不存在的上层目录
rm命令 – 删除文件或目录
rm object
-r 递归删除
-i 询问每个文件是否删除
-f 强制删除
-v 显示执行过程
cp命令 – 复制文件或目录
cp origin object
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-a 等价于“pdr”选项
-i 若目标文件已存在,则会询问是否覆盖
mv命令 – 移动或改名文件
mv 源文件 目标文件
-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
touch命令 – 创建空文件与修改时间戳
ln命令 – 为文件创建快捷方式
ln origin link
-s 对源文件建立符号链接,而非硬链接
umask命令 – 文件默认权限(反向)
umask 002 other没有w权限
umask u=, g=w, o=rwx
chattr命令 – 更改文件隐藏属性
chattr +-= 隐藏属性 file
lsattr命令 – 显示文件隐藏属性
dd命令 – 生成、拷贝及转换文件
ACL (access control list)
setfacl命令 – 设置文件ACL规则 set file access control list
setfacl [-bkRd] [ [-m|-x] acl参数 ] objectfile
acl参数格式
针对用户/用户组
u/g:[账户名]:[rwx]
针对有效权限设置
m:[rwx]
意为用户对该文件实际操作权限为`m对应权限列表`与`用户/用户组对该文件权限列表` 的交集
参数
-m 更改文件的访问控制列表
-x 根据文件中访问控制列表移除条目
-b 删除所有扩展访问控制列表条目
-R 递归操作子目录
getfacl命令 – 显示文件或目录的ACL策略
文本编辑
sed 命令
sed [参数] [行(多行用,分隔离,$为末行)+动作] [filename]
可作为管道命令处理标准输出
-r 使用拓展正则表达式
动作
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!
nano命令– 字符终端文本编辑器
vim命令 – 文本编辑器
gg 首行
G 末行
ctrl+f上一页
ctrl+b下一页
快速定位 行号G,如150G
yy 复制整行
dd 剪切整行
x delete
X bachkspace
p 粘贴
u 撤销
ctrl + r 取消上次撤销
i 编辑模式
ctrl + v(可视块)或V(可视行)或v(可视)
ctrl + : 命令行模式
w 写入
q 退出
q! 强制退出
:syntax on[off] 着色
:set [no]nu 显示(隐藏)行号
/[?]word 向下(上)找word
n 重复前一次查找
N 反向重复前一次查找,如向后变向前查找
number1,(number2或$代表末行)s/word1/word2/g[c]
在n1到n2行间寻找word1并替换成word2 c为交互模式
↑ ↓ ← →选择要复制的内容
gg 首行
G 末行
ctrl+f上一页
ctrl+b下一页
快速定位 行号G,如150G
y 复制
d 剪切
p 粘贴
u 撤销
ctrl + r 取消上次撤销
文件查看
pwd命令 – 显示当前工作目录的路径
du命令 – 查看文件或目录的大小
du file
-h 以易读方式显示文件大小
-s 仅显示总计
cat命令 – 在终端设备上显示文件内容
cat file
-n 显示行号
more命令 – 分页显示文本文件内容
more file
space/enter 下翻页
b 上翻页
/String 查询
:f 显示行数
less命令 – 分页显示文件内容
less file
space/enter 下翻页
b 上翻页
/String 向下查询
?String 向上查询
n 重复前一个查询
N 反向重复查询
g 首行
G 末行
head命令 – 显示文件开头的内容
head file
-n 定义显示行数
tail命令 – 查看文件尾部内容
tail file
-n number 显示行数
file命令 – 识别文件类型
egrep命令 – 在文件内查找指定的字符串
egrep [参数] pattern file
-i 忽略大小写
-n 显示行号
-v 内容反选
printf 命令 – shell 输出
Linux awk 命令
//todo
diff命令 – 比较文件内容差异
diff old new
-b 不检查空格字符的不同
-B 忽略空白行
patch命令 – 修补文件
diff -Naur old new > patchfile.patch
patch [参数] < patchfile.patch
-p[number] 设置欲剥离几层路径名称
-R 还原,卸载patch包
which命令 – 依据PATH环境变量路径查找执行文件文件名
which command
>-a 列出所有找到的文件
whereis命令 – 从特定/预定目录寻找命令/文件
locate命令 – 快速查找文件或目录
updatedb命令 – 创建或更新数据库文件
基于数据库(/var/lib/locatedb)进行的定点查找,有时需用updatedb命令更新数据库
find命令 – 根据路径和条件搜索从硬盘查找指定文件
find [objectFindPath] [option] [action]
-name filename
压缩打包
zip命令 – 压缩文件
zip 参数 resultFile originFile
unzip命令 – 解压缩zip格式文件
unzip [参数] 压缩包
gzip – 压缩和解压文件
zip onjectfile1 [objectfile2] ......
-d 解开压缩文件
-k 保留原文件
-c 把压缩后的文件输出到标准输出设备,不去更动原始文件
tar命令 – 打包、解包、压缩、解压缩文件
压缩 tar -jcv -f resultfile.tar.bz2 origin...
查询 tar -jtv -f filename.tar.bz2
解压缩 tar -jxv -f originzipfile.tar.bz2 -C objectDirectory
压缩时 origin前加/,解压缩时会定位到根目录,不加/则使用相对路径定位到objectDirectory/origin
-c 建立.tar打包文件
-t 查看打包文件内容
-x 解包
-z、j、J 压缩/解压缩
-f
-C 解压缩目录
-p 保留文件属性
-P 保留/
--exclude=FILE 排除file
备份
dump命令 – 备份ext文件系统
dump 备份文件 目标文件系统(挂载点/设备)
restore命令 – 还原ext备份
xfsdump 备份文件系统
xfsdump -f 备份文件 目标文件系统(挂载点/设备)
-I 查看备份信息状态
-l 指定等级 0为完整备份 1-9为增量备份
xfsrestore 还原xfs文件系统
xfsrestore -f dumpfile 待恢复目录
磁盘管理
df 命令 – 显示磁盘空间使用情况
-h 以容易阅读的方式显示
-i 显示索引字节信息
lsblk命令 – 查看系统的磁盘使用情况
blkid命令 – 显示关于可用块设备的信息
parted命令 – 磁盘分区工具
-l 列出磁盘的分区类型与分区信息
磁盘分区管理
gdisk命令 –GPT 磁盘分区管理
fdisk命令 – MBR 磁盘分区管理
fdisk [disk]
-l 列出指定的外围设备的分区表状况
mkfs命令 – 对设备进行格式化文件系统操作
-f 强制格式化
fsck命令 – 检查与修复文件系统
mount命令 – 把文件系统挂载到目录
mount [设备] [挂载点]
umount命令 – 卸载文件系统
umount [设备/挂载目录]
-v 执行时显示详细的信息
Linux开机自动挂载(磁盘)
swapon命令 – 激活交换空间
swapon [device]
-a 将/etc/fstab文件中所有设置为swap的设备,启动为交换区
swapoff命令 – 关闭系统交换区
swapoff [device]
-a 将/etc/fstab文件中所有设置为swap的设备关闭
sync命令 – 刷新文件系统缓冲区
Shell
通配符
* 任意个字符
? 某一个字符
[] 其中一个
[^……] 不是括号内任意一个
[from-to]编码顺序内所有字符其中一个
特殊符号
~ 家目录
& 将命令变为后台任务
! 逻辑非
`` 或 $( ) 嵌套优先执行命令
(commamd) 子shell
{ } 命令区块的组合
$((表达式)) 计算表达式
[ ] 脚本中作条件表达式
数据流重定向
1 标准输出
2 标准错误输出
> , >> 输出重定向 替换、累加
< 键盘输入改由文件内容替换
<< "String" 输入String时结束输入
$ cat > catfile << "eof"
\>This is a test
\>eof
$ cat catfile
This is a test
1>file 2>&1 错误输出合流到标准输出,一起输出到file
&>file 标准输出、标准错误输出合流到file,作用同上
/dev/null 垃圾黑洞
连续执行命令
命令返回值0为成功 非0为失败
; 不考虑命令相关性连续执行
&& 传来0则执行
|| 传来非0则执行
从前向后传,和java不一样,更像是if
管道命令
command1 | command2 用command2对command1的标准输出进行处理,command2 必须是能接受标准输入的命令
Linux管道命令(pipe)
linux shell环境减号”-“的用途
变量
Shell 变量
[root@localhost ~]# variable=value
加单引号表示纯文本
[root@localhost ~]# variable='value'
加双引号可显示变量和命令 {}可选,数组类型必须加
[root@localhost ~]# var=" ${variable} and $(command) "
整型
declare -i/p var=value
数组/映射
Shell 数组 | 菜鸟教程 (runoob.com) 数组
array_name=(value1 value2 ... valuen)
array_name[index]=value
映射
declare -A var=(["google"]="www.google.com", ["runoob"]="www.runoob.com", ["taobao"]="www.taobao.com")
declare -A var
var["google"]="www.google.com"
var["runoob"]="www.runoob.com"
var["taobao"]="www.taobao.com"
${varArray[*/@]} 获取所有值
${!varArray[*/@]} 获取所有键
${#varArray[*]} 获取数组长度
配置文件
shell脚本
Shell 教程
头 #!/bin/bash
条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]
常用命令
alias命令 – 设置命令别名
alias newname="commands"
-p 打印已经设置的命令别名
echo命令 – 输出字符串或提取后的变量值
env命令 – 显示和定义环境变量
env 显示环境变量
env var=value 定义环境变量
env -u var 删除环境变量
set命令 – 设置shell、显示所有变量
set 显示所有环境变量,结果比使用env得到的多,很乱
-a 设置环境变量
unset命令 – 删除指定的shell变量或函数
unset -v var
export命令 – 将变量提升成环境变量
export var[=value]
-f 指定函数名称
-n 删除指定的变量
-p 列出所有的环境变量
read – 读取单行数据内容
read var
-p 设置提示信息
-d 定义一个结束标志,只有第一个字符有效,Enter转为空格
declare命令 – 声明指定类型变量
declare var[=value]
-i 先计算表达式,把结果赋给所声明变量
[root@localhost ~]# declare -i var=1+3
[root@localhost ~]# echo $var
4
-p 计算变量的定义的方法和值,将结果赋值给变量
[root@localhost ~]# var=1+3
[root@localhost ~]# declare -p var
declare -i var="4"
[root@localhost ~]# echo $var
4
-a 声明数组
-A 声明映射
-x 将指定的Shell变量转换成环境变量
expr命令 – 命令行计数器
exit命令 – 退出终端
系统
系统信息
free命令 – 显示系统内存使用量情况
-h 使用优化单位格式
-t 显示合
-s 持续刷新n秒
-c 刷新指定次数
uname命令 – 显示系统内核信息 Unix name
netstat命令 – 显示网络状态
ifconfig命令 – 显示或设置网络设备参数信息
uptime命令 – 查看系统负载
信息显示依次为:
现在时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
top命令 – 实时显示系统运行状态
top
-d <秒> 改变显示的更新速度
-n 设定显示的总次数,完成后将会自动退出
-p 指定pid
执行过程中可用按键命令
? 显示在top中可用命令
P 以cpu的使用排序显示
M 以Memory的使用排序显示
N 以PID来排序
k 给予某个PID一个signal
r 基于某个PID新的nice值
locale命令 – 显示字符集
locale
-a 显示可用的语言环境
系统操作
init命令 – 切换系统运行级别
init number
0 关机
1 单用户
2 多用户
3 完全多用户模式
5 图形界面
6 重启
shutdown命令 – 关闭服务器的系统
reboot命令 – 重新启动计算机
系统设置
localectl命令 – 语言设置
localectl set-locale var=value 设值语系,会改配置文件,不会改环境变量
使用locale查看字符集
如未设置其余语系变量,影响语系的变量是 LANG 和 LC_ALL,设置这两个并设为环境变量即可。
整体系统默认的语系定义在 /etc/locale.conf
日志
Linux系统日志管理
日志文件的格式包含以下 4 列:
- 事件产生的时间。
- 产生事件的服务器的主机名。
- 产生事件的服务名或程序名。
- 事件的具体信息。
logwatch命令 – 遍历系统日志
进程/服务管理
任务管理
& 将任务放到后台执行
[root@localhost ~]# ls -l &
[1] 17142 #返回 [任务号] pid
[root@localhost ~]# total 76 #任务执行完会在shell插入输出
-rw-------. 1 root test 1827 Aug 4 10:18 anaconda-ks.cfg
......
[1]+ Done ls --color=auto -l
ctrl + z 将当前任务放到bash后台中暂停
[root@localhost ~]# vim test
# 输入CTRL + Z
[1]+ Stopped vim test
jobs命令 – 查看后台任务状态
-l 显示pid
-r 仅显示running的任务
-s 仅显示stopping的任务
+表示最近一个被放到后台的任务
-表示最近第二个被放到后台的任务
fg命令 – 将后台任务放到前台运行
fg [任务号]
bg命令 – 让任务在后台运行
bg [任务号]
nohup命令 – 将命令放到系统后台中运行
nohup命令可以将程序以忽略挂起信号(忽视SINGUP信号)的方式运行起来,而被运行程序的输出信息不会显示到屏幕上
nohup command &
进程管理
ps 查看进程
-a 显示与终端无关的所有进程
-A 显示所有程序
-l 采用详细的格式来显示程序状况
-aux 查看所有进程
-u 查看当前用户所有进程
-f 显示UID,PPIP,C与STIME栏位
pidof命令 – 返回运行程序的进程ID
pidof 程序名称
pstree命令 – 以树状图显示进程
-a 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
-c 不使用精简标示法(显示子进程)
-p 显示PID
-u 显示执行账号名称
-h 列出树状图时,特别标明现在执行的程序
[root@localhost ~]# pstree
systemd─┬─ModemManager───number*[{ModemManager}] number为子进程数量
└─avahi-daemon───avahi-daemon ─── 表进程依赖性
kill命令 – 杀死进程
kill [-signal] [PID] [%任务号]
-l 列出可用signal
常用signal
1 重新读取配置文件(类似reload)
2 终止任务,同ctrl+c
9 立即强制删除任务
15 以正常的进程方式终止任务
nice命令 – 执行命令并赋予优先级
nice -n -20~19 command
renice命令 – 修改正在运行的进程的调度优先级
renice -20~19 PID
-g 指定进程组id
-u 指定开启进程的用户名
服务
systemctl [参数] [服务]
start 启动服务
stop 停止服务
restart 重启服务
reload 重新加载配置文件
enable 使某服务开机自启
disable 关闭某服务开机自启
status 查看服务状态
list -units --type=service 列举所有已启动服务
mask 注销服务
kill 杀死服务
Systemd 入门教程:命令篇 - 阮一峰的网络日志
Systemd 入门教程:实战篇 - 阮一峰的网络日志
计划任务
atd 一次性
at的守护进程,默认情况下,atd守护进程每60秒检查一次目录。有作业时会检查作业运行时间,如果与当前时间匹配,则运行此作业。
at命令 – 一次性定时计划任务
at [选项] [时间]
回车后输入命令
Ctrl + D 结束at命令的输入
参数
-l 列出未执行任务列表
-d id 删除任务
-f 将指定文件提交等待作业
at 交给服务器在后台执行,标准/错误输出不会输出到命令行,可使用-m 发送到mail
常用时间格式
TIME:时间格式,这里可以定义出【什么时候要执行at这项任务】的时间,格式有:
HH:MM ex>04:00
在今日的HHMM时刻执行,若该时刻已超过,则明天的HH:MM执行此任务
HH:MM YYYY-MM-D ex>04:00 2015-07-30
强制规定在某年某月的某一天的特殊时刻执行该任务。
HH: MM[am/ pm][Month] [Date] ex>04pm July 30
也是一样,强制在某年某月某日的某时刻执行
HH: MM[am/ pm] + number [ minutes | hours | days | weeks ]
ex>now+5minutes ex> 04pm+3 days
就是说,在某个时间点【再加几个时间后】才执行
cron 周期性
cron相关命令的守护进程
linux计划任务_jixieyang3701的博客
crontab命令 – 管理用户的定时计划任务
crontab 详细用法、定时任务 、时间规则_森林屿麓的博客
crontab [-u username] [参数]
回车后输入 时间 任务 来添加计划任务
参数
-u 只有root能使用,管理其他使用者的计划任务
-e 使用vim编辑crontab的任务内容
-l 查看crontab任务列表
-r 删除所有crontab任务内容,若要仅删除一项,配合 -e
时间格式
时间具有五个字段,以空格分隔
意义 | 分钟 | 小时 | 日期 | 月份 | 周
范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7
特殊符号
* 任何时刻
, 分隔时段 ex 0 3,6 * * * command
- 代表时间范围 ex 0 3-6 * * * command
*/number 每隔number单位间隔执行一次 ex */5 * * * * command 每隔五分钟执行一次
管理系统的cron计划任务
系统计划任务在/etc/crontab
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root 执行结果发送给谁
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | | .---- 用什么身份(用户)执行command,默认为root
# | | | | | |
# * * * * * user-name command to be executed
cron 服务读取配置文件的位置 /etc/crontab 系统的例行性任务 /etc/cron.d/* /etc/cron./ /var/spool/cron/* 用户自己任务
anacron命令 – 检测、执行未执行的crontab命令
默认每小时自动执行一次
[root@localhost ~]# anacron [选项] [工作名]
这里的工作名指的是依据 /etc/anacrontab 文件中定义的工作名。
-f 强制执行相关工作,忽略时间戳。
-n 立即执行
配置文件见链接
软件安装
tarball的安装_hahachenchen789的博客
RPM 、 SRPM、YUM
RPM 全名是“ RedHat Package Manager ”
RPM 与 SRPM 的格式分别为:
xxxxxxxxx.rpm RPM 的格式,已经经过编译且包装完成的 rpm 文件;
xxxxx.src.rpm SRPM的格式,包含未编译的源代码信息。
文件名格式,例如 rp-pppoe-3.11-5.el7.x86_64.rpm 这的文件的意义为:
rp-pppoe - 3.11 - 5 .el7.x86_64 .rpm
软件名称 软件的版本信息 释出的次数 适合的硬件平台 扩展名
rpm命令 – RPM软件包管理器
rpm [参数] packageName
安装
-i 安装
-v 显示详细安装信息
-h 显示安装进度
升级与更新
-Uvh 没安装过则安装,安装过则更新到新版
-Fvh 未安装过则不安装,安装过则更新到新版
查询
-q :仅查询,后面接的软件名称是否有安装;
-qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
-qi :列出该软件的详细信息 (information),包含开发商、版本与说明等;
-ql :列出该软件所有的文件与目录所在完整文件名 (list);
-qc :列出该软件的所有配置文件 (找出在 /etc/ 下面的文件名而已)
-qd :列出该软件的所有说明文档 (找出与 man 有关的文件而已)
-qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
-qf :由后面接的文件名称,找出该文件属于哪一个已安装的软件;
-q --scripts:列出是否含有安装后需要执行的脚本档,可用以 debug 喔!
查询某个 RPM 文件内含有的信息:
-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出
某个 RPM 文件内的信息,而非已安装的软件信息!注意!
验证与数字签名
-V :后面加的是软件名称,若该软件所含的文件被更动过,才会列出来;
-Va :列出目前系统上面所有可能被更动过的文件;
-Vp :后面加的是文件名称,列出该软件内可能被更动过的文件;
-Vf :列出某个文件是否被更动过~
[[email protected] ~]# rpm -V logrotate
..5....T. c /etc/logrotate.conf
你会发现在文件名之前有个 c ,然后就是一堆奇怪的文字了。那个 c 代表的是 configuration
, 就是配置文件的意思。至于最前面的几个信息是:
- S :(file Size differs) 文件的容量大小是否被改变
- M :(Mode differs) 文件的类型或文件的属性 (rwx) 是否被改变?如是否可执行等参数已被改变
- 5 :(MD5 sum differs) MD5 这一种指纹码的内容已经不同
- D :(Device major/minor number mis-match) 设备的主/次代码已经改变
- L :(readLink(2) path mis-match) Link 路径已被改变
- U :(User ownership differs) 文件的所属人已被改变
- G :(Group ownership differs) 文件的所属群组已被改变
- T :(mTime differs) 文件的创建时间已被改变
- P :(caPabilities differ) 功能已经被改变
卸载
-e 卸载软件包
重建数据库
--rebuilddb
YUM 线上升级机制 | 鸟哥的 Linux 私房菜:基础学习篇 第四版
查询功能:yum [list|info|search|provides|whatprovides] 参数
[[email protected] ~]# yum [option] [查询工作项目] [相关参数]
选项与参数:
[option]:主要的选项,包括有:
-y :当 yum 要等待使用者输入时,这个选项可以自动提供 yes 的回应;
--installroot=/some/path :将该软件安装在 /some/path 而不使用默认路径
[查询工作项目] [相关参数]:这方面的参数有:
search :搜寻某个软件名称或者是描述 (description) 的重要关键字;
list :列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa;
info :同上,不过有点类似 rpm -qai 的执行结果;
provides:从文件去搜寻软件!类似 rpm -qf 的功能!
安装/升级功能:yum [install|update] 软件
[[email protected] ~]# yum [option] [安装与升级的工作项目] [相关参数]
选项与参数:
install :后面接要安装的软件!
update :后面接要升级的软件,若要整个系统都升级,就直接 update 即可
移除功能:yum [remove] 软件
软件群组功能
[[email protected] ~]# yum [群组功能] [软件群组]
选项与参数:
grouplist :列出所有可使用的“软件群组组”,例如 Development Tools 之类的;
groupinfo :后面接 group_name,则可了解该 group 内含的所有软件名;
groupinstall:这个好用!可以安装一整组的软件群组,相当的不错用!
groupremove :移除某个软件群组;
配置文件
CentOS yum 源的配置与使用 - David_Tang
rpmbuild命令 – 编译SPRM、创建软件包
用户
列出 Linux 系统上所有用户的 3 种方法
Linux 系统中用户信息存放在 /etc/passwd 文件中。
这是一个包含每个用户基本信息的文本文件。当我们在系统中创建一个用户,新用户的详细信息就会被添加到这个文件中。
/etc/passwd 文件将每个用户的基本信息记录为文件中的一行,一行中包含 7 个字段。
/etc/passwd 文件的一行代表一个单独的用户。该文件将用户的信息分为 3 个部分。
* 第 1 部分:`root` 用户信息
* 第 2 部分:系统定义的账号信息
* 第 3 部分:真实用户的账户信息
用户管理
linux系统账号是什么
useradd命令 – 创建并设置用户信息
useradd [参数] [account]
-c 添加备注文字
-g 指定用户对应的用户组
-G 定义此用户为多个不同组的成员
-r 建立系统帐号
passwd命令 – 管理用户密码
passwd account
chage命令 – 修改/显示帐号和密码的有效期限
chage [参数] account
usermod命令 – 修改用户账号信息
usermod [参数] 用户名
-g<群组> 修改用户的初始用户组
-G<群组> 修改用户所属的附加群组,多个群组间用,分隔
-l<账号名称> 修改用户账号名称
userdel命令 – 删除用户账户
userdel [参数] 用户名
-r 删除用户主目录及其中的任何文件
用户操作
newgrp命令 – 切换有效用户组
以相同的帐号,另一个群组名称,使用子.shell,再次登入系统。
su命令 – 切换用户身份
su [-l] [-c command] [-s bash.sh] account
-c 执行完指定的指令后,即恢复原来的身份
-l 改变身份时,也同时变更工作目录
-m 变更身份时,不要变更环境变量
-s 指定要执行的shell
sudo命令 – 授权普通用户执行管理员命令
/etc/sudoers 中有出现的account才能使用(具有管理员身份)
sudo [-b]
-b command 将要执行的指令放在后台执行
-u account 切换到特定账号执行命令
visudo命令 – 编辑/etc/sudoers文件
Linux visudo 命令_allway2的博客
visudo命令详解 - 马昌伟
用户信息
id命令 – 显示用户与用户组信息
id [参数] [用户名]
w命令 – 显示已登录用户
who命令 – 查看当前登录用户信息
last命令 – 显示用户或终端的历史登录记录
lastlog命令 – 显示用户最近一次登录信息
用户组
groups命令 – 查看用户组成员或成员所属用户组
groups [user] [group]
groupadd命令 – 创建新的用户组
groupadd [参数] 用户组
groupdel命令 – 删除用户组
groupdel [参数] [群组名称]
gpasswd命令 – 设置用户组管理员
gpasswd userGroup
-a 添加用户到组
-A 指定管理员,
-d 从组删除用户
指定多个用户用,分隔