入门篇
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/1
init 运行级别
- 配置服务是否开机自启动:
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 dest
mv 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-get
centos
: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
$#
$*
、$@
$?
运算符
$((运算式))
或$[运算式]