linux rhce 学习笔记

Linux redhat 5.0

Linux 的安装

 

 

/dev   设备文件夹例如硬盘 CDrom

/sda   sda  认为是SD设备的a(第一个设备)第二个sdb(第二个设备)

linux把硬盘识别成,HD SD

       IDE借口的硬盘是HD(系统识别为HD设备)

       SATASCISUSB接口的硬盘认为是SD设备

 

Linux的分区

Standard partition (标准分区)->添加分区 

 

VLM分区

 

挂载点

 

要让一台计算机起来起码2个分区  最多4个分区,后面的分区在extended扩展分区里面扩充

 

1 根分区(exzt4   /   用一个斜杠表示根

linux来说默认系统格式为ext4

 

2 swap分区  虚拟内存   推举大小为真实内存大小的2-3

 

在多一个分区

/boot 分区非常重要,用与系统启动会变为sda1分区

/home分区用于放用户文件

 

Swap分区是在 extended分区里面分的

 

 

Linux是由软件和内核组成的,在分好区以后,会出现安装软件的界面

Linux版本的看法  

Uname –r

比如说2.X.XXXX  2.5.3456  当中中间这个数是奇数还是偶数,奇数是测试版偶数是稳定版。

 

 

 

 

 

 

 

第二章 linux使用基础

登陆到linux系统

1虚拟控制台给予命令行

2 Xwindow界面

 

Linux 登陆是默认强行使用密码登陆

 

X11                                                X是协议 11是协议版本

Xwindows                                             Xwindows就是为了实现X协议的软件

Gnome/KDE                                         这两个桌面是建立在xwindows平台上的,优化了Xwindows

 

 

如何切换虚拟控制台和图形化界面

 

终端有六个1-6

Ctrl-Alt-F[1-6]   分别是tty1~tty6

对于linux来说可以通过切换进程来实现多用户使用,windows只能单用户

 

图形化登陆

Ctrl-Alt-F7 或是 startX

 

 

修改口令

 

Passwd用来修改口令,会影响

/etc/shaodow文件  影子文件

 

Passwd         默认修改root口令

 

Passwd User    修改普通用户口令

 

 

切换用户

Su 命令来切换用户

Su – 会同事开心一个新的shell环境    就是说加- 参数的时候,新用户会使用新的环境,而不会继承上一个用户的环境

id命令显示用户信息

 

 

 

第三章

如何运行命令

 

一般一下语法格式

 

命令                 【选项】               【参数】

 

注意:单个字母充当选项的时候可以用单一的一个破折号

 

这个单词充当选项的时候可以用两个破折号   列子 –help   ls –all

 

多个命令同时运行的时候可以用分号

 

列子:Touch abcls –la

 

 

命令帮助信息

Whatis    // whatis ls

--help    //date  --help

Man    // man date

/usr/share/doc    //查询数据手册

 

 

                                               第四章  浏览文件系统

 

1了解文件系统概念

2复制和删除文件

3创建和查看文件

4命令与文件查询

5判断文件的类型

 

 

一切皆为文件  一个倒立的书就是linux文件系统的组织结构

 

文件系统包括一个磁盘光盘呢闪盘等其他存储设备或分区的目录结构

 

 

FHS 标准   因为个个发行版本不容,为了同一思想有人提出了FHS标准,接在告诉用户已经安装的软件通常存放的目录

 

/                                               /boot存放开机信息

/home 用户家目录

/root  根用户的家目录

/dev  设备文件目录

/etc   配置文件目录

/mnt  临时挂在目录

/tmp  临时目录

 

 

/user                                      /user/bin   绝大部分用户可以使用的命令

                                                 /usr/sbin   系统可执行文件目录

                                                 /usr/src     一般源代码存放的目录

 

 

/var (通常存放数据)  /var/log     存放日志信息

                                                 /var/spool   队列目录

 

 

 

文件与目录的引用

绝对路径

相对路径

 

列举目录内容

 

Ls

Ls –a   //以长格式显示文件并且更加详细

Ls –l    //

Ls –R   //显示子目录下的文件  递归

Ls –ld   //

 

带点的是隐藏文件或者目录

 

Ls 显示下,黑色是文件蓝色是目录,红色是坏文件,绿色是可执行文件

 

Copy文件

 

Cp  option   源文件  目标文件

 

-r  递归copy 当复制一个目录的时候一定要加一个r参数,这样才能copy里面的数据

-p   保留权限  copy的时候保留当前文件的系统权限。

-f   强制copy

-I   由于 alias文件号里面已经写好了 cp = cp –I 所以在copy的时候没有提示出是否覆盖

 

如果目标是一个文件,并且文件存在的话将会覆盖掉目标文件

 

如果目标是一个文件,并且文件不存在的话相当于备份

 

如果目标是一个目录,并且目录存在的话将会cp

 

 

Mv命令  移动工具

Mv  a.txt b.txt

Mv a b 将文件a 移动到当前目录并且更改名字为b

 

 

Rm命令

 

Rm

 

 

Dd  备份命令  约等于 CP

 

dd命令可以创建一个自定义大小额文件

 

用一下命令:

 Dd if=/dev/zero of=/tmp/a.txt bs=1M count=4

 

Bs是单位大小

If  是源

Of 是目标

Count 是个数

 

同事dd命令也有一个备份的作用

Dd if=/tmp/a.txt  of=/home/a.txt

 

Madir 建立新目录

Touch 建立文件

Rmdir  删除空目录

Rmdir = rm –r 删除真个目录

 

命令和文件查询

 Which命令,在path变量指定的路径中,搜索某个系统命令的位置。并返回第一个搜索结果,找出命令的绝对路径

 

Which [命令。。。]          //还有一个where is

如: which ls 

显示结果为  /bin/ls

 

可以通过 echo $PATH 查看环境变量

 

 

 

Locate命令 定位命令

是一种基于数据库的范查询

Locate 搜索

 

如果用命令 locate redhat 这个命令将会返回所有redhat文件名的文件

由于是基于数据库的查询,所以需要用updatedb这个命令来更新数据库

 

Find 命令

 

查询任何你想查询的东西  很精确的查找

根据权限

 

Find –perm 644  //查找当前目录下权限为644的文件

Find –perm -0444 //查找当前目录下所有文件的权限为444的文件只要有一个满足就ok

Find –perm +0444  只要权限三个项中有一个满足就显示

根据文件大小查找  //find-size 4m

                                       //find –size -4m (小于4M)  也可以大于4M

 

Find -name | iname(忽略大小写)

不指定location的情况下只在当前目录查找

Find –name passwd

Find –user:XXX –groupXXX  可以查找文件的属组合属主的文件群

// find –user root –group root   查找出所有属组为root的属主为root的文件

 

find –user root  -o –group root  //-o参数是表示or,只要有一个满足的就ok

 

 

文件的集合操作:

Find –size 4M  -exec cp{}  /var  \;  

查找出当前目录下所有的大于4M的文件并且copyvar目录下

 

File命令

文件类型的查找

 

 

第五章用户群组权限

 

关于用户

 

etc/passwd  放的是用户

etc/group   放的是组

 

一个用户对饮一个UID 可以从/etc/passwd 中查看

 

Linux用户三大类

UID大于500 普通用户

UID小于500系统用户

根用户的UID0

 

用户密码保存在 /etc/shaodow里面

 

第一字段用户名

第二字段密码位  表示用户有密码但是不保存在里面

第三字段 UID  用户ID

第四字段 GID  群组ID

第五字段没有任何意义,说明信息

第六字段家目录

第七字段登陆shell 环境

 

/etc/skel文件夹下里面保存用户登陆的模板

 

当系统建立了一个用户紫铜自动帮该用户建立一个群组组名就是该用户名该组就是该用户的主要组

 

系统只认识UID  不认识用户名字和组群

 

                                                                           关于群组

 

一个组队因一个GID

 

有效组和初始组   这段没听懂

 

Useradd  建立用户

-s                                                                               //只我可以制定一个用户shell环境 

-g    例子    -g :组名: gid        //我可以指定它的主要组

-G                                      //指定用户次组

-m   不指定家目录

-d    指定家目录

-c    改变第五字段注释

 

 

Userdel –r 【用户名】  //删除一个用户 –r选项是删除该用户家目录

 

例子   useradd –s /sbin/nologin user1  建立一个用户并且不让用户登陆shell

 

建立组命令   groupadd

 

列子:groupadd openlab

新建一个用户并讲该用户加到openlab

 

例子Useradd –g openlab user2

 

Gpasswd命令可以将一个已有的用户加入到一个组

例子:gpasswd –a tom openlab   //吧用户添加入一个组

      Gpasswd –d tom openlab   // 吧用户提出一个组

 

 

Groupdel 删除一个组

 

 

权限对于权限和目录的意义

读写执行

 

R  w   x

 

 

文件级别权限

 

  读取文件内容

  增加删除编辑文件内容

执行  可以被系统执行

 

目录级别权限

   可以查询词木楼下的文件,有读取目录结构的权限

    无法建立新目录

执行   让用户有进入该目录的权限   无权限的话无法进入此目录

 

 

例子:   - rw- r-- r-- . 1 root tom 0 apr 19 14:32 a

第一个杠是文件类型有- (文件)D (目录) l(连接文件)

2-10 是文件的权限

11 这个数字表示连接

后面是所属用户

后面是所属组

在后面是创建时间

在后面是文件名

 

Chmod [R] 模式文件

 

U   owner

G   group

O  other

 

改变文件的权限

例子: chmod u=rw redhat   redhat这个文件的owner权限改成rw

 

 

更改文件的拥有者

Chown  拥有者名称文件名称

 

例子:  chown linux file

Chown  拥有者名称: 拥有组名称文件名称

例子:  chown linux:linux file

 

Chown 只改拥有组  文件名称

例子:  chown :linux file

 

 

Chgrp  修改组群权限

 

 

第六章  使用bash shell

通配符的概念

 

星号   *   匹配多个字符

问号     匹配单个字符

0-9    匹配一个数字范围

abc    匹配列表里面的任何字符

^abc   匹配列表以外的字符

 

Tab命令补全建 

补全命令和已经存在的文件或目录

 

例子:

$ ls  myfil

$ ls  myfile

Bash里面存放了历史命令

history命令来查看记住的命令列表

 

通过环境变量

Vim /etc/profile  这个配置文件是一个初始化的脚本变量

看里面的histsize=1000,这一行是保存history命令大小的

每一个用户都有自己的history 命令,

它保存在  cd  ~/.bashrc 

                     Ls –a

                     有一个叫bash_history的文件,这个文件是保存历史命令的。

 

如何调用history里面的命令

 

如!107   //就是调用history里面的第107条命令

两个!!表示上一次运行的命令

搜索模式:

如何去搜索里面的命令

不需要再history命令里面 //Ctrl +R  然后会跳出一个冒号提示符

然后在按命令开始,搜索模式会从下往上搜索最进最匹配的一个命令

 

 

 

波浪号     ~ 表示一个主目录

 

反冒号  `    在反冒号里面的命令会先被执行

 

如: echo mykernel is `uname -r`

等同于 cho mykernel is $(uname -r)

 

命令扩展  $()

 

括号扩展   {}

 

实用快捷键

Ctrl+a   //将光标移动到命令最前

Ctrl+e   //将光标一定到末尾

Ctrl+u   //删除至光标头

Ctrl+k   //删除至光标尾

 

 

脚本基础

 

Shell脚本的目的就是为了简化工作增加效率

 

脚本怎么做呢

1:用vi创建一个文件  .sh结尾的只是告知这个事shell文件

   第一行必须包括shebang序列 #!

#号建加注释

 

 

2:是脚本可执行

   Chmod  +u *.sh   //给执行权限

 

例如

 

#!/bin/bash

/bin/echo  hello word

 

 

第七章标准I/O 和管道

。把输出重定向到一个文件

。使用管道裂解命令

。用for循环来逐项处理数值

 

STDIN

STDOUT

STDERR

正确的输出(1:

错误的输出 (2)

正确和错误输出(&:

比如说乱打一个命令然后用 2>b.txt ,这样一个错误的errormessage就会导入到b.txt文件中了

 

 

>>符号能追加输出到文件中

 

又如 &> 可以将所有正确信息和错误信息都输出到文件中

管道符号

 

用来连接多个命令

如:命令1|命令2|命令3|。。。。。。

 

 

如果用管道符号默认的情况下只会将离管道符号| 最近的命令执行出来

 

cal 2007; cal2008|more

只会显示2008的日历

 

所以要用小括号抱起来

如:(cal 2007;cal 2008)|more

这样就都会显示了

 

重导向到多个目标(tee

 

$ 命令1| tee out |命令2

 

例子: cat /etc/passwd  | tee out|grep ^ root

Tee 命令只不过是将输出保存到一个文件,这个文件被建立在当前目录下。

 

 

从文件中导入STDIN

 使用来重导向标准输出

 

$ tr ‘A-Z’ ‘a-z’ < .bash_profile

 

FOR循环

 

格式:

 

For  变量 in 变量值

 

Do

 

 

Done

 

例子:

For  user  in  $(seq 1 20)     //{1..20}

Do

         USER=admin$user

Useradd &user

         Echo ‘123’ |passwd –stdin  $USER 

//passwd有一个功能就是讲标准输入的值变成文件名如passwd --stdin

Done

 

 

 

文本编辑工具

抽取文本的工具

 

Less cat               文件内容显示

Head tail         文件截取

Cut                            按照列来抽取

Grep                         按关键字抽取   Grep 是按照关键字抽取行

 

 

Cut命令选项

-d 按照一个字符来分割文件把它分成几个段  如冒号叹号之类  –d

-f  按照第几个字段  –f4

-c  按照字符来分割

如:Ifconfig eth0 | grep ‘inet addr:’ |cut –d: f2 | cut –d ‘ ’  -f1

 

Grep 命令选项

-v   来显示不包含模式的行    其实就是取反不包含关键字的所有值

-I   不区分大小写

-color 带颜色   grep –color=auto  关键字

 

例子:Cat /etc/passwd | grep – color = auto root

 

Tail

 

分析文本工具

 

wc 命令

按照文本统计 wc  字数字行名字之类的

 

例子 wc  /etc/passwd

112  131   4548  /etc/passwd

 

wc –help来看具体命令

里面参数很多

 

Sort命令

整理文本

-r 由上往下真理

-n 执行案数字大小整理

-t c 选项使用 c 作为字段定界符

 

例子:sort –t:  -k4 –n –r /etc /passwd

          –t: 按冒号分割 

                     -k4 第四个段

                     –n按照数字大小排列

                     –r由上往下

 

淘汰重复的行

Sort –u

 

 

比较文本用来比较两个文本的区别

Diff命令   path 命令

$diff  文本文本2

 

 

 

用于复杂搜索的特殊字符正则表达式

 

^ 代表行首

$ 代表行尾

 

主要是在less sed  grep 中使用

 

 

Sed awk 是脚本最经典   回家仔细要看啊!!!!!

 

 

 

第九单元 vim 高级文本编辑器

Vim 编辑器的三种模式转换图   vi的区别就是有颜色

 

命令模式

i/a/o  插入模式

:     底行模式

:wq保存退出

底行模式

插入模式

                                              

 

 

 

 

 

 

 

 

I: 在当前光标插入

a: 在光标左边插入

o:在光标下一行插入

 

G :直接跳到文本最后一行

YY:拷贝

Dd:删除

U:撤销对当前的改变

 

 

末行模式

Wq  保存退出

Q   退出

强制退出

Set number  显示行号

100G :直接定位到100

 

 

第十单元  基本系统配置

Linux 会把网卡以一种形式命名

 

Eth0  eth1等等

 

修改网卡

 

System-config-netowrk-tui  出现网络配置界面可以进行配置

Service network restart 重启网卡设置服务

 

etc目录下的/sysconfig/network-scripts

这个地方有很多网络配置文件

vim 编辑网卡配置信息也是可以的配置好一定要启动网络

Vim etc/sysconfig/network-scripts/ifcfg-eth0

 

Ipaddr=192.168.0.66                                //添加ip地址

Netmask=255.255.255.0                         //添加子网掩码

Geteway=192.168.0.1                              //添加网关

建立子网卡

 

进入到network-scripts目录

然后copy一封 eth0这个文件命名为eth01

然后编辑就可以了

 

route –n查看默认网关

添加一条默认网关

Route    add   default  gw  192.168.0.1

通过编辑文件 

 

添加删除网络

Route   add   -net   127.16.0.0 netmask    255.255.255.0  eth0

Route   del   -net   127.16.0.0 netmask    255.255.255.0  eth0

 

修改计算机名称

Hostname

Hostname  example.com   //修改计算机名称  

下次开机就无效了,要写到配置文件

Vim /etc/sysconfig/network

 

很多的配置文件都在sysconfig这个文件夹下

 

/etc/sysconfig/Resolv.conf   //这个文件里面保存的是dns地址

 

如何添加一个本地host文件

/etc/hosts

这个文件  windows一样的

 

考试的时候先看三个网络配置文件,避免有排错题目

 

 

 

设置系统日期及时间

同步系统时间

System-config-date //跳出一个系统文件然后选择 network time protocol

删除多余的加上老师指定的加上去就ok

 

 

 

第十一章  调查和管理进程

liinux 来说当打开一个process的时候,系统会非配一个叫PID的号

无论做什么操作,基本上都会触发建立一个进程。

 

 F  S  UID  PID  PPID  C  PRI   NI   ADDR   SZ   WCHAN   TTY   TIME   CMD

PID进程号

PPID子进程

PRI  进程优先级  越小越优先

Ps   //查看进程

-l    list方式显示

-a   所有终端中的进程

-ef  显示所有进程

-u   显示进程所有者的信息

-x   不连接终端的进程

 

 

通过 ps tree的命令可以看到进程树

通过 top –d 时间  这个命令可以实时查看系统进程

 

可以自定义ps的显示模式

如: ps –o  pid,cpu

 

 

信号-----控制进程

先用ps –ef |grep 关键字  查找到进程

Kill 命令

Kill –1 进程号   表示重新加载一下此进程

Kill -15进程号   表示正常结束进程

Kill -9 进程号    表示直接关闭进程立即终止

 

Killall 信号 comm.   删除所有进程

 

优先度调整

 

Ps –o comm.,nice

Nice   -n 5   修改还没出现的优先级

Renice   5 PID  修改已经存在的优先级

 

Gnome-system-monitor 图形界面的监控工具

 

 

作业控制

在后台进行进程

在命令行后添加一个和号 &   如: firefox&

 

列举作业

Jobs

可以列举出来当前作业的作业号码

 

Fg 将作业放在前台

Bg 将作业放在后台

 

Kill -【信号】【%作业号码】

 

调度进程

等于windows的计划任务

 

At 命令  一次性

Crontab命令   多次

 

分时日  月周

 

 

//未上课内容

 

Corntab命令

Test 命令  -f   

                     -d

          -x

IF语句

 

Awk 两个特殊的变量 NR NF 这个需要回家好好研究

 

 

单元12  --配置BashShell

Bash变量

环境变量

别名aliase

Bash扩展

防止扩展

Bashg启动任务 profile

Bash 启动任务bashrc

Bash退出

 

 

Bash 变量赋值方法

变量名=  格式来设置

$变量名来引用变量

 

例子: $ echo $Hi

 

Set 显示出系统中所有的变量

如: set  | gerp PWD

 

显示系统中的环境变量 env命令

Env只显示环境变量  不显示本地变量

环境变量支持所有用户,本地变量只能够当前bash下用户使用

 

通过export 变量名这个命令父shell的变量提升成环境变量

 

PATH变量的变量值

 

PATH=$PATH:/sbin/   将一个路径/sbin 加到PATH变量中

 

某些通用变量

 

 

PS1

PATH

 

 

 

别名  aliase

相当于快捷方式

Alias dir = ‘ls -laF’

 

单使用alias命令会显示所有已设置的别名

使用alias命令和一个别名的名称会显示别名的值

 

$alias dir

Alias dir = ‘ls -laf’

 

unalias命令来取消所有别名

登录shell和非登录shell

source命令来直接运行shell脚本

这样在不用 chmod +X的条件下也能运行shell命令

 

也可以用 . abc.sh  这样的方式来运行shell脚本

或者 bash abc.sh 这样的方式

 

他们的区别在于

Source     在当前shell

.                    在当前shell

Bash       自动开一个子shell 运行运行完以后再推出子shell

 

 

Bash启动任务 profile

保存在 /etc/profile  这个里面存放着全局变量

~/.bash_prifle  (家目录下)                   这个是用户的文件配置文件,放的是个人配置在启动的时候会读取这个文件,如果在里面加一个cal命令在登陆的时候会执行这个cal

 

Bashrc 保存在/etc/bashrc

~/.bashrc 这个文件

 

非登录shell只读取 bashrc这个文件

而登陆shell 读取四个文件

 

使用read命令来接受输入

 

使用read来吧输入值分配给一个会多个shell变量

-P 指定要显示的内容

 

Read –p ‘myname is :’  myname

If [$myname = ABC];

         Then

           Echo you name is ABC

Else

  Echo you name is not ABC

fi

 

 

 

单元14 网络客户端

links 这个命令可以看一个网页,比如说 links www.google.com.cn

Wget命令直接加URL路径就可以下载了

Wget –s 192.168.0.66 将一个也页面抓到本地

这章不是很懂!!!

 

15 用户组群和权限方面的高级课题

验证信息被保存在纯文本文件中

 

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

 

newgrp命令来修改有效组的位置

效果是如果一个用户加到linux组当该用户创建一个文件的时候默认该文件的有效组为该用户名称的group,可以通过 newgrp这个命令。

 

系统用户和组群

系统用户的id小于500

 

  mail用户等

 

监控登陆

W命令

List lastb

 

User命令显示当前登陆的用户

 

默认权限

目录的默认权限是777 减去umask

文件的默认权限是666减去umask

Umask 的设定方法就是 umask命令

 

布局特权的用户的umask002

通过该umask值可以修改自己创建的目录或文件的权限

 

例子 umask  033

 

但是实际上权限还是有优先级的还是以读写执行权限 

执行权限最高写权限其次读权限最低

就是说如果是666-033的情况下

不会变成633 而是自动加1变成644权限。

 

可执行文件的特殊权限

Suid:使用该命令的所属用户的权限来运行,而不是命令执行者的权限

Sgid:使用命令的组群权限来运行

 

Suid s

 

实例  例如说 shadow这个文件里面保存的是用户的password

当用ls 看了一下这个文件发现根本没有 write的权限

那一般用户是如何修改的呢

Chmod u+s 文件名   修改这个文件的S权限

 

-rwsr-xr-x root root XXXXXXXXXXXX  ./etc/passwd

ls –l命令看passwd这个命令的时候发现里面有一个S权限

这个权限的意思就是如果一个非root的用户执行passwd这个命令的时候

root用户暂时借用root权限的针对passwd命令的使用权限

所以普通用户就能修改那个shadow这个文件

 

sgid  这个事群组的S权限

如果希望建立一个目录,它的拥有组是tom ,然后希望在在该目录里面建立的所有目录的使用组都为tom

 

通过命令 chmod g+s 目录名  //修该该目录的组sgid

这个时候目录的权限为 drwxr-sr-x

 

冒险位粘贴位

其实就是一个文件夹的默认T权限

 

当一个目录有T权限了,就代表该目录里面自己建的文件只能自己读写编辑其他用户只有读权限

 

但是这个也只是在建立的时候,通过修改权限其实也是可以让别人看权限的

 

 

第十七章基本的系统管理工具

RPM软件包的安装

 

红帽自己退出的

Rpm –ivh rpm   安装软件包其实就是那么简单

Rpm –e 删除软件包

Rpm –qa //查看系统中已经暗转的所有rpm软件包列表

图形化界面  system-config-packages 这个命令打开图形化界面

Rpm –qf  查看该文件属于哪个软件包

 

软件包封装类型

Rpm

Deb

Tar.gz

Tar.bz2

.sh    .bin

 

 

tar包软件的安装方法

第一步解压tar

Tar  -zxvf  包名 –C /usr/local   //-C是指释放到个目录

 

第二配置文件

进入解压缩的目录然后找到configure 或者config

./configure  --prefix=/usr/local/nginx      指定安装目录为/usr/local/              --enable –ssl//添加模块

                                                                          

第三吧源码包转换成二进制

Make

 

最后安装

Make install

 

 

构建YUM仓库服务

这种安装可以自动解决包于包之间的依赖关系如果想要某些软件可以自动从yum里面下载

 

Yum客户端配置文件

Vim k/etc/yum.repos.d/XXXX.repo

仓库文件

说明文件

 

在此之前必须要mount 我们的cd 为定位yum

否则就要指定外部ftp之类的源

[XXXXXXXXXXXX]

Name=XXXXXXXXXX                            m//yum源名称

Baseurl=file:///mnt/Server               m//本地yum源路径或者网络yum

Enable=1                                                m//开启YUM

Gpgcheck=0                                          m//关闭gpg校验check

保存退出

 

然后用yum install 软件包名称就ok

Yum groupinstall

Yum remove 包名称 –y

 

 

分区和文件系统

默认文件系统 ext3

第三季扩展linux文件系统

 

其他常见的文件系统  ext2

 

MBR

 446      64    2

 启动     分区  校验位

 

 

分区的概念就是在磁盘创建文件系统

创建以下的东西 surblock 超级块    记录的是blockinode

                             Block                   数据块     存储数据的值

               Inode   节点      是一个记录存储文件的属性和指针

Ext2 索引式的文件系统

 

如何看一个文件的innode节点号

Ls  –I 参数可以看到innode

 

系统是如何读取一个文件的?

所有的文件属性都是保存在innode表中

1:先找innode

2:读取该文件属性的权限范围如果没有权限就不让用户读取

3:发现当前的登陆者是管理员,只读取该文件权限范围然后读取指针,然后指针指向的block里面才有真正的值

 

 

如何查看当前文件的系统

Tune2fs  -l  /dev/sda1  查看/dev/sda1下面的文件系统

 

Ext2

会显示一下信息

File system os type

Inode count

Block count

Block size

Resolved block uid

Resloved block gid

当分区的时候如果该分区的大小为1G或一下,则默认block块为1k

如果大于1G的话则默认block块大小为4k

可以指定block的大小为2K

 

 

Ext3  叫做日志型文件系统

在硬盘里面创建一个日志系统,然后在写数据的时候先写到日志区然后在保存在数据区域里,这样有一定的安全性

 

会用8inode来当做日志

 

 

如何提升ext2系统到ext3系统

Tune2fs  -j  /dev/sda1

 

如何查看那当前分区的文件系统类型

Blkid  /dev/sda10

 

 

对于目录来说 block里面记录的是:目录里面的文件与inode之间的对应关系

 

 

七种基本的文件类型

 

Ls –l

 

-          常规文件

目录

I   符号链接

B   块特殊文件

C   字符特殊文件

P  

S  

 

 

链接文件

1:硬链接

2:软连接   也称之为符号链接或者快捷方式

 

Ln  file file1  //把文件file 硬链接到file1中他们的inode号码是一样的

当删除file文件则file1自动被删除

 

Ln –s file file1 //把文件file 软连接到file1中文件的inode号也不一样,这样系统会认为并不是一个文件软连接文件其实就是一个快捷方式,如果删除快捷方式的话主文件是还可以使用的,但是如果删除主文件,则快捷方式就失效了。

 

 

 Df -  报告当前磁盘的容量

 Df –Th 磁盘参数

 

Du  file  //告知文件占用多大的空间

Du /etc       显示出etc文件夹下所有文件所占用的空间

Du –sh /etc    直接显示etc所占大小

 

 

Df –TH G问单位显示磁盘参数

 

也可以用 system morntor来看一下

 

 

挂在 mounting 值是外来的文件系统该看起来如同事主目录的一部分

 

如果在/etc/fstab 或则/etc/mtab文件下的话没有写挂在关系则需要手动对应挂在

 

Mount /dev/sda10  /abc/

      挂载源     挂载点

 

Fstab这个文件在每次开机的时候就自动加载了,所以我们不需要手动挂载

 

而如果想上面个那样的挂在,如果不手动修改fstab文件的话则每次都需要手动加载(用mount)命令

 

 

手动修改fstab文件以后,在用mount命令生效这次设置则下次就会自动加载

 

 

 

/dev/sda10                       /abc                    ext4                    default                        0 0

默认情况下在分区的里面的default选项有以下的权限

 

Rw   读写

Exec  执行

Ro    只读

Dev  设备文件创建权限 

 

Mount –o remount /abc  //这条命令重新读取fstab里面的/abc这一套参数并且生效

 

归档文件盒压缩归档

 

linux gzip bzip2两种压缩格式

 

 

Gzip方式

如何在不解压文件的情况下gz文件

Zcat install.log.gz

 

如何解压 gzip

Gzip  -d install.log.gz

如何压缩 gzip

Gzip  install

 

 

Bzip方式

Bzip2 install.log

Bzcat 查看压缩包内容

 

 

Unzip命令也可以解压zip格式文件(windows下)

 

归档文件会把很多文件放在一个目标文件中

 

Tar

 

归档通常被压缩

压缩文件时应用模式

 

-c  创建归档

-x  从归档中抽取文件

-t   列举归档

 

-f 规定那个名称:文件归档的名称

 

tar zcvf [归档目标文件.tar]  [归档源文件(你想那些文件被归档)]

 

 

 

 

系统初始化启动流程

 

启动自检

选择第一个启动设备

首先读取第一扇区前64字节找grub ,通过grub找到位置

启动内核

只读形式挂在

启动配置文件

 

Chkconfig –list  servicename  

 

启动破密码没学

 

 

 

 

GRUB 启动加载小程序

认识一下grub.conf这个文件的功能

 

今天需要把一个grub.conf写出来。

 

/etc/grub.conf

 

主要选项

 

Timeout=5    默认几秒钟开启系统

Splashimage =  启动图片

Title  XXXXXXXXXX   显示的title

Root  (hd0,0)    在装系统的时候 linux 把机器识别成 hd vd sd三种  grub把所有设备都认为是harddiskhd0,0代表是第一个硬盘第一个分区  root不代表根,其实是等于boot分区

 

Kernel /vmlinuz-2.6.18-194.el5  ro  root=LABEL=/ rhgb quiet

Ro 代表只读

/其实代表的不是root boot分区,其实kernal是放在 boot分区里面

 

 

initrd /initrd-2.6.18-194.el5.img 里面有一些驱动程序,让系统启动系统。

(这个叫小镜像)

Mkinitrd /boot/initrd-$(uname -r)

 

驱动程序在根下面的 medules下的 kernel 下的 drivers

Ls一下里面都是驱动的模块。

 

kje

如果grub.conf文件删掉了可以通过手动方式写一个

 

Root hd0,0

Kernel /vmlinuz-2.6.18-194.el5  ro  root=/dev/sda3

Initrd /initramfs-2.6.32-71.el6.i686.img

 

然后boot就能启动系统.

 

 

Init 6  这个命令是重启命令

 

 

/boot/文件夹下比较重要的是 grub.conf ,内核,小镜像

如果删掉了系统就启动不来了

 

 

用光盘启动救援模式

 

将光盘放入机器

然后按esc进入安装界面

在命令行里面输入 linux resuce 进入救援模式

然后选择语言和键盘

然后出现是否启动网络功能

然后一路回车就进入救援模式

挂在的时候是无法挂在到boot里面

所以救援模式默认为 chroot/mnt/sysimage 这个伪根

 

这个时候要change一下根

chroot /mnt/sysimage/

然后 df –h 就能看到系统根了但是其实也是伪根

 

这个时候系统是没有内核的,然后我们需要装内核

1:先挂在cdrom    

2:  找到kernalrpm

3:用 rpm kernel名称  --force 这个命令装内核

 

然后就发现只有grub没有被装

grub-install  /dev/sda  默认按抓个grub到第一个扇区

 

 

然后手动写一个grub.conf

Default

Timeout

Title

Root

Kernel

Initrd

 

 

 

 

内核相关

内核的起源和proc目录

一般内核和小镜像都是放在boot下面

 

Uname –a来查看内核版本

 

Rpm –qa 查看已经当前已经

 

Lsmod显示当前已经安装好的模块

modprobe XX 用这条命令加载模块的时候会解决他们之间的依赖关系

modprobe –r XXX 在卸载模块的时候会把依赖关系给删除掉

 

 补充:为什么网卡叫eth0呢,有这个目录 /etc/modprobe.conf

        里面有很多是别名

 

Porc这个目录他事实的显示你内存当中的一些信息,比如内核参数等

 

 

/etc/syscrl.conf 这个配置文件里面上放的是一些控制配置文件,比如说内核的调优,网络的转换过滤等

在修改过这个配置文件以后通过sysctl -p 命令来生效

 

 

常用小命令

Uname

Uptime  看一下机器启动状态

通过 more /proc/cpuinfo 来查看cpu的状态

Vmstat  查看主要的 procs   memory  swap  io   system  cpu

 

 

W命令

Ps命令

Top命令

Free

Swapon –s

 

 

Lsof 这个命令能看是否某个端口被占用

 

Df –h  查看分区

 

Fdisk 分区表管理

 

Mknod 自己建立一个设备文件

一个设备有设备类型主版本号  次版本号三个组成

L

B块文件

C字符型设备文件

P 管道文件

 

Sed&awk

正则表达式

Grep命令

Sed&awk

 

正则表达式

-           *   匹配零个或多个字符

-           .    匹配任意字符

-           ^    匹配行首,或后面字符的非

-           $   匹配行尾

-           []   匹配字符集合

-           \   转义字符

-          \<\> 精确匹配符号

-          \{n\} 匹配在前面字符出现n

-          \{n,m\}  匹配前面字符出现n次与m次之间

-          ?匹配一次

-          至少匹配一次

 

 

Grep 命令选项

-c  只输出匹配行的数量

-I  搜索时忽略大小写

-v  显示不包含匹配文本的行

 Egrep  扩展grep命令可以匹配扩展正则表达式

 

 

Sed命令的基本用法  选项定位基本编辑

 

sed 选项命令文件

例如: sed  -n  ‘/root/p’  /etc/passwd

 

sed命令编辑成脚本

脚本文件首行是#!/bin/sed –f

 

 

Sed基本选项 

-n  不打印所有行到标准输出

-e  表示将下一个字符串解析为 sed编辑命令,如果只穿第一个编辑命令给sed

-f  调用脚本

 

例子:

Sed –n –e ‘/root/p’  /etc/passwd   -e ‘/root/=’  /etc/passwd

一条语句匹配两个查询

Sed文本的定位方法

 

X                          x为指定行号          // sed  -n ‘1,5p’  /etc/passwd

Xy                            指定从xy的行号范围

/pattern/          查询包含模式的行

/pattern//pattern/      查询包含2个模式的行

 

 

Sed编辑命令

打印匹配行

打印文件行号

A\ 指定行号之后追加文本信息  加一行

I\  在指定行号之前追加文本    加一行

删除

C 用新文本替换指定文本

R 重另一个文本中读文本

S 只用替换模式替换相应文本

Y 变换字符

G 全局匹配 global

 

 

网络配置

网卡的配置 dns客户端配置

 

我们所有的网卡  都已eth0 eth1开头

支持pppo  拨号接入

 

如何创建 pppoe拨号网络

System-config-network

Cd /tec/sysconfig/network-scripts/  会发现里面没有pppoe拨号

安装adsl      执行命令 adsl-setup (六中没有)

一路next 记下来会就发现多了一个pppoescript

 

-            ip –s link show eth0    \\显示网卡的流量进出状态

-           

-           

iptraf 这个包安装好以后,会有一个比较好用的命令

 

route –n //查看路由表

hostname的配置文件路径

/etc/sysconfig/network

 

Host文件放在

 /etc/hosts

 

service iptables可以查看防火墙

 

Service iptables stop停止防火墙  其实不是关掉是把里面默认策略停掉

Servie iptables  save 写好策略以后把自己写的策略写到防火墙里面

 

如何开启 selinux 使得永远生效

通过命令 

 

永久生效是     /etc/sysconfig/selinux 下吧

Selinux=enforcing 这条写进去

 

Netstat –ntlp   //查看服务到底运行还是没运行

例子:netstat –ntlp |grep 21

常用的端口号在

/etc/services

 

Linux 有一个比较好的抓包软件

Wireshark 这个软件可以通过yum源装

Yun –y install *wireshark*

 

文件系统管理

1 tune2fs –m 10 /dev/sda1   //调整预留block大小  预留百分之五的空间现在变成10%

2fdisk –l  分区功能命令

   1: fdisk /dev/sda

   2:m 帮助文件

   3: n  new 一个分区

        e  扩展分区

        p  主分区

        出现柱面大小  --- 不改变大小

        出现分区大小  --- 全部分为扩展分区,不改变大小

        N  再次添加分区  不会出现选择分区

         (改变大小)

        W 保存退出

     Partprobe   redhat5 可以用 6会报错)重新加载分区

     Partx –a  /dev/sda (重新加载分区到内核)

4cat /proc/partition 查看分区表信息

5mkfs –t ext4  /dev/sda5    //格式化分区

 

 

Fdisk 菜单操作说明

M:显示菜单和帮助信息

A:活动分区标记引导分区

D:删除分区

L:显示分区类型

N:新建分区

P: 显示分区信息

Q:退出不保存

T:设置分区号

V:进行分区检查

W:保存修改

X:扩展应用高级功能

 

 

 

如何删除一个分区  企业版本5很简单但是在6里面需要

Partx –d /dev/sdb   //-d 参数是值先将磁盘重内核但中抽出

 

More  /proc/partitions   查看当前硬盘分区情况

Fdisk /dev/sdb   //再次进去分区界面

    P  选择主磁盘分区信息

    D   删除分区选项

    5   (这里选择的是你要删除的分区的数字)

    W   保存

Partx  -a  /dev/sdb   重新加载分区情报到内核

 

 

Autofs 自动挂载(mount命令挂在)

 

分享目录的方式 

在服务器上分享一个文件夹叫open 然后在客户端用mount方式分享这个open文件夹

1Vim /etc/exports     //这个是nfs的住配置文件(以后在教nfs服务的时候要讲)

2:修改该文件:

挂载目录    权限

/open       *(rw.sync.no_root_squash)

3service nfs restart   //保存退出,重启服务 

服务器端做好了。

 

 

客户端如何挂载:

1  mount –t nfs 192.168.0.66:/open   /media/

远端的服务器开启了一个目录叫open  通过 mount命令挂在到本地的media目录

 

 

2:然后尝试写一个文件,但是在open这个文件夹里面没有写权限,因为nfs服务默认认为一般用户权限,其实通过 chmod  777 /open  这个命令修改权限就可以写文件了(在服务器端用root用户修改open文件夹的权限)

 

 

Autofs需要两个配置文件  auto.master   auto.misc(template文件)

环境要求:/open这个目录分享到/mnt/nsf分区下面实现自动挂载

1 vim /etc/auto.master  配置住配置文件  里面写上上级挂载点以及辅助配置文件(autoXXXX

     加一条记录:/mnt                                /etc/auto.nfs

这里意思是自动挂载是读取配置文件auto.nfs

2 vim /etc/auto.misc

    3Cp /etc/auto.misc  /etc/auto.nfs    copy这个模板文件

        Vim /etc/auto.nfs   //在里面加一栏

        例子:  nfs                                   192.168.0.1:/open

        Service auto.fs reload  重新加载配置文件  或者restart

    4:然后cd mnt下的nfs里面看看能否看到分享的open文件夹下的文件

 

Swap分区的添加和删除

 

1:新建一个空白的分区,用fdisk命令

    Cat /proc/partition  看看现在磁盘状态

    Fdisk /dev/sda

    N

   

2free –m 查看现在swap分区的状态

3mkswap /dev/sda11   //这个命令将改成划分的sda11这个空白分区变成swap分区

4swapon /dev/sda11    //让刚刚划分的swap分区挂起到swap里面

5 free –m 在查看一下swap分区

 

删除刚刚挂在swap分区

Swapoff /dev/sda11

 

第二种办法  dd命令创建一个文件将这个文件挂起为swap分区

 

 Dd if=/dev/zero of=/tmp/abc  bs=1m count=100   创建一个叫abc的文件大小为100M

Mkswap  /tmp/abc //将它格式化成swap分区

Swapon  /tmp/abc   //重新挂起swap分区

 

Swapoff  /tmp/abc  这个命令式将已经挂起的swap给卸载掉

 

 

Quota 磁盘限制

限制用户的磁盘使用情况

是这个功能生效必须要装quota

1:修改 /etc/fstab 让它支持quota的功能

Label=/home                     /home               ext3                defaults,usrquota     1,2

//使得home这个目录支持quota功能

注意如果开这个selinux的话无法支持quota

Setenforce 0(关闭selinux

2:生产一个磁盘配额控制文件

Quotacheck –cu /home/

-cu  c是创建create u是用户user 指针对用户这样在home目录里面会生产一个

Aquota.user文件

3:编辑文件   edquota –u tom /home  将这个quota加载到tom用户这个时候aquota.user才出现了

File system

Soft         hard                            block                inode

Soft是指警戒值,hard是限额  单位为k 自己换算

 

Dd if=/dev/zero of=/home2  bs=1k  count=100

 

 

你可能感兴趣的:(linux rhce 学习笔记)