首页 > 代码库 > RHCSA全课程讲解124(1-7)

RHCSA全课程讲解124(1-7)

RHCSA课程:

124(1-7)

前序:

Linux的三句经典:

a.Linux没有盘符之说,只有文件和文件夹之说

b.Linux万物始于根,所以最大的文件夹:/

c.Linux没有后缀之说,一切皆文件

 

第一课:文件类型与一级目录:

1Linux文件类型:

 

Linux文件类型

表示

颜色

目录文件

d

蓝色

链接文件

l

亮蓝色

特殊(设备)文件

c(快设备) b(块设备)

黄色

普通文件

-

黑色

软件包


红色

可执行文件


绿色

 

2Linux一级目录:

 

名称

注释

/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:代表相同的文件出现过两次,用于备份,复制并同步,(缺点:增加一倍的空间)

 


3vimvi

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-999redhat7

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

 


2history

1.  !v history从下往上自动执行第一个以v开头的命令

2.  !302 history自动执行第302条命令

3.  ctrl+l --》 敲命令,就会快速匹配history里面原先敲过的命令

4.  history最多保持1000条历史记录,用户的全局配置文件有记录/etc/profile

5.  history -c 清除当前命令记录,俗称:释放内存

 


3shell变量:

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  全部保存,不显示

 


6for 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/logLinux所有日志存放目录   ###

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(左边)

 

awkgrep+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内容中的windowsLinux之间的red替换成hat

sed /windows/,/linux/s/red/hat/g zhouyuxia

 

for3:同时替换

sed -e ‘s/windows/linux/‘ -e ‘s/red/hat/‘ zhouyuxia

 


第六课:进程及计划任务

 

1Linux系统的启动过程:

1.主机启动自检

2.执行硬盘MBR中的启动引导器:/boot/grub/grub.conf(做Linux下引导系统)

3.加载Linux内核程序

4.执行INIT进程---/etc/ininttab

5.进入系统默认运行级别并执行相应的服务

6.允许用户进行登录

 

主机上电  --》  主板  --》  BIOS  --》  硬盘(柱面,磁道,扇区:512个字节)(关机之后回到起始位,512个字节用于引导系统:MBR(主引导扇区))

MBRmaster boot record  446+16*4+2=512 B  0柱面0磁道1扇区,为硬盘本身产物,并非存于系统层面

446:主引导记录

16*4:分区表

 


2、系统启动主配置文件的讲解:

hd00hd代表硬盘,0代表第一块硬盘,0代表第一个分区

hd00)(物理层)=sda1(逻辑层) 但是不能用sda1(逻辑层)替换(hd00)(物理层),但是用/boot替换,但是强制性格式(hd00

 

root hd00

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 hd00

   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   ---干掉MBR512字节  

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 000

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:防止删除

 



本文出自 “淼先森” 博客,谢绝转载!

RHCSA全课程讲解124(1-7)