Linux 的安装
/dev 设备文件夹例如硬盘 CDrom等
/sda sda 认为是SD设备的a(第一个设备)第二个sdb(第二个设备)
linux把硬盘识别成,HD SD。
IDE借口的硬盘是HD(系统识别为HD设备)
SATA。SCIS。USB接口的硬盘认为是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系统
1虚拟控制台给予命令行
2 Xwindow界面
Linux 登陆是默认强行使用密码登陆
X(11) 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 abc;ls –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的文件并且copy到var目录下
File命令
文件类型的查找
第五章用户群组权限
关于用户
在 etc/passwd 放的是用户
在 etc/group 放的是组
一个用户对饮一个UID 可以从/etc/passwd 中查看
Linux用户三大类
UID大于500 普通用户
UID小于500系统用户
根用户的UID为0
用户密码保存在 /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 文本1 文本2
用于复杂搜索的特殊字符正则表达式
^ 代表行首
$ 代表行尾
主要是在less sed grep 中使用
Sed 和awk 是脚本最经典 回家仔细要看啊!!!!!
第九单元 vim 高级文本编辑器
Vim 编辑器的三种模式转换图 与vi的区别就是有颜色
命令模式 |
: 底行模式
:wq保存退出 |
底行模式 |
插入模式 |
I: 在当前光标插入
a: 在光标左边插入
o:在光标下一行插入
G :直接跳到文本最后一行
YY:拷贝
Dd:删除
U:撤销对当前的改变
末行模式
Wq 保存退出
Q 退出
!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这个文件命名为eth0:1
然后编辑就可以了
用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命令
布局特权的用户的umask是002
通过该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 超级块 记录的是block和inode
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 叫做日志型文件系统
在硬盘里面创建一个日志系统,然后在写数据的时候先写到日志区然后在保存在数据区域里,这样有一定的安全性
会用8个inode来当做日志
如何提升ext2系统到ext3系统
Tune2fs -j /dev/sda1
如何查看那当前分区的文件系统类型
Blkid /dev/sda10
对于目录来说 block里面记录的是:目录里面的文件与inode之间的对应关系
七种基本的文件类型
Ls –l
- 常规文件
D 目录
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把所有设备都认为是harddisk,hd0,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: 找到kernal的rpm包
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
X,y 指定从x到y的行号范围
/pattern/ 查询包含模式的行
/pattern//pattern/ 查询包含2个模式的行
Sed编辑命令
P 打印匹配行
= 打印文件行号
A\ 指定行号之后追加文本信息 加一行
I\ 在指定行号之前追加文本 加一行
D 删除
C 用新文本替换指定文本
R 重另一个文本中读文本
S 只用替换模式替换相应文本
Y 变换字符
G 全局匹配 global
网络配置
网卡的配置 dns客户端配置
我们所有的网卡 都已eth0 eth1开头
支持pppo 拨号接入
如何创建 pppoe拨号网络
System-config-network
Cd /tec/sysconfig/network-scripts/ 会发现里面没有pppoe拨号
安装adsl 执行命令 adsl-setup (六中没有)
一路next 记下来会就发现多了一个pppoe的script
- 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%
2:fdisk –l 分区功能命令
1: fdisk /dev/sda
2:m 帮助文件
3: n new 一个分区
e 扩展分区
p 主分区
出现柱面大小 --- 不改变大小
出现分区大小 --- 全部分为扩展分区,不改变大小
N 再次添加分区 不会出现选择分区
(改变大小)
W 保存退出
Partprobe (redhat5 可以用 6会报错)重新加载分区
Partx –a /dev/sda (重新加载分区到内核)
4:cat /proc/partition 查看分区表信息
5:mkfs –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文件夹
1:Vim /etc/exports //这个是nfs的住配置文件(以后在教nfs服务的时候要讲)
2:修改该文件:
挂载目录 权限
/open *(rw.sync.no_root_squash)
3:service 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 配置住配置文件 里面写上上级挂载点以及辅助配置文件(auto。XXXX)
加一条记录:/mnt /etc/auto.nfs
这里意思是自动挂载是读取配置文件auto.nfs
2: vim /etc/auto.misc
3:Cp /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
2:free –m 查看现在swap分区的状态
3:mkswap /dev/sda11 //这个命令将改成划分的sda11这个空白分区变成swap分区
4:swapon /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