目录
一、前期必备知识
1、命令提示符
[root@jasonNB ~]#
root表示⽤户名信息
@为分隔符
jasonNB为主机名称
~表示所处⽬录位置,默认是家⽬录
[tony@jason001 ~]$
普通用户结尾是$符号
2、命令格式规范(语法规范)
- linux中的命令区分⼤⼩写
- linux命令使⽤过程中,注意空格的⽤法,简单来说就是相当于一句话,需要一个个字分开一样。
- 做一步检查一步,Linux中很多时候命令执行完毕之后没有结果 这是一个好的现象 如果出现结果就是报错了
- 在填写文件路径的时候 尽量不要自己写 使用Tab补全
- 强调:在linux系统中,尽量不要输⼊中⽂符号信息(命令⾏)
3、系统路径信息(⽬录结构)
linux 的目录结构类似树状图,⼀切从根目录开始依次往下查找,往下产生分支。
4、路径信息查找⽅法
绝对路径:从根开始查找 /etc /etc/hosts
缺点:如果层级⽐较多的时候,利⽤绝对路径查找数据会⽐较麻烦
优点:定位查询数据的准确性更⾼
相对路径:不从根开始进⾏查找, 相对于当前路径⽽⾔, 进⾏查找数据
优点:如果层级⽐较多的时候,利⽤相对路径查找数据会⽐较⽅便
缺点:路径信息不正确,数据⽆法有效查询到
二、系统运⾏命令
帮助指令
可以使用man和help查看命令的使用方式
基本语法:
man [命令或配置文件](功能描述:获得帮助信息)
基本语法:
help命令 (功能描述:获得shell内置命令的帮助信息)
ps:看不懂就不要硬看,直接问度娘
关机/重启命令
关机命令 shutdown
shutdown -h 10 # 指定多少分钟后进⾏关机
shutdown -c # 取消关机⽅案
shutdown -h 0/now # ⽴即关机
init 0 或halt #就是直接使用,效果等价于关机
重启命令 shutdown
shutdown -r 10 # 指定多少分钟后进⾏重启
shutdown -r 0/now # 表示进⾏⽴即重启操作
shutdown -c # 取消重启⽅案
init 6 或reboot #重启系统
三、快捷方式命令
01. 显示历史输⼊命令信息
利⽤⽅向键 上 下
02. 清楚所有屏幕信息输出
ctrl + l # clear
03. 中断取消命令执⾏过程
ctrl + c # cancel 取消
04. 快速移动光标到⾏⾸
ctrl + a
05. 快速移动光标到⾏尾
ctrl + e
06. 将光标所在位置到⾏⾸的信息进⾏删除(剪切)
ctrl + u
将光标所在位置到⾏尾的信息进⾏删除(剪切)
ctrl + k
07. 将剪切内容进⾏粘贴回来
ctrl + y
08. 锁定系统窗⼝信息状态
ctrl + s
解锁系统窗⼝信息状态
ctrl + q
09. 系统命令补全快捷⽅式(重点)
tab
10. 命令⾏中快速移动光标
ctrl + ⽅向键 左 右 (按照英⽂单词进⾏移动光标)
四、⽬录结构与文件相关命令
ps:
1.执行一下吃不准的操作 可以先制作系统快照 之后可以回退
2.中括号中的参数表示可以有也可以不写
1、pwd显示当前目录绝对路径指令
基本语法:
pwd (功能描述:显示当前工作目录的绝对路径)
# print working directory显示当前所在路径
2、cd切换到指定目录指令
基本语法:
cd [参数] (功能描述:切换到指定目录)
# change directory改变⽬录信息
常用参数:
绝对路径或相对路径
cd~或者cd 回到当前登陆⽤户的家目录
cd.. 回到当前目录的上一级目录
cd - 快速切换路径,返回到上⼀次所在路径信息
cd ../.. 往上多级跳转
3、mkdir创建目录指令
基本语法:
mkdir [选项] 要创建的目录
# make directory
ps:创建多级⽬录需要加参数-p
mkdir -p /oldgirl/oldbaby/heihei
''' 建议:创建⽬录时以绝对路径创建⽬录'''
4、rmdir删除空目录指令
基本语法:
rmdir [选项] 要删除的空目录
使用细节:
rmdir删除的是空目录
如果目录下有内容时,是无法删除的
提示:
如果需要删除非空目录,需要使用以下命令
rm -rf 要删除的目录
5、ls显示目录或文件指令
基本语法:
ls [选项] [目录或是文件]
# list
显示⽂件/⽬录数据详细信息
常用选项:
-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息
ls -l也可以直接写成:ll
排序:按照⽇期查找⽂件
ls -lt a.txt
ls -ltr a.txt
6、touch创建空文件指令
作用:
touch指令创建空文件
基本语法:
touch 文件名称
ps:我们在创建文件的时候可以发现linux系统对文件的后缀名并不敏感
7、cp拷贝(复制)文件到指定目录指令【重要】
作用:
cp指令拷贝文件到指定目录
基本语法:
cp [参数信息] source dest
# copy
source:要进⾏复制的信息
dest:复制到什么位置
常用选项:
-r 递归复制整个文件夹下所有内容
-p:保留源文件或目录的属性
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-f:强行复制文件或目录,不论目标文件或目录是否已存在
-a:此参数的效果和同时指定"-dpR"或"-dR --preserve=all"参数相同。用于复制整个目录,包括目录中的子目录等都递归的复制,而且还要保持文件的访问模式,所有者、时间戳等属性与原文件一样。
案例1:
将/etc/hosts⽂件复制到/oldboy⽬录中
指令:
cp /etc/hosts /oldboy/
如果被复制文件夹末尾不加斜杠并且oldboy末尾也没有斜杠,意思则变成复制到根目录并改名成oldboy
案例2:
复制整体⽬录数据
指令:
cp -r /etc/sysconfig/ /oldboy/oldgirl/
我们复制目录下的所有数据时,会出现确认提示,所有文件都需要确认,在cp前面加上撬棍就可以避免提示信息出现
# 重复复制避免提示信息出现
指令:
\cp -r /etc/sysconfig/ /oldboy/oldgirl/
'''cp核⼼功能:备份数据信息'''
之前我们提过,linux对文件后缀不敏感,这里得到了充分体现,只要换个后缀就可以对文件进行备份.
cp oldboy.txt oldboy.txt.bak
cp oldboy.txt.bak oldboy.txt
常⻅问题:
1.在复制⽂件时,不要在⽂件名称后⾯加上/ ⼀般只有⽬录后⾯有/
2.⽂件没有存在会直接复制,如果已经存在会提示是否覆盖
注意:一定要注意你当前的目录位置,然后要准确的定位源目录和,目标目录
强制覆盖相同文件
8、rm移除文件或目录指令
注意事项:rm操作最好是切换到⽬标数据所在位置删除不推荐使⽤绝对路径,如果删错了会很麻烦,毕竟你可能找不到删了哪个文件了.
作用:
rm指令移除文件或目录
基本语法:
rm [参数] 要删除的文件或目录
# remove
常用选项:
-r 递归删除整个文件夹
-f 强制删除不提示
案例1:
删除oldboy⽬录中的hosts01⽂件
指令:
这里我先进入了oldboy目录中因此使用的是相对路径
rm hosts01
案例2:
#删除⽬录操作
这里是一些小细节导致的不同,使用时需要注意
rm shanghai/ 报错
rm -r shanghai/ 正确
# 如何强制删除数据信息
rm -f olddog.txt 不提示
rm -rf jason 不提示
9、mv移动文件与目录或重命名指令
作用:
对⽂件或⽬录数据信息进⾏剪切(移动),还可以进行重命名
基本语法:
mv 参数 要移动数据信息 移动到什么位置
# move
mv oldNameFile newNameFile (功能描述:重命名)
mv/temp/movefile/targetFolder (功能描述:移动文件)
案例1:
移动/etc/selinux/config 到 /oldboy/shanghai/
步骤:
1.先验证是否有对应的⽬录 ⽆则先创建(如果没创建目录,无法移动文件)
2.确认⽆误后再剪切
3.mv操作有时⽐较危险 针对核⼼⽂件移⾛可能会出错
指令:
mv /etc/selinux/config /oldboy/shanghai/
mv /oldboy/shanghai/config /etc/selinux/
还可以针对单个⽂件重命名
mv hosts hosts01
10、cat查看文件内容指令
作用:
cat查看文件内容 (是以只读的方式打开)
基本语法:
cat [选项] 要查看的文件
整合:
将oldboy和oldgirl的内容写到olddog中,并且会覆盖olddog中的内容,如果写两个大于号就是在末尾追加内容
cat oldboy.txt oldgirl.txt > olddog.txt
常用选项:
-n 显示行号
11、echo输出内容到控制台指令
作用:
echo输出内容到控制台
基本语法:
echo [选项] [输出内容]
# 将信息进⾏输出
echo hello world # 等价于print('hello world')
echo hello world > /oldgirl/oldgirl.txt
# 相当于python文本编辑中的w模式,使用echo就是在覆盖后在控制台打印内容
echo baby.com >> /oldgirl/oldgirl.txt
# 追加模式
12、>输出重定向和>>追加指令
这两个指令在上面的指令中也有提到过
作用:
< 输出重定向 (功能描述:会将原来的文件内容覆盖)
<< 追加 (功能描述:不会覆盖原来文件的内容,而是追加到文件的尾部)
基本语法:
ls-l>文件 (功能描述:列表的内容写入文件z.txt中[覆盖写])
ls al>>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
cat文件1>文件2 (功能描述:将文件1的内容覆盖到文件2)
echo"内容">>文件
把内容两个字添加到某个文件末尾
13、history查看已执行过的历史命令指令(等同于键盘的上下键)
作用:
查看已执行过的历史命令
也可以执行历史指令
基本语法:
history (功能描述:查看已经执行过历史命令)
五、文件编辑命令(重要)
进行文件编辑需要使用vi(系统自带的)与vim(第三方工具,需要下载,功能更好用)命令
第⼀个⾥程:利⽤vi命令打开⽂件
vi oldboy.txt
这时候我们就进入了一般模式,键盘上输入一些字母,可以进入不同的模式
第⼆个⾥程:进⼊到编辑模式,开始编辑⽂件
- 按键盘上⼩写字⺟ i
第三个⾥程:进⾏编辑
第四个⾥程:退出编辑模式
- 按esc进⾏退出
第五个⾥程:关闭打开的⽂件
这时候我们先点英文输入下的冒号,进入命令行模式,这个时候窗口下方会出一行冒号开头的输入行,我们输入不同的指令会有不同的效果:
:wq w-write q-quit 保存退出
:q! 有时候在vi编辑模式必须加感叹号不保存强制进⾏退出(通常在我们编辑内容后如果不想保存需要使用q!)
六、编辑相关快捷方式
1.光标快速移动快捷⽅式
如何将光标快速移动到最后⼀⾏ # ⼤写字⺟ G
如何将光标快速移动到第⼀⾏ # ⼩写字⺟ gg
如何快速移动光标到中间指定⾏ # ⼩写字⺟ 10gg
如何快速移动光标到⼀⾏的⾏尾 # 符号信息 shift+$
如何快速移动光标到⼀⾏的⾸部 # 数字信息 0
2.移动光标转为编辑状态
如何快速移动光标到下⼀⾏并进⼊编辑状态 # ⼩写字⺟ o
如何快速移动光标到⼀⾏的⾏尾并进⾏编辑 # ⼤写字⺟ A
如何快速删除光标所在位置到⼀⾏⾏尾所有信息并进⼊编辑状态
# ⼤写字⺟ C
如何清空当前⾏的所有内容信息并进⼊编辑状态 # ⼩写字⺟ cc
3.快速编辑⽂本内容信息
如何复制⽂本信息 ⼩写字⺟ yy
如何复制多⾏信息 3yy
如何粘贴⽂本信息 ⼩写字⺟ p
如何粘贴多⾏信息 3p
如何删除⽂本信息 ⼩写字⺟ dd 实际是将指定⾏信息进⾏剪切
如何删除多⾏信息 3dd
将光标所在⾏到最后⼀⾏都删除 字⺟ dG
4.特殊操作⽂本内容⽅式
如何显示⽂本⾏号信息/如何取消⾏号 :set nu/:set nonu
如何撤销编辑信息 ⼩写字⺟ u undo
如何取消撤销操作 ctrl + r redo
快速搜索⽂件信息 /待搜索内容
按n查找下⼀个匹配项 shift+n上⼀个匹配项
5.批量操作⽂本内容
批量删除操作
第⼀个步骤:移动光标到相应位置
第⼆个步骤:进⼊到批量编辑模式(视图块模式)
ctrl + v
第三个步骤:选中多⾏信息
⽅向键选中
第四个步骤:进⾏删除
⼩写字⺟ d 或者 x(删除光标选中的内容)
八、vim下载
linux中缺什么就下载什么 yum
yum install 名称 -y
yum install vim tree bash-completion -y
九、目录结构
bin目录
存放二进制命令文件
sbin目录
存放管理员二进制命令文件
etc目录
存放系统或者服务的配置文件
mnt目录
临时挂在目录(资源的入口)
opt目录
存放第三方软件(通常情况下就是软件的压缩包)
proc目录
内存相关信息
tmp目录
临时存放数据
var目录
经常变化的文件(日志文件)
usr目录
用户相关程序
十、目录结构说明
结构特点说明
1) linux根下⾯的⽬录是⼀个有层次的树状结构
2) linux每个⽬录可以挂载在不同的设备(磁盘)上 挂载
磁盘-设备(房间) 想存储东⻄ 从⻔进⼊>:⽬录(挂载
点)
磁盘设备 《-- 挂载 --》 ⻔(⽬录)
实践操作实现挂载过程
第⼀个⾥程:拥有⼀个存储设备(光驱)
第⼆个⾥程:找到相应光驱设备
[root@jasonNB ~]# ls /dev/cdrom
/dev/cdrom
[root@jasonNB ~]# ls -l /dev/cdrom
lrwxrwxrwx. 1 root root 3 Dec 6 09:07 /dev/cdrom -> sr0
第三个⾥程:进⾏挂载操作
mount /dev/cdrom /mnt/(挂载点⽬录⼀定存在)
⽬录结构说明
第四个⾥程:确认是否挂载成功
ls /mnt
第五个⾥程:取消挂载
umount /mnt
十一、重要目录数据
1.⽹卡配置⽂件
/etc/sysconfig/network-scripts/ifcfg-eth0 ens33
# 编辑⽹卡⽂件时可以先提前备份⼀份
cp xxx /tmp/xxx.bak
ps:esc + . 调⽤上⼀个命令最后⼀个参数信息
# ⽹卡⽂件修改后,必须重启⽹络服务
systemctl restart network
初始化软件安装 yum install -y vim tree bashcompletion(提供命令参数补全功能 systemctl)
"""
BOOTPROTO=none 启动协议 获取IP地址的⽅法 ⾃动获取 dhcp⼿动
设置
DEFROUTE=yes 开启了默认路由 ⽹络(默认路由 动态路由 静态路
由)
NAME=eth0 ⽹卡逻辑名称
UUID=... 在虚拟化软件标识⼀些硬件设备信息
DEVICE=eth0 ⽹卡设备名称
ONBOOT=yes 确保⽹卡是否处于激活状态
IPADDR=10.0.0.200 IP地址设置
PREFIX=24 设置⼦⽹掩码确保⼀个局域⽹⾥⾯可以连接多少台主机默
认253
GATEWAY=10.0.0.254 ⽹关信息 不同局域⽹之间进⾏通讯的必经
关卡 需要和虚拟编辑器中nat⽹卡设置保持⼀致
IPV6_PRIVACY=no
DNS=114.114.114.114 DNS 域名解析服务
"""
2.DNS服务设置⽅法
⽅法⼀:设置为阿⾥云dns服务器地址
223.5.5.5
223.6.6.6
⽅法⼆:通⽤dns服务器地址
114.114.114.114
114.114.114.119
⽅法三:利⽤移动dns服务器(⾕歌dns服务器)了解即可
8.8.8.8
⽅法四:使⽤⽹关地址充当dns服务器地址
10.0.0.254
3.⽹卡域名解析配置⽂件
域名配置文件地址 /etc/resolv.conf
查看当前DNS网址 cat /etc/resolv.conf
修改当前DNS网址 vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 223.5.5.5
配置完成,⽴即⽣效 ⽹卡的dns配置优先于resolv.conf⽂件中的配置
4.主机名称配置⽂件
centos6 /etc/sysconfig/network 主机名称配置⽂件
centos7 /etc/hostname 主机名称配置⽂件
修改主机名称
第⼀个⾥程:利⽤命令修改主机名称 # 临时修改
hostname jasonNB
ps:修改完成,需要重新连接,才能命令⽣效
第⼆个⾥程:编辑修改配置⽂件 # 永久修改
vi /etc/hostname
centos7有特殊修改主机名称⽅式
hostnamectl set-hostname oldboyds05
5.本地域名解析⽂件 /etc/hosts
⽹站⻚⾯信息变更
⼩公司 直接调试线上服务器 夜⾥操作
⼤企业 直接调试测试服务器测试访问 模拟真实环境访问
京东线上⽹站服务器地址 112.65.34.1
京东线下⽹站服务器地址 10.0.0.200
⽹络不通排查流程
etc⽬录下重要的数据⽂件
[root@jasonNB ~]# vi /etc/hosts
10.0.0.200 www.jd.com # 指定映射关系