赞
踩
1、Linux 安装
准备工作
RHEL 5.5
Vmware基本配置
Linux安装及一般配置
磁盘的分区与目录挂载
硬盘零磁道位置的分区表记录为64B,因此一共可以创建4个主分区
实例:对30G硬盘,1G内存进行分区
/ 10G 强制为主分区
/home 5G
/usr 5G强制为主分区
/boot 500M
/var 8G
/swap 使用全部可用空间 交换空间的大小一般是物理内存的两倍
最后有一个100M多的空闲空间不需要理睬
2、Linux介绍
Unix
GNU – GNU is Not Unix
GCC
GPL – General Public License,通用公共许可证
Free software – 自由软件
Linux
Linux主要版本
Ubuntu – 用户桌面
RedHat – 使用最广,性能稳定,商业版,服务器
CentOS – RedHat的克隆版,免费
Linux的优点
性能稳定
较高的安全性和Bug的快速修复
支持多用户多任务
完善的用户和群组策略
资源耗费低
适合嵌入式应用
免费或费用低廉
Linux的缺点
专业软件支持不够
厂商支持度不够
标准化不足
使用不方便
3、Linux 桌面系统
图形界面登录
常用桌面系统 – GNOME、KDE(模仿windows桌面)
GNOME桌面系统演示
Nautilus使用 – 文件资源管理器
KDE桌面系统演示
Konqueror的使用
远程登录 - 一般将Linux作为服务器用
SSH – Secure Shell, 安全外壳协议
应用层和传输层上的协议
支持多种系统
加密且压缩传输
SecureCRT – 收费 – 破解,不安全
选中文本 -> 右击
会话选项 -> 外观
脚本 -> 开始录制脚本
右击 -> 克隆会话
右击 -> 锁定会话
Xshell – 免费 – 推荐使用
外观
中击 - 复制
文件属性 -> 终端 -> 编码 - UTF-8,可支持中文
4、Linux 文件和目录管理
文件系统架构
Linux文件系统具有层级性
1)文件或者目录起始于根目录“/”成为树状结构
2)最顶层由/开始
文件和目录名区分大小写
区分大小写,而windows不区分大小写
路径通过“/”分隔开
“..”表示上层目录
“.”表示当前目录
隐藏目录或者文件名以“.”开始
ls –l
ls –la
重要目录说明
home目录
1)root用户的home目录是/root
2)普通用户的目录是/home/user
3)su – xiang
bin目录
1)常用的可执行文件
2)/bin、/usr/bin、/sbin等
3)/sbin 存放的是只有root用户权限执行的指令
外部设备mountpoint
1)/media、/mnt
2)当检测到设备接入会自动产生挂载点
/etc,系统的配置文件 - 只有root用户可以修改
/tmp,临时文件
/boot,系统内核和开机必要文件
/dev,系统所有的设备文件
/usr
1)unix system resource
2)保存程序的相关文件
/lost+found
1)每个分区都会自动创建
/var、/srv
- /var存放数据库文件,程序执行过程中所使用的数据
/proc 虚拟文件系统,数据在内存中,如:系统内核、程序运行进程信息、网络状态
/lib、/usr/lib、/usr/local/lib - 存放一些可复用的函数或库
目录以及文件的命名规则
不超过255个字符
区分大小写
1)file、File、fILE表示不同的文件
除了/外,所有的字符都合法
1)避免文件名首字符使用+-.等
2)避免使用空格、制表符和@#$%[]()等
最好使用有意义的名称来命名
ls指令操作
ls,ls[options][file_or_dirs]
1)ls,列出当前目录内容
2)ls / ,显示根目录的内容
3)ls –a,显示隐藏文件
4)ls –l,显示详细内容
5)ls –ld,显示目录本身的属性
ls –l 相当于 ll
ls –a
ls –la
ls –ld
ls -lh
文件和目录操作
相对路径和绝对路径
1)绝对路径必须是/开头
2)相对路径一般比较短
切换目录
1)cd、pwd
2)cd ..,cd ~,cd –
3)su – 表示切换到root
复制文件和目录,cp
1)cp [options] file destination –p的参数不改变时间戳
2)cp [options] file1 file2 destination
3)cp -r dir1 dir2,复制目录
移动和重命名文件和目录,mv
1)移动操作类似于cp
删除文件和目录,rm
1)rm [options] filenames
2)-i,交互式
3)-r,递归删除
4)-f,force
新建文件和目录,touch,mkdir
1)cd、pwd
2)cd ..,cd ~,cd -
确定文件的格式
1)打开文件前确定格式使用不用的程序打开
2)file [options] filenames
cat – 打开一些小文件
分页查看文本文件,less – 打开一些内容比较多的文本文件(大文件)
1)less [options] [filename]
2)使用pgUp、pgDown翻页
3)g 到最顶端 G 到最低端
4)/search 进行搜索 n N
5)q
5、Linux用户、群组和权限
Linux安全性模型
Linux使用User和Group控制使用者对文件的存取权限
用户使用账号和口令登录Linux
每个文件都有owner,并且owner属于某个Group
每个程序都有owner和Group
用户概述
每个用户都有一个唯一的User ID
User的信息存储在/etc/passwd中
1)存储用户名和home目录等信息
如:less /etc/passwd
xiang:x:500:500:xiang.yu:/home/xiang:/bin/bash
x意味着要有密码才可以登录
第一个500表示UID
第二个500表示GID
2)/etc/shadow – 存储当前用户的密码
如:less /etc/shadow
root:$1$H7TmDsKo$O8fYNYKC7YOpLZEcPCg4u0:16890:0:99999:7:::
采用MD5的加密算法 – 单向的哈希算法
每个User都有一个home目录
User未经授权将禁止读写或执行其他User的文件
root用户解读
1)超级管理员账号,具有至高无上的权限
2)一般不要随便用root登录并操作系统
用户群组概述
每个User都属于一个Group,具有唯一的标识符gid
Group信息存储于/etc/group中
1)gid、成员等
2)/etc/gshadow 保存密码
系统会为每个User关联一个和User同名的Group
1)每个User至少存在于自己同名的Group中
2)User也可以加入其他的Group
在同一个Group中的成员可以共享其他成员的文件
权限的种类
只读权限,用r表示(read)
可以读取文件或者列出目录的内容(ls)
可写权限,用w表示(write)
可以写、删除文件或者目录
可执行权限,用x表示(execute)
1)可以执行可执行文件
2)可以进入目录并使用cd切换进入目录
没有任何权限,用-表示
注:当给某个用户授予读权限时,不要忘记授予执行权限
Linux文件和目录权限解读
d rwx-w----
1)目录
2)owner权限为可读写可执行
3)group权限为可写
4)others没有任何权限
- rwxrwxr-x
1)文件
2)owner权限为可读写可执行
3)group权限为可读写可执行
4)others权限为可读可执行
Linux权限验证流程
# whoami 显示当前用户
如何设置Linux文件和目录的权限
a) 字符表示法
1)chmod [-R] mode file
2)模式类别
chmod a= perm 去除所有权限,不影响子目录
chmod –R a= perm 影响子目录
b) 数字表示法
1)使用一组三位数字来表示
2)第一组代表owner的权限
3)第二组代表group的权限
4)第三组代表others的权限
c) 如何使用Nautilus或Konqueror设置权限
6、Linux 用户和群组进阶学习
用户的主要群组和次要群组
1)主要群组
每个文件必须有一个组所有者,因此必须有一个与每个用户相关的默认组,这个默认组成为新建文件的组所有者,被称作用户的主要群组。用户的主要群组在passwd文件中的第四个字段中定义。
2)次要群组
除了主要群组,用户也可以根据需要再隶属于其他群组,这些组被称为次要群组,在group文件中的第四个字段中定义
# groups 查看当前用户的所有群组,第一个是主要群组
用户的管理
1)useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明] [-d 家目录] [-s shell]
-u:制定一个特殊的UID给该账号
-g:指定一个主要群组的名称,会修改passwd文件
-G:指定次要群组的名称,会修改group文件
-M:强制不要创建用户家目录,系统账号默认
-m:强制建立用户家目录,一般账号默认
-c:passwd文件的第五个字段的说明文字
-d:指定用户的家目录位置,不要使用默认的值
-s:指定默认的shell,如果没有指定则默认是/bin/bash
2)usermod [-cdegGlsuLU] username
-c:该账号的说明文字
-d:账号的家目录
-e:指定用户帐号禁用的日期,格式YY-MM-DD
-G:修改次要群组的名称,会修改group文件
-g:修改主要群组名称
-a:与-G合用,可增加次要群组
-l:将当前账号的名称重命名为指定的名称
-u:修改UID
-L:暂时将用户的密码冻结无法登录
-U:解冻账号,其实是删除shadow的!字符
实例:给用户xiang增加次要群组user1
# useradd user1
# usermod –aG user1 xiang
3)userdel [-r] username
-r:连同用户的家目录一起删除
4)passwd,修改密码
用户信息的检查
1)finger [-s] username:查阅用户相关的信息
-s:仅仅列出用户的账号、全名、登录时间等
2)id,可以查阅某人或者自己相关的UID、GID信息
3)whoami
4)who&w
5)users
6)groups
用户群组的管理
1)groupadd [-g gid] [-r] 组名
-g:后面接特定的GID,用来指定GID,从500开始
-r:建立系统群组,小于500
2)groupmod [-g gid] [-n group_name] 群组名
-g:修改既有的GID数字
-n:修改既有的组名
3)groupdel [groupname]
删除特定的群组
默认权限的控制
1)内核级别,文件的默认权限是666
2)内核级别,目录的默认权限是777
3)通过umask来阻止一些权限,从而产生最终的权限
4)非管理账号的umask为0002
5)root的umask为0022
6)umask作用原理
在root用户下,新建文件后默认权限是644
在root用户下,新建目录后默认权限是755
# umask 002 //可以进行修改
7)使用减法计算是错误的,应该理解为遮盖
7、文件的压缩与打包
7-1关于文件压缩和打包
1)文件压缩
通过压缩算法将文件的体积缩小,同时会将多个文件合并至一起方便交换、传输。
2)文件打包
将多个文件或者整个目录合并成一个文件,用来进行文件的备份、分发、传输等。
3)Linux支持的压缩格式
1)*.Z ,compress程序压缩文件
2)*.gz ,gzip程序压缩文件
3)*.bz2,bzip2程序压缩文件
4)*.tar,tar程序打包文件,并未压缩
5)*.tar.gz,tar打包的档案,使用gzip压缩
6)*.tar.bz2,tar打包的文件,使用bzip2压缩
Linux文件压缩指令
1)gzip [-cdtv#] 文件名称
1)扩展名为*.gz
2)-c:将压缩的数据输出到屏幕上
3)-d:解压缩的参数
4)-t:进行文件的一致性校验看是否损坏
5)-v:显示和原文件相比的压缩比
6)-#:压缩等级,-1最快,-9最慢,默认是-6
实例:
gzip –c list >list.gz 进行重定向,会保留源文件,默认使用gzip压缩时会删除源文件
gzip –v1 list
2)bzip2 [-cdkzv#] 文件名称
1)扩展名为*.bz2
2)-c:将压缩的数据输出到屏幕上
3)-d:解压缩的参数,该参数代表执行解压缩操作
4)-k:保留原文件并不删除原始文件
5)-z:压缩的参数,该参数代表是执行压缩操作
6)-v:显示和原文件对比的压缩比
7)-#:压缩等级,-1最快,-9最慢,默认是-6
Linux文件打包指令
1)tar [-jcv] –f finaname.tar.bz2 待压缩的档案或者目录名
将某个文件或者目录打包并使用bzip2压缩成一个文件
2)tar [-jxv] –f filename.tar.bz2 –C 解压缩的目录
将压缩文件解压缩至特定的目录
3)参数解释
1)-c:建立打包档案
2)-t:查看打包的文件都有哪些文件名
3)-x:解压缩或者解打包文件,和-C搭配使用解压缩至特定目录
4)-j:通过bz2支持进行压缩或者解压缩
5)-z:使用gzip进行压缩或者解压缩
6)-v:将正在处理的文件名显示出来
7)-f:紧跟要被处理的文件名,建议单独写一个选项
实例:
# tar –jcvf test.tar.bz2 test
# tar –jxvf test.tar.bz2 –C dir
# tar –zcvf test.tar.gz test
# tar –zxvf test.tar.gz –C dir
8、Linux 软件的安装
8-1 如何通过源码安装
什么是源码包:
附带有程序的源代码、configure文件、说明文档的安装包
一般先以tar打包,再以压缩软件压缩,如tar.gz或 tar.bz2
需要自定义参数进行编译安装
使用wget进行下载,支持多线程,断点
如:wget http://~
configure – 实际上是shell脚本
自定义参数
配置安装环境,必要性检查
生成makefile文件
make&install
编译生成二进制文件
执行安装
使用源码包进行安装的过程
常用指令:
1)./configure –help,查看参数信息,建立makefile文件
2)make clean,读取makefile中关于clean的内容执行clean操作(非必需)
3)make,根据makefile中的设置执行编译操作
4)make install,将编译的二进制文件安装到系统中
实例:memcached和libevent两个有依赖的包进行演示
# tar -zxvf *.tar.gz
# ./configure --prefix=/root/local/libevent //来指定安装目录,默认是/usr/local下
# make
# make install
# tar –zxvf *.tar.gz
# ./configure --prefix=/root/local/memcached --with-libevent=/root/local/libevent //依赖包
# make
# make install
指定安装目录的好处是如果要安装出错或重装,直接删除
8-2 RPM、YUM简介
RPM
SRPM
YUM
8-3 RPM的使用
默认安装路径
1)/etc : 配置文件所在目录,如/etc/my.cnf、/etc/crontab等
2)/usr/bin : 一些可执行文件
3)/usr/lib : 程序使用的函数库(连接库),.so像windows中的C:\Windows\System32
4)/usr/share/doc : 软件使用手册与说明
5)/usr/share/man : man page文件
RPM安装
实例:
http://www.rpmfind.net/中,使用wget
在安装光盘中,使用cp
# rpm -ivh python-*.rpm
RPM升级
1)–Uvh : 如果软件安装过则更新,若没安装过直接安装
2)-Fvh : 只有该软件安装过才会升级,否则不予升级
实例:
# rpm –qa python 查看当前软件的版本
# rpm –Uvh python-*.rpm 升级
RPM查询
1)-q : 只查询软件是否安装
2)-qa : 列出本机安装的所有的软件名称,可以通过 | grep来过滤
3)-qi : 列出软件的详细信息,如开发商、版本、说明等
4)-ql : 列出该软件所有的文件、所在目录完整名(list)
5)-qc : 列出该软件所有的配置文件
6)-qR : 列出该软件依赖的其他软件的文件
7)-qf : 查询某个文件属于哪个软件所有
8)--noscripts:禁止RPM执行一些后置指令,如一些初始化的指令
实例:
# rpm –qa python
RPM验证
1)-V : 查询软件所有被修改过的文件
2)-Va : 不接文件名,列出本机所有可能被修改过的程序文件
3)-Vp : 接文件名,列出该软件中可能被修改的文件
RPM卸载与数据库重建
8-4 YUM的使用
YUM的安装:执行下面脚本
#!/bin/bash
rpm -qa|grep yum|xargs rpm -e --nodeps
wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm
wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-4.el5.i386.rpm
rpm -ivh yum-*
cd /etc/yum.repos.d/
mv rhel-debuginfo.repo rhel-debuginfo.repo.bakup
mv rhel-source.repo rhel-source.repo.bakup
wget http://www.linuxidc.com/files/2011/05/06/CentOS-Base.repo
yum makecache
查询,yum [list|info|search|provides|whatprovides] 参数
实例:
yum list >list 新创建一个,覆盖
yum list >>list 将内容追加到list后面,如果没有则新建
安装、升级,yum [install | update] 程序名称
卸载,yum [remove] 程序名称
yum的配置
9、vi编辑器的使用
9-1 vi vim
9-2 vi的三种模式
9-3 移动光标
9-4 命令模式下修改、复制、删除等操作
9-5 撤销操作
a)u,撤销最近一次的修改,undo
b)ctrl – r,取消最后一次的撤销,redo
c)U,撤销所有修改
9-6 查找操作
a)/text, 向后搜索
b)?text,向前搜索
c)n,搜索下一个同样的内容
d)N,搜索上一个同样的内容
9-7 粘贴操作
a)用p粘贴复制、修改或者删除的数据
b)对于行,p粘贴在行上,P粘贴在行下
c)对于字符,p粘贴在字符右侧,P粘贴在字符左侧
9-8 命令模式下的一些技巧
a)dtc,删除从光标到c之间的所有字符
b)rc,将光标下的字符替换为c
c)dw,删除游标处所在的字符
d)5dd,删除5行数据
e)5yy,复制5行数据
f)5x,删除5个字符
g)R,进入替换状态,Esc退出
9-9 保存、退出,进入扩展模式
a):w,保存
b):q,退出
c):wq,保存并退出
d):w!,强制保存
e):q!,强制退出
f):wq!,强制保存退出
9-10 文件内定位
1)G,跳转到文件最后一行
2)1G,跳转到文件第一行
3)ctrl d,往下滚动半屏
4)ctrl u,往下滚动半屏
9-11 屏幕定位相关
1)H,跳转到本屏显示的第一行
2)M,跳转到本屏显示的中间一行
3)L,跳转到本屏显示的最后一行
4)z Enter,使当前的行成为屏幕显示的第一行
5)z -,使当前行成为屏幕的最后一行
9-12 查找并批量替换 – 通过sed来查找
实例:
:s/i/- 将本行中i替换为-
:s/i/-/g 将本行中所有的i替换为-
:1,10s/i/-/g 将1到10行中的所有的i替换为-
:1,$s/i/-/g 将文件中所有的i替换为-
9-13 读取和保存
实例:
:r test.txt 将test.txt的内容读入到当前文件
:1,3 w newfile.txt 将1-3行的内容写入到newfile.txt中
:1,$ w newfile.txt 将整个文件写入到newfile.txt中
:1,3 w >>oldfile.txt 将1-3行数据追加到oldfile.txt中
9-14 设置
1):set,显示常用的配置选项
2):set all,显示所有的配置选项
3):set number,设置行号
10、bash shell 的学习
10-1 bash shell 的概述
Bash是Bourne Again Shell的简称,是从Unix系统中的sh发展而来,是用户和Linux内核交互的工具,用户通过bash操作内核完成系统的使用和管理
Shell的种类
/bin/sh – 已经被/bin/bash替代
/bin/bash – 默认的shell
/bin/ksh – 源自贝尔实验室,兼容bash
/bin/tcsh – 整合C shell,功能更为强大
/bin/csh – 已经被tcsh取代
/bin/zsh – 源自ksh功能更为强大
10-2 bash shell 的配置
变量概述
变量是代表一些值得符号:
可以通过变量来设置shell或者其他程序
变量存在于内存中
Linux有自定义变量(local)和环境变量(environment)
自定义变量和环境变量作用范围不同
可以使用以下指令查看所有变量:
set可以查看所有变量
env只能查看环境变量
unset删除变量
bash shell有以下几种设置方式:
通过自定义变量设置
实例:
# mysql=/root/dirs/mysql/bin
# echo $mysql
# cd $mysql
常见的变量
1)HISTFILESIZE: 记录历史指令保存的最大值
2)COLUMNS: 终端窗口显示的宽度
3)LINES: 终端窗口显示的高度
4)PS1: 设置提示符号前面的内容样式(\d, \h, \t, \u, \w, \!, \$, \l, \#等)
实例:
# set |grep PS1
# PS1=‘[\u@\h \w \t]\$’
通过别名设置
# type ll
# alias cls=’clear’
# alias //查看所有别名
# alias cls //查看别名值
# type –a cls
# unalias cls //删除别名定义
通过set指令设置
set自身查看所有变量值
设置shell内部的属性值(set –o noclobber, set –o vi)
通过环境变量设置
常用变量介绍:
HOME:指向当前用户的家目录
LANG:应用程序使用何种语言显示界面
PWD:指向用户当前的工作目录路径
PATH变量:
系统预设的环境变量
执行一些没有指定路径的指令时会去该路径中找
PATH=$PATH.: 将隐藏路径设置到PATH中,会带来安全性问题
可以使用which指令来找到某个指令所在的位置
10-3 shell startup scripts的原理和功能
概述
用户登录或其他非登录动作时会自动执行的一些shell脚本:
login shell:
non-login shell: - 即在终端中输入bash时
~/.bash_logout:
10-4 数据流重定向和管道命令
标准输入输出和错误输出概述
概念:
stdin是指令数据的输入,代码为0,使用<或者<<,默认是键盘
stdout是指令执行成功返回的结果,代码为1,使用>或者>>,默认由屏幕显示
stderr是指令执行失败返回的错误信息,代码为2,使用2>或2>>,默认是屏幕
实例:
# ls -al /dev/std*
数据流重定向的使用
实例:
# find /root ins 1>success 2>failed
# find /root ins >all 或者 # find /root ins &>all 其中&就是表示0、1、2
# tr ‘a-z’ ‘A-Z’ <hello.c //将hello.c的小写转换为大写
多个指令执行的判断方法
实例:
# mkdir test&&cd test&&touch conf.txt //前者执行成功才会执行后者
# mkdir test||mkdir test1 //将第一个执行失败,才会去执行第二个,若第一个执行成功,不会执行第二个
管道命令概述
实例:
# ls –la |more //通过翻页的形式
# ls –la |more |grep hostname
grep指令,grep [-cinv] ‘key’ filename,支持正则
1)-c, 计算字符出现的个数
2)-i, 忽略大小写进行查找
3)-n, 输出行号
4)-v, 显示没有该字符的行
实例:
# grep –in ‘[a-z]the’ test.txt //显示行号并忽略大小写显示‘the’
# grep –ic ‘the’ test.txt //统计并忽略大小写‘the’出现的次数
# grep –icv ‘the’ test.txt //统计出‘the’没有出现的行
# grep –in –-color=auto ‘the’ content.txt //显示‘the’的行号,标红,忽略大小写
# grep –in –-color=auto ‘the’ content.txt |grep –-color=auto take //继续过滤
sort指令,sort [-fbknrtu] filename
1)-f, 忽略大小写
2)-b, 忽略最前面的空格
3)-m, 以月份英文名字排序
4)-n, 使用数字排序
5)-r, 逆向排序
6)-t, 分隔符,默认是tab分割
7)-k, 以第几列来排序
实例:
# cd /root/usr/bin
# ls –l
# ls –l |sort –t ‘ ’ –k 5 –n //按照第五列以空格分开从小到大排序
wc指令,wc[-lwm] filename,统计功能
1)-i, 统计行
2)-w, 统计词
3)-m, 统计字符
实例:
# cat content.txt |wc –l
# cat content.txt |wc –w
# cat content.txt |wc –m
除此之外还有很多管道命令:tr cut join paste等
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。