RHCSA课程:
124(1-7)
前序:
Linux的三句经典:
a.Linux没有盘符之说,只有文件和文件夹之说
b.Linux万物始于根,所以最大的文件夹:/
c.Linux没有后缀之说,一切皆文件
第一课:文件类型与一级目录:
1、Linux文件类型:
Linux文件类型 | 表示 | 颜色 |
目录文件 | d | 蓝色 |
链接文件 | l | 亮蓝色 |
特殊(设备)文件 | c(快设备) b(块设备) | 黄色 |
普通文件 | - | 黑色 |
软件包 | 红色 | |
可执行文件 | 绿色 |
2、Linux一级目录:
名称 | 注释 |
/bin | 存放系统命令 |
/boot | 存放系统启动文件及其内核 |
/dev | 设备文件主目录 |
/etc | 系统主配置文件主目录 |
/home | 普通用户家目录 |
/lib | 系统库文件家目录 |
/proc | 系统进程主目录 (任务管理器) |
/usr | 系统大文件及其说明文档存放目录(大文件:源码包) |
/mnt | 用户挂载目录 |
/root | 超级用户家目录 |
/var | 系统配置文件主目录 |
第二课:基础命令
1、工具命令:
帮助:man help info
cal ,date , bc , ping - c2 , whatis
2、查看命令:
wc +filename 查看文件行数,字符,字节数
nl +filename 列出行数
uname -r 查看内核版本(内核次版本:偶数为稳定版,奇数为开发版)
time 查看所消耗资源时间(以查看消耗的资源)
w 查看某些用户正在登录使用
ll -d 查看目录本身
stat 查看时间戳
tail 主要用于查最新更新的文件
3、应用命令:
vim /etc/hostname 红帽7.X 无需重启
vim /etc/sysconfig/network 红帽6.0 需要重启 永久改名
hostnamectl set-hostname zyx.example.com
halt 关机 reboot 重启
cd - 上一目录与当前目录快速来回切换
cd / cd ~ 回自己家目录
cd ~tangkai 回tangkai家目录
. 代表当前
.. 代表上一级 cd ../../.. 回到上上上级
mkdir -p /123/456/789 同时创建3个递加目录
mount /dev/cdrom /tmp 系统挂掉(所以mount挂载目录:/mnt)
grep 筛选
| 管道符号 command | command 做二次执行 ll /etc|grep passwd
cp -r 复制目录 -p权限不会改变
touch filename 更新时间戳,或者创建一个新空文件
第三课:用户与组
1、用户权限:
1.普通用户的创建都会创建默认的私有组。
2.所有权限不对于root生效。
3.所有普通用户都为来宾。
4.创建文件,默认权限:644 文件最大的权限:666
5.创建文件夹:755 (坑爹的原因:目录需要打开)
6.普通用户创建文件:664
2、符号参数:
1.链接文件必须写绝对路径。软链接文件俗称快捷方式,权限777,所有用户都可以操作,
软链接符号参数不变 ln -s /tmp/a /b
2.当符号参数为2:代表相同的文件出现过两次,用于备份,复制并同步,(缺点:增加一倍的空间)
3、vim与vi:
1.vim带有颜色的区分,vi木有。
2.当只敲vim后没有接文件,编辑完之后:w file 保存为file。
3./etc/services 存放端口号,端口列表
4.dd 删除本行 u 撤销 GG 到文本最末行 gg 到文本最首行
yy 复制 p 粘贴到光标行下面 P 粘贴到光标行上面
/ 搜索(n 向下跳一个) ? 搜索(n 向上跳一个)
4、用户与组:
1.用户真正的花名册:/etc/passwd (/var/spool/mail /home /etc/shadow /etc/gpasswd /etc/gshadow)
2.系统只会识别GID UID root u=0 g=0(只要u=0 g=0,系统就会认为其为超级管理员)
3.服务用户 u g 1-999 1-999(redhat7)
4.超级管理员 u g 0 0
5.普通用户 u g 1000+ 1000+
6./etc/shadow(无任何权限) 为/etc/passwd的影子文件,
user1:!!(加密密码):16755(从unix诞生1970.1.1算起):0:99999(密码过期时间):7(提前多少天通知你改密码):::
7.chage user1 改shadow内容
8.gpasswd tangkai ----加额外组,自己为自己服务
su - user1
newgroup tangkai
(验证密码)
### useradd -c(描述)boss -d(指定家目录) -u (uid) -g (已存在的私有组) -G(附加组,额外组,从属组)-s (指定shell:/bin/shell 或者 /sbin/nologin)
第四课:shell脚本
shell代表一个平台
查看语言平台:/etc/shell
1、用户的环境配置文件:
(存在家目录)
1. .bash_history 记录用户所有敲过的命令总和,无论对错 (可删除)
2. .bash_logout 登出记录
3. .bash_profile 启动脚本文件
4. .bashrc 启动脚本文件
5.命令sync: 把内存数据同步进硬盘 .bash_history
2、history:
1. !v 在history从下往上自动执行第一个以v开头的命令
2. !302 在history自动执行第302条命令
3. ctrl+l --》 敲命令,就会快速匹配history里面原先敲过的命令
4. history最多保持1000条历史记录,用户的全局配置文件有记录/etc/profile
5. history -c 清除当前命令记录,俗称:释放内存
3、shell变量:
A=$(值) ()代表着命令的结果 [ +-*/ ]代表运算 { }代表所有
echo $A 输出变量A
echo $$ 查看bash代号
pstree(管道树) |grep bash
bash 进第二个dash环境
alias A=‘ ‘(用户使用:敲入用户家目录.dashrc)(所有人:敲入全局/etc/bashrc)
4、变量类型:
本地变量(从无到有)(一次性变量)(当前环境生效)
环境变量(在本地变量基础之上,只要离开这个环境就就不再存在)
export A(本地变量) 本地变量变为环境变量,但是环境不能消失
全局变量(变量跟着你跑):
vim /root/.bashrc 写入A=$(ll /etc | wc -l) ----全局变量
位置参数变量:
set a($0位) b($1位) c($2位) d($3位) ...(位置参数)
echo $1
a
echo $2
b
echo ${10}
j
预定义变量
标准的输入和输出
Linux提供三种I/O通道:
1.STDIN:输入源来自我们的键盘、扫描仪
2.STDOUT:标准的输出,来自我们的显示器、终端
3.STDERR:错误的输出,默认也是我们的终端
5、重定向:
输出到一个文件
我们的标准输出和错误输出都可以输出到一个文件操作符:
1. > 输出重定向
2. 2> 过滤出错误的信息,显示正确的,保存错误的
3. &> 把正确的信息和错误的信息都输入到用一个文件中
4. >> 追加输出重定向
for example:
echo redhat |passwd --stdin tangkai 修改tangkai密码
find /etc -name passwd > a.txt 保存正确的,显示错误的
find /etc -name passwd 2> a.txt 保存错误的,显示正确的
find /etc -name passwd &> a.txt 全部保存,不显示
6、for loops 循环语句:
1.for USER in {user1,user2}
do
echo redhat |passwd --stdin $USER
done
2.vim useradd.sh
#!/bin/bash
for num in $(seq 1 10})
do
USER=admin$num
useradd=$USER
echo password |passwd --stdin $USER
done
3.vim ping.sh
for n in {1..20}
do
host=192.128.0.$n
ping -c2 $host &> /dev/null(空设备(黑洞))
if [ $? = 0 ($?:系统反馈的状态 0:代表操作正确 非0:代表错误的)] ; then
echo "$host is UP"
else
echo "host is DOWN"
fi
done
第五课:文件类命令
1、查看文件类命令:
cat:一次性显示完文档(常用于查看日志)
head -n:查看从头到n行
tailf:实时监控(常用于查看日志)
nl:与cat相同,只是加行号
for example:
head -n 20 passwd |tail -n 11
查看文件passed中第10行到20行内容
### /var/log:Linux所有日志存放目录 ###
cd /var/log
ls
messages:全局日志
2、截取文件类命令:
grep:筛选文件关键字,以行为单位
----- -i(忽略大小写) -n(所在行数)-v(反选)^(以root开头的)$(以root结尾的)
cat /etc/passwd |grep root
cat /etc/passwd |grep -inv root
cat /etc/passwd |grep -in ^root
cat /etc/passwd |grep -in root$
cut:筛选文件关键字,以列为单位
----- -d:(以:切,默认最左边) -d‘ ‘(以空格切)-f1(左边)
awk:grep+cut升级版
awk /模式/‘{结果}‘
for:截取ip地址
ifconfig |grep ‘inet 192‘ |cut -d‘ ‘ -f1
ifconfig |awk /192.168/‘{print $2}‘
筛选横切 位置参数
3、文件分析类命令:
wc:查看行数
sort:排序(默认以第一个数字排列)
-n 以数字第一个数值大小从小到到大排列
-rn 从大到小
-t 以分隔符隔开
diff:做比较,列出不同(常用于升级打补丁)
for1:查看uid
cut -d:-f3 passwd | sort -rn
for2:以uid排序
sort -t:-k3 passwd -n
数据处理类命令:
tr:替换文字大小写
for:将文件passwd的内容所有小写替换成大写,而passwd无变化,转入passwd1
tr ‘a-z‘ ‘A-Z‘ < passwd >passwd1
sed:替换内容 -i 真实替换
for1:把文件zhouyuxia内容中的第一行的red替换成hat
sed 1 s/red/hat/g zhouyuxia
for2:把文件zhouyuxia内容中的windows与Linux之间的red替换成hat
sed /windows/,/linux/s/red/hat/g zhouyuxia
for3:同时替换
sed -e ‘s/windows/linux/‘ -e ‘s/red/hat/‘ zhouyuxia
第六课:进程及计划任务
1、Linux系统的启动过程:
1.主机启动自检
2.执行硬盘MBR中的启动引导器:/boot/grub/grub.conf(做Linux下引导系统)
3.加载Linux内核程序
4.执行INIT进程---/etc/ininttab
5.进入系统默认运行级别并执行相应的服务
6.允许用户进行登录
主机上电 --》 主板 --》 BIOS --》 硬盘(柱面,磁道,扇区:512个字节)(关机之后回到起始位,512个字节用于引导系统:MBR(主引导扇区))
MBR:master boot record 446+16*4+2=512 B 在0柱面0磁道1扇区,为硬盘本身产物,并非存于系统层面
446:主引导记录
16*4:分区表
2、系统启动主配置文件的讲解:
(hd0,0)hd代表硬盘,0代表第一块硬盘,0代表第一个分区
(hd0,0)(物理层)=sda1(逻辑层) 但是不能用sda1(逻辑层)替换(hd0,0)(物理层),但是用/boot替换,但是强制性格式(hd0,0)
root (hd0,0)
kernel /(boot下面的二级目录)
ro:只读方式
root=UUID可以用/根,或者用/dev/sda*替换 --- blkid:用于查看我设备的标识号
rhgb:遮罩,企业删除
quiet:知道报错,但是忽略正常过,如果删除,则停于此
initramfs:文件系统文件的cope文件,只用于启动boot,启动后,真实的文件系统将其替换
用超级用户运行boot ---启动boot
用内核以只读的方式挂载根 ---加载内核
df -Th 查看文件系统
cd /lib/modules/2.6.32-573.el6.X86_64/kernel/fs/ext4
ls --> ext4.ko 文件系统存放文件
3、红帽6的系统启动主配置文件修复:
ls /boot >> /boot/grup/grup.conf
vim grup.conf
default=0
timeout=5
title redhat
root (hd0,0)
kernel /vm...... ro root=/dev/sda2
initrd /ini....
/dev/zero(从无到有) /dev/null(黑洞) ---均为空设备
for:
dd if=/dev/zero of=file bs=100M count=1
此目录下创建文件大小为100M的文件
dd if=/dev/zero of=/dev/sda bs=256 count=1 ---干掉MBR:512字节
grub-install /dev/sda 删除/boot/grub目录下所有目录和文件后恢复:向/dev/sda重写grub,如果完全重写,要ls /boot >> /boot/grub,然后重写grub.conf文件
4、红帽7的系统启动主配置文件修复:
grub2-mkconfig -o /boot/grub2/grub.cfg ---源于/etc/sysconfig (所有服务的全局配置目录)
cd /etc/sysconfig
ll grub
vim grub
五条记录,源于这
5、红帽6/7进程:
1.红帽6父进程---init(流程启动):
init7个级别:
init 0 关机
init 1 单用户模式
init 2 多用户模式
init 3 命令行
init 4 用户未分配使用
init 5 图形化 (默认init级别)
init 6 重启
2.红帽7父进程---systemd(并发启动):
systemctl get-default 查看
systemctl isolate multi-user.target ---图形化进命令行
systemctl isolate graphical.target ---命令行进图形化
systemctl set-default graphical.target ---设置下次启动图形化
/etc/inittab 配置文件
6、服务的查看、重启与永久启动:
systemctl status vsftpd
systemctl restart vsftpd
systemctl enable vsftpd
7、进程命令:
ps aux 查看进程:
ps aux |grep vsftpd 查看ftp进程
kill -15 正常结束(关机)
kill -9 33723 强制杀掉(针对单进程,进程号)
killall vsftps 全杀团灭(针对多进程服务)
cp /usr . -r & 后台操作
8、定时任务:
1.at:在指定时刻执行指定的命令序列:
for:一次性计划任务
at 0:00
at>
at>
ctrl+d
2.crontab:周期性执行指定程序:
for:周期性计划任务
crontab:
* * * * *
分 时 日 月 周
crontab -e -u taikang
23 14 * * * /bin/shell restart
systemctl restart crond ---周期性计划任务为服务crond
systemctl enable crond
*/1 每一*做
第七课:系统管理及其用户高级管理
1、系统管理:
yum -y ntpd 红帽6
yum -y chronyd 红帽7
vim /etc/chrony.conf 红帽7修改时间服务器
server 192.168.1.1
systemctl restart chronfd.service
systemctl enable chronfd.service
开机脚本:/etc/rc.d/rc.local
2、用户高级管理:
umask
0022 忽略第一个0,叫022 文件666-022=644 文件夹777-022=755
0022 系统默认提供文件和文件夹权限的值,成为umask值
umask 0044 修改umask值为0044,创建文件:622
umask 0033 修改umask值为0033,创建文件:644 110 110 110 - 000 011 011 = 110 100 100 =644
suid and sgid特殊权限:
suid:当在一个二进制文件(命令)上应用了suid后,那么任何人在执行该命令时
临时拥有命令拥有人的权限,只能应用在可执行文件上
u+s
s位:防病毒
sgid:当在一个二进制文件上应用了sgid后。那么任何人在执行该命令
时临时拥有命令组权限,只能应用在可执行文件上;如果在一个目
录上应用了sgid后那么任何人在该目录创建文件/目录的拥有组会
继承目录本身的组
g+s
sticky:如果在一个目录上应用了sticky权限后,那么该目录中的文件仅
文件拥有人和root能删除
o+t:防止删除
本文出自 “淼先森” 博客,谢绝转载!
原文地址:http://zhaom0109.blog.51cto.com/11675013/1852395