一、简介
1、Linux分为内核版本和发行版本,常用发行版本有redhat、Centos、ubuntu等,
各发行版本的主要区别在于其内核版本不一样。
2、Linux的主要应用领域为:
(1)基于Linux的企业服务器
(2)嵌入式应用
3、Linux与Windows的不同点
(1)Linux严格区分大小写
(2)Linux中所有内容以文件形式保存,包括硬件
(3)Linux不靠扩展名区分文件类型
(4)Windows下的程序不能直接在Linux中安装和运行
4、字符界面的优势
(1)字符界面占用的系统资源更少
(2)字符界面减少了出错、被攻击的可能性
二、使用Xshell连接Centos虚拟机
1、打开虚拟机终端,输入 rpm -qa | grep ssh 检查是否安装ssh
2、如果没有安装,则使用 yum install openssh-server 进行安装
3、常用命令
(1)service sshd restart 重启SSH服务
(2)service sshd start 启动服务
(3)service sshd stop 停止服务
(4)netstat -antp | grep sshd 查看是否启动22端口
(5)chkconfig sshd on 设置开机启动
(6)chkconfig sshd off 设置禁止开机启动
4、查看虚拟机IP地址 ifconfig
5、打开Xshell,新建会话,在主机中输入虚拟机的ip地址即可
三、Linux常用命令
1、命令提示符
[root@localhost ~]#
(1)root:当前登录用户
(2)localhost:主机名
(3)~:当前所在目录(家目录)
(4)#:超级用户的提示符
(5)$:普通用户的提示符
2、查询目录中内容
(1)ls -a 显示所有文件,包括隐藏文件
(2)ls -l 显示详细信息(ll相当于ls -l)
-rw-r--r--
-:文件类型(-文件,d目录,|软链接文件)
rw- r-- r--
u所有者 g所属组 o其他人
r 读 w 写 x 执行
(3)ls -d 查看目录属性
(4)ls -h 人性化显示文件大小
(5)ls -i 显示inode
3、目录处理命令
(1)创建目录 mkdir -p [目录名]
-p 递归创建 mkdir -p test1/test2
(2)切换所在目录
cd [目录]
cd ~或cd 进入当前用户的家目录
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
(3)查看当前所在目录
pwd
(4)删除空目录
rmdir [目录名]
(5)删除文件或目录
rm -rf [文件或目录]
-r 删除目录
-f 强制
(6)复制命令
cp [选项] [原文件或目录] [目标目录]
选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr
(7)剪切或改名命令
mv [原文件或目录] [目标目录]
如果原文件和目标在同一个目录下,则是改名;反之,则是剪切
(8)常用目录的作用
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录,启动相关文件
/dev 设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
/root 超级用户的家目录
/tmp 临时目录
/sbin 命令保存目录(超级用户才能使用的目录)
/proc和/sys 直接写入内存的
/usr 系统软件资源目录
/usr/bin/系统命令 (普通用户)
/usr/sbin/系统命令 (超级用户)
/var 系统相关文档内容
4、链接命令
ln -s [原文件] [目标文件]
生成链接文件,选项:-s 创建软链接
5、文件搜索命令
(1)locate 文件名
该命令是在后台数据库中按文件名搜索,搜索速度更快
该数据库的目录一般为/var/lib/mlocate
使用updatedb命令更新数据库
/etc/updatedb.conf 配置文件
PRUNE_BIND_MOUNTS="yes" 开启搜索限制
PRUNEFS= 搜索时,不搜索的文件系统
PRUNENAMES= 搜索时,不搜索的文件类型
PRUNEPATHS= 搜索时,不搜索的路径
(2)find命令
find [搜索范围] [搜索条件]
搜索文件
find / -name install.log
避免大范围搜索,会非常耗费系统资源
find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
Linux中的通配符
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
find /root -iname install.log 在root目录下不区分大小写
find /root -user root 在root目录下按照所有者搜索
find /root -nouser 在root目录下查找没有所有者的文件
find /etc -size 25k 查找etc目录下文件大小是25KB的文件
find /etc -size -25k 查找etc目录下文件大小小于25KB的文件
find /etc -size +25k 查找etc目录下文件大小大于25KB的文件
find /etc -inum 262422 查找etc目录下i节点是262422的文件
find /etc -size +20k -a -size -50k 查找/etc目录下大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
查找/etc目录下,大于20KB并且小于50KB的文件,并显示详细信息
-exec/-ok 命令{}\; 对搜索结果执行操作
6、搜索命令的命令
(1)whereis 命令名
搜索命令所在路径及帮助文档所在位置
-b:只查找可执行文件
-m:只查找帮助文件
(2)which 文件名
搜索命令所在路径及别名
7、搜索字符串命令grep
grep [选项] 字符串 文件名
在文件当中搜索匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串
8、帮助命令
man 命令 获取指定命令的帮助
命令 --help 获取命令选项的帮助
help shell内部命令 获取shell内部命令的帮助
9、压缩命令
(1).zip格式压缩
zip 压缩文件名 源文件 #压缩文件
zip -r 压缩文件名 源目录 #压缩目录
unzip 压缩文件 #解压缩.zip文件
(2).gz格式压缩
gzip 源文件 #压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件 #压缩为.gz格式,源文件保留
gzip -r 目录 #压缩目录下所有的子文件,但是不能压缩目录
gzip -d 压缩文件 #解压缩文件
gunzip 压缩文件 #解压缩文件
(3).bz2格式压缩
bzip2源文件 #压缩为.bz2格式,不保留源文件
bzip2 -k 源文件 #压缩之后保留源文件
注意:bzip2命令不能压缩目录
bzip2 -d 压缩文件 #解压缩,-k保留压缩文件
bunzip2 压缩文件 #解压缩,-k保留压缩文件
(4)打包命令tar
tar -cvf 打包文件名 源文件
选项:
-c:打包
-v:显示过程
-f:指定打包后的文件名
(5)解打包命令
tar -xvf 打包文件名
选项:
-x:解打包
(6).tar.gz压缩格式
其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式
tar -zcvf 压缩包名.tar.gz 源文件
选项:
-z:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
选项:
-x:解压缩.tar.gz格式
(7).tar.bz2压缩格式
tar -jcvf 压缩包名.tar.bz2 源文件
选项:
-z:压缩为.tar.gz格式
tar -jxvf 压缩包名.tar.bz2
选项:
-x:解压缩.tar.gz格式
10、关机与重启命令
(1)shutdown命令(相对安全的)
[root@localhost ~]# shutdown [选项] 时间
选项:
-c:取消前一个关机命令
-h:关机
-r:重启
(2)其它关机命令(不安全的)
[root@localhost ~]# half
[root@localhost ~]# poweroff
[root@localhost ~]# init 0
(3)其它重启命令
[root@localhost ~]# reboot(相对安全)
[root@localhost ~]# init 6(不建议使用)
(4)系统运行级别
0:关机
1:单用户
2:不完全多用户,不含NFS服务
3:完全多用户
4:未分配
5:图形界面
6:重启
[root@localhost ~]# runlevel #查询系统运行级别
11、挂载命令
(1)查询与自动挂载
[root@localhost ~]# mount
#查询系统中已经挂载的设备
[root@localhost ~]# mount -a
#依据配置文件/etc/fstab的内容,自动挂载
(2)挂载命令格式
[root@localhost ~]# mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
选项:
-t 文件系统:加入文件系统类型来指定挂载的类型,可以是ext3、ext4、iso9660等文件系统
-o 特殊选项:可以指定挂载的额外选项
(3)挂载光盘
[root@localhost ~]# mkdir/mnt/cdrom/
#建立挂载点
[root@localhost ~]# mount -t iso9660
#挂载光盘
[root@localhost ~]# mount /dev/sr0/mnt/cdrom/
(4)卸载命令
[root@localhost ~]# umount 设备文件名或挂载点
[root@localhost ~]# umount /mnt/cdrom
(5)挂载U盘
[root@localhost ~]# fdisk -l
#查看U盘设备文件名
[root@localhost ~]# mount -t vfat/dev/sdb1/mnt/usb/
注意:Linux默认是不支持NTFS文件系统的
12、用户登录查看命令
(1)查看用户登录信息
w或者who
(2)查询当前登录和过去登录的用户信息
last
(3)查看所有用户的最后一次登录时间
lastlog
四、Shell基础
1、Shell概述
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,
用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,
在Shell中可以直接调用Linux系统命令。
2、脚本执行方式
(1)echo输出命令
echo [选项] [输出内容]
选项:
-e:支持反斜线控制的字符转换
3、别名与快捷键
(1)查看与设定别名
alias
#查看系统中所有的命令别名
alias 别名= '原命令'
#设定命令别名
(2)别名永久生效与删除别名
vi ~/.bashrc
#写入环境变量配置文件
unalias 别名
#删除别名
(3)常用快捷键
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 从光标所在位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索
4、历史命令
history [选项] [历史命令保存文件]
选项:
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history
历史命令的调用:
使用上、下箭头调用以前的历史命令
使用“!n”重复执行第n条历史命令
使用“!!”重复执行上一条命令
使用“!字串”重复执行最后一条以该字串开头的命令
5、多命令顺序执行
(1)命令1; 命令2 #多个命令顺序执行,命令之间没有任何逻辑关系。
(2)命令1&&命令2 #逻辑与,当命令1正确执行,则命令2才会执行;当命令1执行不正确,则命令2不会执行。
(3)命令1|| 命令2 #逻辑或,当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行。
6、管道符
命令格式:
[root@localhost ~]# 命令1 | 命令2
#命令1的正确输出作为命令2的操作对象