一、rhel-6.5安装使用
1、首先下载iso镜像文件(地址:https://www.wanghualang.com/download.php?id=1349)
2、其次安装到VMware workstation虚拟机中使用
二、基础知识
1、[root@xpw ~]# 管理员用户登录
[zhangsan@xpw ~]$ 普通用户登录
解释:
root:当前登录的用户名
xpw:主机名
~:当前用户所处的目录(~代表用户宿主目录)
#:代表当前用户是管理员
$:代表当前用户是普通用户
2、Linux默认可以打开6个终端,快捷键Ctrl+alt+(F1~F6)
3、退出终端命令:exit
4、切换用户:su(switch user)
eg:su student (切换到student用户)
5、Linux 系统的整个系统结构如下面所示:
6、Linux登录信息在/etc/issue目录下
eg:cat /etc/issue
解释:查看Linux登录信息
三、Linux命令
1、命令分类
1>内部命令(shell自带的命令)
2>外部命令(在Linux文件系统中存在一个应用程序)
2、查看Linux命令类型
利用type命令可以查看Linux命令类型
eg1:type pwd 显示:pwd is a shell builtin (builtin该关键词说明该命令是内部命令)
eg2:type mkdir 显示:mkdir is bin/mkdir (有路径显示的为外部命令)
3、路径
1>绝对路径。从根(/)开始的路径是绝对路径。Linux系统中只有一个根。
2>相对路径。以所处的工作目录为参照点
4、ls命令:
参数:
-h :为文件大小添加单位
eg:ls -h
-a:显示目录下所有文件。(包括.(当前目录),..(上一级目录),以.开始的隐藏文件。)
-R:递归显示目录中的内容。(一并显示子目录中的内容)[重要]
-r:逆序显示文件内容
5、PATH变量:存放系统命令路径,以:隔开。
查看path变量命令:echo $PATH (linux命令严格区分大小写)
6、hash命令:查看命令缓存及命中率
7、Linux命令的帮助信息
1>内部命令:help [command] eg:help cd
2>外部命令:[command] --help eg:ls --help
3>man:帮助
语法:man [command]
/word:从上往下找关键字
?word:从下往上找关键字
q:退出当前帮助信息
8、which:查看命令所在路径
9、cd命令
1>不加选项,返回到当前用户的宿主目录
2>-;返回到上一次的工作路径。eg:cd -
3>~username:切换到username的宿主目录
10、pwd:显示当前所处的工作目录
11、file命令:查看Linux中文件类型(与四2匹配,有三种文件类型)
语法:file [options]
-b:显示结果时,不显示文件名
-c:显示执行file命令的执行过程
-i:输出MIME类型的字符串
-z:显示压缩文件的内容
-l:查看软链接对应文件的类型
-f:查看文件中文件名的类型
12、cat命令:
1、一次性查看整个文件
语法:cat [options] [args]
2、从键盘输入创建一个新文件
语法:cat > file_name <<eof (输入完之后,会开始对创建文件进行编辑,编辑完成之后,用eof结束)
3、对现有文件进行追加数据
语法:cat >> file_name <<eof
4、把多个文件内容合并到一个文件输出
语法:cat file1 file2 > file3
-n:显示文件内容时同时显示行号
-b:和-n功能相同,但不包括空行
-s:当文件中有多个空行时,合并为一个空行
-E:在显示内容时,结尾添加$符号
5、查看linux版本号命令:cat /proc/version
13、cp命令:复制文件或目录
语法:cp [options] [src_file] [des_file]
-f:force,强制复制文件或目录不进行提示
-r:递归复制目录
-b:覆盖已有的文件前,对目标文件进行复制
-p:复制文件时保留文件的原有属性
14、mv命令:移动或重命名文件和目录(当原位置和目标位置是同目录时,是重命名,否则为移动)
-t:讲多个文件移动到同一目录(语法:mv -t [directory] file1 file2...)
15、mkdir:创建空目录
-m创建目录时同时设置权限
-p递归创建新目录
eg:mkdir {a,b} 解释:在当前目录下创建a,b两个目录
mkdir -p /root/a/b 解释:创建root目录下a目录,a目录下b目录
16、touch命令: 创建新文件或修改文件的时间戳
17、which命令:查找命令所在路径
18、whereis命令:查看命令所在路径,帮助信息文件所在位置
19、locate命令:查找文件命令;非实时性,根据自己的数据库查找文件。centos每天更新一 次数据库,安装完locate后,生成/var/lib/mlocate目录,存放数据库。此命令是模 糊匹配。locate工具的数据库:/var/lib/mlocate/mlocate.db
语法:locate file_name
安装locate工具:yum -y install mlocate
更新locate数据库:updatedb
20、查看文本文件内容命令:cat more less head tail
1>more命令:可以翻页查看文本文件内容
enter键盘:向下翻一页
空格键:向下翻一屏
ctrl + b :向上翻一屏
Ctrl + f :向下翻一屏
=:显示当前的行号
v:调用vi编辑器
!command:调用shell执行命令
q:退出more命令
more + num file_name //从num行开始查看文件内容
21、less命令:可以翻页查看文本文件内容
翻屏:pagedown、pageup、上下方向键
/word:该文件中查找word关键字
22、 管道:|,连接多条命令,前一条命令输出结果作为后一条命令的输入条件
23、head:显现文本前十行内容。
24、tail:默认查看文本文件的后十行
-f:动态查看文本文件内容,如动态查看日志:tail -f /var/log/messages
25、pstree:查看进程树之间的关系,即哪个进程是父进程,哪个是子进程。
26、history:查看linux输入命令的历史
-c:清空命令历史
-d:删除某一条命令历史。 语法:history -d 22 (删除第二十二行的命令历史)
命令历史使用技巧:
!n:执行命令历史当中的第n条的命令(n是命令历史编号)
!word:执行命令历史中最近一次以word开始的命令
!!:执行上一条命令
esc + . :引用一个命令的最后一次参数
27、echo:可以查看环境变量值、输出屏幕
四、Linux根文件系统
1、根文件文件系统
/bin:二进制,存放命令
/boot:存放启动和内核相关文件
/dev:存放设备文件
/etc:存放应用程序的配置文件
/home:普通用户的宿主目录,默认为/home/USERNAME
/lib和/lib64:存放系统开机时需要用的函数库及/bin和/sbin命令调用函数库
/lib/modules:存放内核相关模块 (比如:驱动程序等)
/media和/mnt:挂载点,/media挂载移动设备 /mnt挂载临时设备
/opt:第三方软件存放目录(用户自行安装的软件存放处),现在一般按章到/usr/local下
/proc:伪文件系统,数据存放在内存中,存放关于进程的相关信息
/root:管理员的宿主目录
/sbin:存放管理员使用的命令
/srv:servicce缩写,存放服务数据目录,如可以把www服务的网页存放到该目录
/tmp:存放临时文件,所有用户都可以访问创建文件,但是每个用户只能删除自己的文件
/sys:伪文件系统,存放在内存中,记录内核相关信息
/usr:unix software resource的缩写,存放安装的应用程序
/usr/bin:普通用户使用的命令(和/bin区别:是否与开机有关)
/usr/sbin:网络服务命令
/usr/lib和/usr/lib64:包含各种应用程序函数库
/usr/share:存放共享文件目录
/usr/include:存放头文件
/usr/src:释放源代码目录
/var:vary的缩写,存放经常变动的文件,比如日志,mail等
/var/cache:存放应用程序运行时产生的缓存文件
/var/lib:程序运行时,需要使用的数据文件的存放目录
/var/lock:设备或资源一次只能被一个应用程序使用,如果多应用程序使用会产生错误
/var/log:存放日志目录(系统,用户登录,服务日志)
/var/mail:存放个人电子邮件(系统报警时产生的邮件信息)
/var/run:存放应用程序运行时PID文件(进程号.pid结尾)
/var/spool:存放队列数据,排队等待其他用户程序使用的数据,数据通常使用完后被删 除
FHS规定:/etc /bin /dev /lib /sbin 五个目录必须要和根目录位于同一文件系统
2、Linux文件类型(与三11匹配:查看文件类型命令:file命令)
-:普通文件
纯文本文件(ASCII):配置文件
二进制文件(binary file):命令
数据格式文件(date):/var/log/wtmp
d:目录文件
l:链接文件:软链接文件
设备文件:(/dev)
b:block块设备
c:character字符集设备:一次性读取,按顺序读取
s:socket套接字文件:通常用在网络上数据连接。
p:管道:特殊的文件类型,解决多个程序同时访问一个文件所造成的错误问题。
五、shell
1、shell广义分为两类:
1>GUI(图形用户界面、全拼:Graphical User Interface):包括GNOME、KDE、XFACE
2>CLI(命令行界面、全拼:command-line interface):包括sh、csh、ksh、bash(linux发 行版本中,bash是默认使用的shell程序)
2、命令行编辑技巧
1、Ctrl + a:光标快速跳转到命令行首行
2、Ctrl + e:光标快速跳转到命令行行尾
3、Ctrl + u:快速删除光标位置到命令行行首的字符
4、Ctrl + k:快速删除光标位置到命令行行尾的字符
5、Ctrl + l:清屏(等于clear命令)
3、命令行展开:按tab键两次,列出以某字符开始的所有命令
4、命令别名(用alias定义的别名只在当前shell生效)
eg:alias cls = clear (dos下的清屏和linux下的清屏)
alias cdnet = “cd /etc/sysconfig/network-scripts” //使用alias定义完成后,直接输入 cdnet就等于输入cd /etc/sysconfig/network-scripts 命令
取消命令别名:unalias
5、命令替换(经常用到shell脚本编程中):$(command)或者`command`
eg:[root@xpw ~]# echo “directory is $(pwd)”
[root@xpw ~]#directory is /root
1、""(双引号):弱引用,可以实现变量的替换
2、‘’(单引号):强引用,不能完成变量的替换
3、``(反撇号,~按键的位置):命令引用
6、命令行通配:globbing
1、*:匹配任意长度的任意字符
2、?:匹配任意单个字符
3、[]:匹配指定范围内的任意单个字符
eg:[ab]、[a-z]、[A-Z]、[a-zA-Z]、[0-9]、[a-zA-Z0-9]
# ls a*[a-zA-Z0-9] //显示当前文件夹中以a开头,中间任意字符,以大小写字母 或者数字结尾的文件
4、[^]匹配指定范围外的任意单个字符
eg:[^a-z] //表示a-z除外的字符
5、[:space:]:表示空格, // 使用时需要额外再加上[]中括号,须有两个中括号
eg:# ls *[[:space:]]* //表示以任意字符开始,中间含有空格,以任意字符结尾
[:punct:]:表示所有标点符号
[:lower:]:表示所有小写字母
[:upper:]:表示所有大写字母
[:alpha:]:表示所有字母(包括大小写)
[:digit:]:表示所有数字
[:alnum:]:表示所有数字和大小写字母
6、计算机体系结构(五大部件,通过总线进行交互)
1>控制器:CPU,读取系统命令
2>运算器:CPU,运算
3>存储器:RAM(内部存储器,易失性存储器)
4>输入设备(input):输入数据,如键盘、硬盘等
5>输出设备(output):显示指令执行结构,如显示器、音响、硬盘等
7、计算机总线:
1>地址总线:负责内存寻址
2>数据总线:负责传输数据
3>控制总线:负责控制指令
8、寄存器:CPU中内部临时存储空间
9、I/O设备:负责计算机内部存储设备和外部存储设备进行交互的设备
10、程序:指令 + 数据
指令:由程序提供,负责加工数据
数据:系统中数据可以有多种来源,比如来自变量、文件、输入设备等
11、标准输入输出设备:
标准输入设备:键盘(stdin),文件描述符为0
标准输出设备:显示器(stdout),文件描述符为1
标准错误输出设备:显示器(stderr),文件描述符为2
12、三种数据流
标准输入数据流
标准输出数据流
标准错误输出数据流
13、当在Linux中打开一个文件时,内核会反复调用,对于文件标识符就很重要,用文件描述 符来标识文件,文件加载完成用数字标识。
14、IO重定向:把默认的输入输出数据来源,重新定向到其他文件或设备
1、输出重定向
>:覆盖输出重定向
>>:追加输出重定向
2>:错误覆盖输出重定向
2>>:错误追加输出重定向
&>:混合覆盖输出重定向(混合代表:无论输入正确或输入错误)
&>>:混合追加输出重定向
eg:
2、输入重定向:<
15、tty1:第一工作组
16、tr:实现字符转换,不修改源文件。语法:tr [options] [set1] [set 2]
eg:tr ‘a-z’ ‘A-Z’ //把a-z转换为A-Z
17、tee命令。在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >a.txt,这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输 出内容,就可以使用tee命令了。tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中,tee命令可以重定向标准输出到多个文件。要注意的是:在使用管 道线时,前一个命令的标准错误输出不会被tee读取。
eg: ls /usr/ | tee usr.out | tr 'a-z' 'A-Z'