入门篇
Linux概述
Linux安装
基础篇
文件与目录结构
- Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录
/,然后在此目录下在创建其他文件夹 /bin: 是Binary的缩写,这个目录存放着最经常使用的文件/sbin:s就是super user的意思,这里存放着系统管理员使用的系统管理程序/home:存放着普通用户的主目录,在**linux中的每一个用户都有一个自己的目录**,一般该目录是以用户的账号命名的/root:该目录为系统管理员,也称作超级权限者的用户主目录/boot:存放的是启动linux的一些核心文件,包括一些链接文件以及镜像文件/proc:虚拟目录,是系统内存的映射,可以访问该目录获得系统信息/srv:server缩写,存放服务启动后需要提取的数据/sys:安装了内核中新出现的一个文件系统/tmp:存放临时文件/dev:device,类似于windows的设备管理器,把硬件用文件存储/media:linux系统会自动识别一些设备,例如U盘、光驱等等,识别后,linux会把识别的设备挂载在这个目录下/mnt:系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看内容/opt:这是给主机额外安装软件的目录/usr/local: 这是另一个给主机额外安装软件的目录,一般通过编译源码方式安装的程序/var:该目录存放着不断扩充的东西,习惯将经常被修改的目录放在这个目录下,包括日志文件- 总结
linux有且只有一个根目录/- ``linux`的各个目录存放的内容是规划好的,不能乱放文件
linux是以文件的形式管理设备,因此**linux系统一切皆为文件**
VI/VIM编辑器

VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器,可以主动的以字体颜色辨别语法的正确性,方便程序设计
- 三种模式:一般模式、编辑模式、命令模式
- 一般模式:以
vim打开一个文件就直接进入一般模式,使用上下左右键来移动光标,可以删除、复制和粘贴
- 编辑模式:在命令模式下按下
i, I, o, O, a, A任何一个字母后进入编辑模式, 一般来说按i即可 - 按
Esc键退出编辑模式进入一般模式
- 命令模式:按下
: / ?中任意一个进入命令模式,光标移动到最底下那 一行 - 命令模式中, 可以提供搜寻资料的动作,而读取、存盘、大量取代字符、 离开 vi 、显示行号等动作均是在此模式中达成的,例如:
wq:写并退出q:直接退出q!:强制退出不保存
网络配置
网络连接模式


- VMware提供了三种网络连接模式:
- 桥接模式:虚拟机直接连接外部网络,主机起到了网桥的作用,虚拟机对外部网络可见
- NAT模式:虚拟机和主机构建一个专用网络,通过NAT设备对IP进行转换,虚拟机对外部网络不可见
- 仅主机模式:虚拟机只与主机共享一个专用网络,与外部网络无法通信
配置网络IP地址
- 查看 IP 配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33 - 将
ip地址配置成静态
|
|
- 编辑完后,按键盘
esc,然后输入:wq回车即可 - 重启网络服务:
serive network restart
- 物理机能ping通虚拟机,但是虚拟机ping不通物理机,一般都是因为物理机的防火墙问题,把防火墙关闭就行
- 虚拟机能ping通物理机,但是虚拟机ping不通外网,一般都是因为DNS的设置有问题
配置主机名
- 修改主机名:
hostnamectl set-hostname 主机名 - 查看主机信息:
hostnamectl
系统管理
Linux中的进程和服务
- 一个正在执行的程序或命令,被叫做进程
- 在Linux中,每个执行的程序或代码都称为一个进程。每个进程都分配一个ID号
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程
- 每个进程都可能以两种方式存在
- 前台进程:用户目前的屏幕上可以进行操作
- 后台进程:实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
- 前台进程:用户目前的屏幕上可以进行操作
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束
- 启动之后常驻内存的进程,被叫做服务
- 服务本身就是进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,比如(mysql、sshd、防火墙)因此我们又称为守护进程
service服务管理
- 基本语法:
systemctl start|stop|restart|status 服务名 - 服务所在目录:
/usr/lib/systemd/system - 查看服务名:
- 使用
setup->系统服务就可以看到
- 使用
- 系统运行级别(CentOS 6)
- 系统运行级别(CentOS 7)
multi-usertarget:等价于原运行级别3(多用户有网,无图形界面)graphical.target:等价于原运行级别5(多用户有网,有图形界面)
- 查看当前运行级别:
systemctl get-default - 修改当前运行级别:
systemctl set-default 运行级别CTRL + ALT + F2/1init 运行级别
- 配置服务是否开机自启动:
systemctl enable\disable 服务名 - 查看所有服务是否开机自启动:
systemctl list-unit-files
关机重启命令
远程登陆
- 远程登录:
ssh - 文件传输:
scp、sftp
实操篇
Shell可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面- 我们可以通过终端控制台来输入命令,由
shell进行解释并最终交给内核执行 - 本章就将分类介绍常用的基本
shell命令
帮助命令
- 获得外部命令帮助信息:
man 命令 - 获得外部命令帮助信息:
命令 --help - 获得内置命令帮助信息:
help 命令 - 判断命令类型:
type 命令 - 查看命令历史记录:
history
常用快捷键
- 停止进程:
ctrl + c - 清屏:
ctrl + l - 补全:
tab - 查找执行过的命令:
上下键
文件目录类
- 显示当前路径:
pwd - 切换目录:
cd [路径]..:回到上一级目录-:回到上次目录~:回到家目录
- 列出当前目录下文件:
ls [选项]-a:显示当前目录所有的文件和目录,包括隐藏的-l:以列表的方式显示信息/:列出根目录下文件
- 创建目录:
mkdir [选项] 目录名-p:创建多级目录
- 删除目录:
rmdir [选项] 目录名-p:删除多级目录
- 创建文件:
touch 文件名 - 复制文件或目录:
cp [选项] source dest-r:递归复制整个目录
- 删除文件或目录:
rm [选项] deleteFile-r:递归删除目录中所有内容-f:强制执行删除操作-v:显示详细执行过程
- 移动文件或目录或重命名:
mv source destmv oldNameFile newNameFile
- 查看文件内容:
cat [选项] 文件名-n:显示行号
- 查看文件内容(分屏):
more 文件名Enter:按行下翻Space:按页下翻b:按页前翻q:直接退出
- 查看文件内容(分屏,动态加载):
less 文件名- 快捷键同上
/字串:查找匹配子串n:向下查找N:向上查找
- 输出内容到控制台:
echo [选项] [输出内容] - 输出重定向到文件(覆盖写):
[内容] > [文件名] - 输出追加到文件:
[内容] >> [文件名] - 显示文件头部内容:
head [-n 行数] 文件名 - 显示文件尾部内容:
tail [-n 行数] 文件名-f:实时显示文件最新追加的内容,常用于查看日志记录
- 软链接:也叫符号链接,类似于
windows里的快捷方式,只保存链接路径- 创建:
ln -s [原文件或目录][软链接名] - 删除:
rm -rf 软链接名
- 创建:
- 硬链接:所有链接都指向同一个文件的
inode索引节点,当所有硬链接都被删除,则该文件被删除,默认一个新文件的硬链接数为1- 创建:
ln
- 创建:
- 查看命令的历史记录:
history
时间日期类
- 查看当前时间:
date - 设置系统时间:
date -s 字符串时间 - 查看日历:
cal
用户管理类
- 添加用户:
useradd 用户名 - 添加用户到组:
useradd -g 组名 用户名 - 设置用户密码:
passwd 用户名 - 验证用户是否存在:
id 用户名 - 查看所有用户:
cat /etc/passwd - 切换用户:
su 用户名 - 查看当前登录用户名:
whoami - 查看当前进程用户名:
who am i - 普通用户临时获取root权限:
sudo 命令- 事先需要以
root身份修改文件/etc/sudoers添加该普通用户
- 事先需要以
- 删除用户:
userdel 用户名 - 新增组:
groupadd 组名 - 修改用户所属组:
usermod -g 组名 用户名 - 修改组名:
groupmod -n newName oldName - 删除组:
groupdel 组名 - 查看所有组:
cat /etc/group
文件权限类

- 使用
ls -l显示文件所有信息
- 改变文件权限
chmod
-
r=4 w=2 x=1、rwx=4+2+1=7 -
修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限:
chmod -R 777 目录名/ -
改变文件或目录所有者:
chown [选项][最终用户][文件或目录]-R:递归操作
-
改变文件或目录所属组:
chgrp [最终用户组][文件或目录]
搜索查找类
- 查找文件或目录:
find [搜索范围][选项]-name 文件名:按指定文件名查找-user 用户名:按指定用户名查找所属文件-size 文件大小:按指定文件大小查找文件c:字节w:字(2字节)b:块(512字节)k:千字节M:兆字节G:吉字节
- 快速定位文件路径:
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件- 创建
locate数据库:updatedb - 查找文件路径:
locate 文件名
- 创建
- 查找命令的路径
which 命令名whereis locate
- 内容过滤查找和管道操作:管道符
|表示将前面命令的结果传给后面命令来处理grep [选项] 查找内容 源文件-n:显示行号
压缩和解压类
- 压缩文件:
gzip 文件名 - 解压文件:
gunzip xxx.gz - 压缩目录:
zip [选项] xxx.zip 目录名-r:压缩目录
- 解压目录:
unzip [选项] xxx.zip-d 目录名:指定解压后文件存放目录
gzip压缩不保留源文件;zip压缩保留源目录
- 打包:
tar [选项] xxx.tar.gz 要打包的内容-c:打包-z:打包并压缩-x:解包-C:解压到指定目录-v:显示详细信息-f:指定压缩后的文件名
磁盘分区类
- 查看文件和目录占用的磁盘空间:
du 目录/文件-h:以GBytes,MBytes,KBytes等格式显示-a:统计所有文件和子目录-s:只显示总和,不显示子目录和文件--max-depth=n:指定统计子目录的深度为第n层
- 查看磁盘剩余空间:
df [选项]-h:以GBytes,MBytes,KBytes等格式显示
- 查看设备挂载情况:
lsblk [选项]-f:查看详细情况,先文件系统信息
- 挂载:虚拟目录与物理硬盘空间的映射关系
mount [-t vfstype] [-o options] device dir
- 卸载设备:
umount 设备文件名或挂载点
- 硬盘分区
fdisk

进程管理类

- 查看系统中所有进程:
ps aux | grep xxx - 查看父子进程之间的关系:
ps -ef | grep xxx


- 通过进程号终止进程:
kill [选项] 进程号-9:强迫进程立即停止
- 通过进程名终止进程:
killall 进程名称 - 实时监控进程状态:
top [选项]




- 查看进程的网络状态:
netstat -anp | grep 进程号 - 查看网络端口号占用情况:
netstat -nlp | grep 端口号

- 系统定时任务:
crontab [选项]


扩展篇
软件包管理
ubuntu:apt-getcentos:rpm、yum(推荐)- 查询所安装的所有
rpm软件包:rpm -qa- 由于软件包比较多,一般都会采取过滤:
rpm -qa | grep rpm软件包
- 由于软件包比较多,一般都会采取过滤:
- 卸载
rpm软件包:rpm -e RPM软件包 - 安装
rpm软件包:rpm -ivh - 查看已安装的所有软件:
yum list - 使用
yum安装软件:yum -y [参数] 软件名install:安装rpm软件包update:更新rpm软件包check-update:检查是否有可用的更新rpm软件包remove:删除指定的rpm软件包list:显示软件包信息clean:清理yum过期的缓存deplist:显示yum软件包的所有依赖关系
- 使用
yum卸载软件:yum remove 软件名 - 修改
yum源

Shell编程
shell脚本入门
shell:外壳
- 脚本一般以
#!/bin/bash开头(指定解析器)



变量
系统预定义变量

自定义变量

特殊变量
$n

$#


$*、$@

$?

运算符
$((运算式))或$[运算式]
条件判断


流程控制








读取控制台输入


函数


正则表达式



文本处理工具





综合应用案例



