Linux是分为了内核版和发行版两个版本。Linux内核官网:www.kernel.org。Linux主要发行版本有redhat,CentOS,ubuntu等。Linux开源软件很多,其中很著名的有Apache,Nginx,MySql,PHP,Python等。Linux主要应用于企业服务器和嵌入式两个邻域。
Linux与Windows的不同:
(1)Linux严格区分大小写。
(2)Linux中所有内容以文件形式保存,包括硬件
(3)Linux不靠扩展名区分文件类型
(4)Windows下的程序不能直接在Linux中安装和运行
Linux系统分区的分区类型
主分区:最多只能有4个
扩展分区:最多只能有1个。主分区加扩展分区最多有4个。
不能写入数据,只能包含逻辑分区。
逻辑分区:
格式化确实可以把数据清空但它的目的是为了写入文件系统。
CentOS官网下载地址:https://wiki.centos.org/Download
CentOS系统安装:http://www.jb51.net/os/85895.html
注意:在安装的过程中选择swap挂载点(盘符)显示不适用,说明swap不是给用户用的是由Linux内核直接调用的,没有挂载点。
安装完成:
Setup工具(红帽专有图形化工具)
Xshell的使用
什么是Xshell?
Xshell是用来进行远程Linux管理的。以下为我连接成功的效果图
命令格式
命令 [选项] [参数]
注意:个别命令使用不遵循此格式,当有多个选项时,可以写在一起,简化形式与完整选项 如:-a等于--all
查询目录中内容:ls
ls [选项] [文件或目录]
选项:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
目录处理命令
建立目录:mkdir
mkdir –p [目录名] (-p递归创建)
切换所在目录:cd
cd [目录]
简化操作
cd ~ 进入当前用户的家目录
cd
cd – 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
查询所在目录位置:pwd
删除目录:rmdir(只能删除空白目录)
删除文件或目录:rm
rm –rf [文件或目录]
复制命令:cp
cp [选项] [原文件和目录] [目标目录]
选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 –pdr
剪切或改名命令:mv
mv [原文件或目录] [目标目录]
如果原文件和目标文件不在同一个目录下就是剪切在一个目录下就是改名
常用目录的作用
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录,启动相关文件
/dev 设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
/root 超级用户的家目录
/temp 临时目录
/sbin 命令保存目录(超级用户才能使用的目录)
/proc 直接写入内存的
/sys
/usr 系统软件资源目录
/usr/bin/系统命令(普通用户)
/usr/sbin/系统命令(超级用户)
/var 系统相关文档内容
链接命令:ln
ln –s [原文件] [目标文件]
功能描述:生成链接文件
选项:-s 创建
硬链接特征:
(1)拥有相同的i节点和存储block块,可以看做是同一个文件
(2)可通过i节点识别
(3)不能跨分区
(4)不能针对目录使用
软链接特征:
(1)类似Windows快捷方式
(2)软链接拥有自己的i节点和Block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
(3)lrwxrwxrwx l 软链接(软链接文件权限都为rwxrwxrwx)
(4)修改任意文件,另一个都改变
(5)删除原文件,软链接不能使用
文件搜索命令locate
locate 文件名
在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
#locate命令所搜索的后台数据库
updated
更新数据库
注意:locate是按照/etc/updatedb.conf配置文件搜索的
打开该配置文件如下:
PRUNE_BIND_MOUNTS= "yes"
#开启搜索限制
PRUNEFS =
#搜索时,不搜索的文件系统
PRUNENAMES =
#搜索时,不搜索的文件类型
PRUNEPATHS =
#搜索时,不搜索的路径
命令搜索命令whereis与which
whereis 命令名
#搜索系统命令所在路径及帮助文档所在位置
选项:
-b:只查找可执行文件
-m:只查找帮助文件
which 文件名
#搜索命令所在路径及别名
PATH环境变量
PATH环境变量:定义的是系统搜索命令的路径
文件搜索命令find
find [搜索范围] [搜索条件]
#搜索文件
find / -nameinstall.log
#避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配
Linux中的通配符
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
find /root –iname install.log
#不区分大小写
find /root –userroot
#按照所有者搜索
find /root –nouser
#查找没有所有者的文件
find /var/log/-mtime +10
#查 找10天前修改的文件
-10 10天内修改文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
find . –size 25k
#查找文件大小是25KB的文件
find . –inum262422
#查找i节点是262422的文件
字符窜搜索命令grep
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符窜
选项:
-i 忽略大小写
-v 排除指定字符串
find命令与grep命令的区别
find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。
帮助命令man
man 命令
#获取指定命令的帮助
man的级别
1:查看命令的帮助
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件的帮助(主要是/dev目录下的文件)
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其它杂项的帮助
8:查看系统管理员可用命令的帮助
9:查看和内核相关文件的帮助
man ls
#查看ls的帮助
其他帮助命令
man –f 命令
相当于
whatis命令
查看和命令相关的所有帮助
man –k 命令
相当于
apropos命令
其他帮助命令
选项帮助
命令 –help
#获取命令选项的帮助
shell内部命令帮助
help shell内部命令
#获取shell内部命令的帮助
详细命令帮助info
info 命令
- 回车:进入子帮助页面(带有*号标记)
- u:进入上层页面
- n:进入下一个帮助小节
- p:进入上一个帮助小节
- q:退出常用压缩格式:.zip .gz .bz2
常用压缩格式:.tar.gz .tar.bz2
.zip格式压缩
zip 压缩文件名 源文件
#压缩文件
zip –r 压缩文件名 源目录
#压缩目录
.zip格式解压缩
unzip 压缩文件
#解压缩.zip文件
Windows和Linux中zip文件是可以互相通用的。
.gz格式压缩
gzip 源文件
#压缩为.gz格式的压缩文件,源文件会消失
gzip –c 源文件 > 压缩文件
#压缩为.gz格式,源文件保留
例如: gzip –c cangls > cnagls.gz
gzip –r 目录
#压缩目录下所有的子文件,但是不能压缩目录
.gz格式解压缩
gzip –d 压缩文件
#解压缩文件
gunzip 压缩文件
#解压缩文件
.bz2格式压缩
bzip2 源文件
#压缩为.bz2格式,不保留源文件
bzip2 –k 源文件
#压缩之后保留源文件
注意:bzip2命令不能压缩目录
.bz2格式解压缩
bzip2 –d 压缩文件
#解压缩,-k保留压缩文件
bunzip2 压缩文件
#解压缩,-k保留压缩文件
打包命令tar
tar –cvf 打包文件名 源文件
选项:
-c:打包
-v:显示过程
-f:指定打包后的文件名
解打包命令
tar –xvf 打包文件名
选项:
-x:解打包
.tar.gz压缩格式
其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式
tar –zcvf 压缩包名.tar.gz 源文件
选项:
-z:压缩为.tar.gz格式
tar –zxvf 压缩包名.tar.gz
选项:
-x:解压缩.tar.gz格式
.tar.bz2压缩格式
tar –jcvf 压缩包名.tar.bz2 源文件
选项:
-z:压缩为.tar.bz2格式
tar –jxvf 压缩包名.tar.bz2
选项:
-x:解压缩.tar.bz2格式
1.shutdown命令
shutdown [选项] 时间
选项:
-c:取消前一个关机命令
-h:关机
-r:重启
2.其他关机命令
halt
poweroff
init 0
3.其他重启命令
reboot
init 6
4.系统运行级别
0 关机
1 单用户
2 不完全多用户,不含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启
cat/etc/inittab
#修改系统默认运行级别
runlevel
#查询系统运行级别
5.退出登录命令
logout
挂载命令
1. 查询与自动挂载 mount
#查询系统中已经挂载的设备
用户登录查看和用户交互命令 mount –a
#依据配置文件/etc/fstab的内容,自动挂载
2. 挂载命令格式
mount [-t 文件系统] [-o 特殊选项] 设备 文件名 挂载名
选项:
-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
-o 特殊选项:可以指定挂载的额外选项
3.挂载光盘
mkdir/mnt/cdrom/
#建立挂载点
mount –t iso9660/dev/cdrom/mnt/cdrom/
#挂载光盘
4.卸载命令
umount设备文件名或挂载点
umount /mnt/cdrom/
5.挂载u盘
fdisk –l
#查看u盘设备文件名
mount –t vfat/dev/sdb1/mnt/usb/
注意:Linux默认是不支持NTFS文件系统的
用户登录查看
查看登录用户信息
w
who
查询当前登录和过去登录的用户信息
last
查看所有用户的最后一次登录时间
lastlog
1 Shell的介绍
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。Shell是解释行的脚本语言,在Shell中可以直接调用Linux系统命令。
2 Shell的分类
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。
1 echo输出命令
echo[选项][输出内容]
选项:
-e:支持反斜线控制的字符转换
2 第一个脚本
vi hello.sh
#!/bin/bash
#The first program
echo –e “\e[1;34m天上掉下个林妹妹!\e[0m”
3 脚本执行
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过Bash调用执行脚本
bash hello.sh
1 命令别名与快捷键
查看与设定别名
alias
#查看系统中所有的命令别名
alias 别名=‘原命令’
#设定命令别名
别名永久生效与删除别名
vi ~/.bashrc
#写入环境变量配置文件
unalias 别名
#删除别名
常用快捷键
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 从光标所在位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索
2 历史命令
1 历史命令
history[选项][历史命令保存文件]
选项:
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history
3 输出重定向
类型 |
符号 |
作用 |
标准输出重定向 |
命令 > 文件 |
以覆盖的方式,把命令的正确输出,输出到指定的文件或设备当中。 |
命令 >> 文件 |
以追加的方式,把命令的正确输出输出到指定的文件或设备当中。 |
|
标准错误输出重定向 |
错误命令 2>文件 |
以覆盖的方式,把命令的错误输出,输出到指定的文件或设备当中。 |
错误命令 2>>文件 |
以追加的方式,把命令的错误输出输出到指定的文件或设备当中。 |
|
正确输出和错误输出同时保存 |
命令 > 文件2>&1 |
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。 |
命令 >> 文件2>&1 |
以追加的方式,把正确输出和错误输出都保存到同一个文件当中。 |
|
命令&>文件 |
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。 |
|
命令&>>文件 |
以追加的方式,把正确输出和错误输出都保存到同一个文件当中。 |
|
命令>>文件1 2>>文件2 |
把正确的输出追加到文件1中,把错误的输出追加到文件2中 |
4 管道符
多命令顺序执行
多命令执行符 |
格式 |
作用 |
; |
命令1;命令2 |
多个命令顺序执行,命令之间没有任何逻辑关系 |
&& |
命令1&&命令2 |
逻辑与 当命令1正确执行,则命令2才会执行 当命令1不正确执行,则命令2不会执行 |
|| |
命令1||命令2 |
逻辑或 当命令1正确执行,则命令2才会执行 当命令1正确执行,则命令2不会执行 |
管道符
命令格式:
命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
netstat –an
5 通配符
通配符
通配符 |
作用 |
? |
匹配一个任意字符 |
* |
匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
[] |
匹配括号中任意一个字符。例如[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。 |
[-] |
匹配括号中任意一个字符。-代表一个范围。例如[a-z]代表匹配一个小写字母 |
[^] |
逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。 |
Bash中其他特殊符号
符号 |
作用 |
‘’ |
单引号。在单引号中所有的特殊符号,如”$”和“`”(反引号)都没有特殊含义。 |
“” |
双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义 |
`` |
反引号。反引号括起来的是系统命令,在Bash中会先执行它。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。 |
$() |
和反引号作用一样,用来引用系统命令。 |
# |
在Shell脚本中,#开头的行代表注释。 |
$ |
用于调用变量的值,如果需要调用变量name的值时,需要用$name的方式得到变量的值。 |
\ |
转移符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用。 |
Reference:
http://www.jb51.net/os/85895.html
http://www.cnblogs.com/fuly550871915/p/4949513.html