这里是简单的动态分配ip
查看linuxip的命令是ifconfig ,etho的内容是网卡的信息
lo是循环
linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目
录下再创建其他的目录。
在 Linux 世界里,一切皆文件(即使是一个硬件设备,也是使用文本来标志)
总结:
\1) 在 linux 中,目录结构 有一个 根目录 / ,其他的目录都是在 / 目录分支。
\2) 在 linux 中,有很多目录,是安装后,有自动有目录,每个目录都会存放相应的内容,不要去修
改.
\3) 在 linux 中,所有的设备都可以通过文件来体现(字符设备文件[比如键盘,鼠标],块设备文件[硬
盘])
\4) 在学习 linux 时,要尽快的在脑海中,形成一个 目录树
Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终
端的目的。 (setup找到系统服务,找到sshd查看是否开启)
为什么需要远程登录?
说明: 公司开发时候, 具体的情况是这样的
\1) linux服务器是开发小组共享的.
\2) 正式上线的项目是运行在公网的.
\ 3) 因此程序员需要远程登录到centos进行项目管理或者开发.
\4) 画出简单的网络拓扑示意图(帮助理解)
可以将Windows的文件传输到linux 之中去
SecureCRT 软件也是一样的功能,操作都是只需要填写linux的ip地址,选择SFTP协议,端口号为22,用户名即为linux的用户名
正常模式(vim …)
以 vim 打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。在正常模式下可以使用快捷键
插入模式(编辑模式)(i)
按下i(insert), I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.
命令行模式(ESC :wq :q :q!)
在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的!
\1) 拷贝当前行 yy , 拷贝当前行向下的5行 5yy,并粘贴 p。【快捷键在正常模式下使用】
\2) 删除当前行 dd , 删除当前行向下的5行 5dd
\3) 在文件中查找某个单词 [命令模式下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ]
\4) 设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]
\5) 编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg] 【正常模式下】
\6) 在一个文件中输入 “hello” ,然后又撤销这个动作 u 【正常模式下】
\7) 编辑 /etc/profile 文件,并将光标移动到 20行 shift+g
\8) 更多的看整理的文档
shutdown –h now 立该进行关机 【halt】
shudown -h 1 “hello,关机" “hello, 1 分钟后会关机了”
shutdown –r now 现在重新启动计算机 [reboot]
halt 关机,作用和上面一样.
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘.
注意细节***
不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
基本介绍:
1)登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份.
2)在提示符下输入 logout 即可注销用户【不同的shell 可能不同(logout exit)】
使用细节:
1)logout 注销指令在图形运行级别(简单提一下:0-6个级别)无效,在 运行级别3下有效.
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统
管理员申请一个账号,然后以这个账号的身份进入系统
useradd 用户名
使用细节
\1) 当创建用户成功后,会自动的创建和用户同名的家目录 【/home/xiaoming】
\2) 也可以通过 useradd -d 指定目录 新的用户名 jack,给新创建的用户指定家目录
passwd 用户名 // 如果没有带用户名,则是给当前登录的用户修改密码 // 需要 root 用户
删除用户 xiaoming,但是要保留家目录 userdel 用户名 //userdel xiaoming
删除用户以及用户主目录 // userdel – r xiaoming 【小心使用】
在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如
root
su – 切换用户名
\1) 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
\2) 当需要返回到原来用户时,使用 exit 指令
\3) 如果 su – 没有带用户名,则默认切换到 root 用户
groupadd 组名
➢ 指令(基本语法)
useradd – g 用户组 用户名
➢ 增加一个用户 zwj, 直接将他指定到 wudang
groupdel 组名
这里有一个前提,就是这个组没有用户,才能删除。
usermod – g 新的组名 用户名
创建一个 shaolin 组,让将 zwj 用户修改到 shaolin
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell [图]
7.9.2 /etc/shadow 文件 (密码这些)
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活
动时间:失效时间:保留 [图]
7.9.3/etc/group 文件
组(group)的配置文件,记录 Linux 包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
➢ 运行级别说明:
\1) 0 :关机
\2) 1 :单用户 [类似安全模式, 这个模式可以帮助找回 root 密码]
\3) 2:多用户状态没有网络服务
\4) 3:多用户状态有网络服务 [使用最多]
\5) 4:系统未使用保留给用户
\6) 5:图形界面 【】
\7) 6:系统重启
常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件
➢ 如何指定运行级别(vim)
/etc/inittab 的
id:5:initdefault:这一行中的数字
命令: init [012356] https 协议
通过 init 来切换不同的运行级别,比如动 5-3 , 然后关机
init 5
init 3
init 0
\1) 假设我们的 root 密码忘记了,请问如何找回密码【练习】
启动时->快速输入 enter->输入 e-> 进入到编辑界面-> 选择中间有 kernel 项->
入 e(edit)-> 在该行的最后写入 1 [表示修改内核,临时生效]-> 输入 enter->
入 b [boot]-> 进入到单用模式 【这里就可以做补救工作】
\2) 请设置我们的 运行级别, linux 运行后,直接进入到 命令行终端(3 级别)
➢ 基本语法
man [命令或配置文件](功能描述:获得帮助信息)
➢ 应用实例
案例:查看 ls 命令的帮助信息
man ls
基本语法
help 命令 ➢ 应用实例 | (功能描述:获得 shell 内置命令的帮助信息) |
---|---|
案例:查看 cd 命令的帮助信息
help cd
pwd | (功能描述:显示当前工作目录的绝对路径) |
---|---|
ls [选项] [目录或是文件]
常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的 (文件名以.开头就是隐藏)。
-l :以列表的方式显示信息
-h : 显示文件大小时,以 k , m, G 单位显示
cd ~ 或者 cd :回到自己的家目录
cd … | 回到当前目录的上一级目录 |
---|---|
案例 1:使用绝对路径切换到 root 目录 | [cd /root] |
---|---|
案例 2: 使用相对路径到/root 目录 [ cd …/root] 案例 3:表示回到当前目录的上一级目录 [ cd …] | |
案例 4:回到家目录 | [ cd ~ ] |
mkdir 指令用于创建目录
-p :创建多级目录
案例 1:创建一个目录 /home/dog
mkdir /home/dog
案例 2:创建多级目录 /home/animal/tiger
mkdir -p /home/animal/tiger
rmdir 指令删除空目录
案例 1:删除一个目录 /home/dog
rmdir /home/dog [要求 /home/dog 空目录]
rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录
比如:
rm -rf /home/dog
r: 表示递归删除,就是将该目录下的文件和子目录全部删除
f: 表示强制删除,就是不需询问
touch 指令创建空文件, 还可以更新文件的修改时间
案例 1: 创建一个空文件 hello.txt
touch hello.txt
说明:如果文件存在,则表示刷新该文件的修改时间
cp 指令[copy 拷贝]
cp [选项] source【源】 dest【目的文件】
-r :递归复制整个文件夹
强制覆盖不提示的方法:\cp: \cp
rm 指令移除文件或目录
-r :递归删除整个文件夹
-f : 强制删除不提示
mv 移动文件与目录或重命名
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件或目录)
cat 查看文件内容
-n :显示行号
应用实例
案例 1:
/ect/profile 文件内容,并显示行号
cat -n /etc/profile | more
说明:如果需要一行行,输入 enter
如果需要翻页 ,输入空格键.
如果需要退出,输入 q
使用细节
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more
cat xxx.txt | more (把 cat xxx.txt 输出结果交给 more 处理)
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。 more
指令中内置了若干快捷键,详见操作说明
快捷键
操作 | 功能说明 |
---|---|
空 白 键 | 代表向下翻一页; |
(space) | |
---|---|
Enter | 代表向下翻『一行』; |
q | 代表立刻离开 more ,不再显示该文件内容。 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各
种显示终端。 less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要
加载内容,对于显示大型文件具有较高的效率。
案例: 采用 less 查看一个
大文件文件
;; >覆盖内容。>>追加内容 cal 显示日历信息
echo 输出内容到控制台。
应用实例
案例: 使用 echo 指令输出环境变量,比如 PATH
echo $PATH
env
修改环境变量
vim /etc/profile [系统的环境变量]
head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
head 文件 (功能描述:查看文件头 10 行内容)
head -n 5 文件 | (功能描述:查看文件头 5 行内容, 5 可以是任意行数) |
---|---|
案例: 查看/etc/profile 的前面 5 行代码
head -n 5 /etc/profile
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容
\1) tail 文件 (功能描述:查看文件头 10 行内容)
\2) tail -n 5 文件 (功能描述:查看文件头 5 行内容, 5 可以是任意行数)
\3) tail -f 文件 (功能描述:实时追踪该文档的所有更新)使用Xshell写该命令,当linux对该文档有更新时会在Xshell显示
案例 2: 实时监控 date.log , 看看到文件有变化时,是否看到, 实时的追加日期
\1) ls -l >文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
\2) ls -al >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
\3) cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
\4) echo “内容”>> 文件
案例 1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中
ls – l /home/ > /home/info.txt [如果文件不存在,则会自动创建]
案例 2: 将当前日历信息 追加到 /home/mycal 文件中
date >> /home/mycal
软链接也成为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
案例 1: 在/home 目录下创建一个软连接 linkToRoot,连接到 /root
ln -s /root/ linkToRoot
案例 2: 删除软连接 linkToRoot
rm – rf linkToRoot [在看]
细节说明
当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在目录。
查看已经执行过历史命令,也可以执行历史指令
案例 1: 显示所有的历史命令
history
案例 2: 显示最近使用过的 10 个指令。
history 10
案例 3: 执行历史编号为 5 的指令 !5
!5
\1) date (功能描述:显示当前时间)
\2) date +%Y (功能描述:显示当前年份)
\3) date +%m (功能描述:显示当前月份)
\4) date +%d (功能描述:显示当前是哪一天)
\5) date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
date | -s | 字符串时间 |
---|---|---|
案例 1: 设置系统当前时间 , 比如设置成 2018-09-05 11:11:50
案例 1: 显示当前日历
cal
案例 2: 显示 2020 年日历
cal 2020
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
find [搜索范围] [选项]
案例 1: 按文件名:根据名称查找/home 目录下的 hello.txt 文件
find /home -name hello.txt
案例 2:按拥有者:查找/opt 目录下,用户名称为 nobody 的文件
find | /opt | -user nobody |
---|---|---|
案例 3:查找整个 linux 系统下大于 10M 的文件(+n 大于 | -n 小于 |
n 等于)
find / -size +10M
ctrl+c可以退出
locate 指令可以快速定位文件路径。 locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数
据库实现快速定位给定的文件。 Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结
果的准确度,管理员必须定期更新 locate 时刻。
locate 搜索文件
特别说明
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
grep [选项] 查找内容 源文件
案例 1: 请在 /etc/profile 文件中,查找 “if” 所在行,并且显示行号
grep – n if /etc/profile [在/etc/profile 中查找 if ,并显示行,区别大小写]
grep – ni if /etc/profile [在/etc/profile 中查找 if ,并显示行,不区别大小写]
案例 2: 配合 管道 | 使用案例, 查看当前服务器有没有 sshd 服务在监听.
gzip 文件 | (功能描述:压缩文件,只能将文件压缩为*.gz 文件) |
---|---|
gunzip 文件.gz | (功能描述:解压缩文件命令) |
案例 1: gzip 压缩, 将 /home 下的 hello.txt 文件进行压缩
案例 2: gunzip 压缩, 将 /home 下的 hello.txt.gz 文件进行解压缩
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
基本语法
zip [选项] XXX.zip unzip [选项] XXX.zip | 需要压缩的内容(功能描述:压缩文件和目录的命令) |
---|---|
➢ zip 常用选项 | (功能描述:解压缩文件) |
-r:递归压缩,即压缩目录
➢ unzip 的常用选项
-d<目录> :指定解压后文件的存放目录
➢ 应用实例
案例 1: 将 /home 下的 所有文件进行压缩成 mypackage.zip [退出 home]
zip | -r | mypackage.zip /home/ |
---|---|---|
案例 2: | 将 mypackge.zip 解压到 /opt/tmp 目录下 | |
unzip – d /opt/tmp | mypackage.zip | [如果/opt/tmp 不存在,会自动创建] |
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。 [可以压缩,和解压]
tar [选项] XXX.tar.gz 打包的内容/目录 (功能描述:打包目录,压缩后的文件格式.tar.gz)
1 案例 1: 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz 【zcvf】 zxvf
tar -zcvf a.tar.gz a1.txt a2.txt [注意,路径要写清楚]
2 案例 2: 将/home 的文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/ [注意,路径写清楚]
3 案例 3: 将 a.tar.gz 解压到当前目录
tar -zxvf a.tar.gz
4 案例 4: 将 myhome.tar.gz 解压到 /opt/tmp2 目录下 【-C】
tar -zxvf myhome.tar.gz -C /opt/tmp2 [注意; /opt/tmp2 事先需要创建好]
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件
有所有者、 所在组、其它组的概念。
\1) 所有者
\2) 所在组
\3) 其它组
\4) 改变用户所在的组
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
指令: ls – ahl
应用实例 :创建一个组 police,再创建一个用户 tom,将 tom 放在 police 组 ,然后使用 tom 来创建一个
文件 ok.txt,
chown 用户名 文件名
使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 tom
chgrp 组名 文件名
➢ 应用实例
使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组【root】,然后将这个文件所在组,
修改到 police 组。
chgrp police orange.txt
在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户
所在的组。
改变用户所在组
\1) usermod – g 组名 用户名
\2) usermod – d 目录名 用户名 改变该用户登陆的初始目录。
➢ 应用实例
创建一个土匪组(bandit)将 tom 这个用户从原来所在的 police 组,修改到 bandit(土匪) 组
Usermod -g bandit tom
chown newowner file | 改变文件的所有者 |
---|---|
chown newowner:newgroup file | 改变用户的所有者和所有组 |
-R | 如果是目录 则使其下所有子文件或目录递归生效 |
➢ 案例演示:
\1) 请将 /home/abc.txt 文件的所有者修改成 tom
chown tom /home/abc.txt
\2) 请将 /home/kkk 目录下所有的文件和目录的所有者都修改成 tom
chown – R tom /home/kkk
\3) 将 home 下的所有文件和目录的所有者都改成 tom,将所在组改成 police
chown – R tom:police /home/
9.8.1基本介绍
chgrp newgroup file 改变文件的所有组
9.8.2案例演示:
\1) 请将 /home/abc .txt 文件的所在组修改成 shaolin (少林)
chgrp shaolin /home/abc.txt
\2) 请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin(少林)
chgrp -R shaolin /home/kkk
police , bandit
jack, jerry: 警察
xh, xq: 土匪
\1) 创建组
groupadd police
groupadd bandit
\2) 创建用户
useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq
给分配密码
\3) jack 创建一个文件 jack.txt,自己可以读写,本组人可以读,其它组没人任何权限
登录后
chmod 640 jack.txt
提醒:如果我们希望同组的人可以读 jack.txt 文件,则需要将 jack 的家目录的权限打开.
chmod g=rx /home/jack
\4) jack 修改该文件,让其它组人可以读, 本组人可以读写
chmod g=rw, o=r jack.txt
\5) xh 投靠 警察,看看是否可以读写.(测试后,是 ok, 注意需要重新登录)logout
usermod -g police xh
crontab 进行 定时任务的设置,。
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。
crontab [选项]
设置任务调度文件: /etc/crontab
设置个人任务调度。执行 crontab – e 命令。
接着输入任务到调度文件
如: */1 * * * * ls – l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls – l /etc/ > /tmp/to.txt 命令
\1) 案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate.log 文件
*/1 * * * * date >> /tmp/mydate.log
案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal.log 文件中
*/1 * * * * date >> /home/mycal.log
*/1 * * * * cal >> /home/mycal.log
案例 3: 每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中。
步骤: 1, 首先编写一个 脚本 backupdb.sh
#!/bin/bash
#备份路径 BACKUP=/data/backup/sql/dy
#当前时间 DATETIME=$(date +%Y-%m-%d_%H%M%S)
echo “=备份开始=”
echo “备份文件存放于 B A C K U P / {BACKUP}/ BACKUP/DATETIME.tar.gz”
#数据库地址 HOST=localhost
#数据库用户名 DB_USER=root
#数据库密码 DB_PW=Ces123456
#创建备份目录 [ ! -d “ B A C K U P / {BACKUP}/ BACKUP/DATETIME” ] && mkdir -p “ B A C K U P / {BACKUP}/ BACKUP/DATETIME”
#后台系统数据库 DATABASE=dy_backgroundms mysqldump -u D B U S E R − p {DB_USER} -p DBUSER−p{DB_PW} --host=$HOST -q -R --databases $DATABASE | gzip > B A C K U P / {BACKUP}/ BACKUP/DATETIME/$DATABASE.sql.gz
#投入品监管数据库 DATABASE=dy_firip mysqldump -u D B U S E R − p {DB_USER} -p DBUSER−p{DB_PW} --host=$HOST -q -R --databases $DATABASE | gzip > B A C K U P / {BACKUP}/ BACKUP/DATETIME/$DATABASE.sql.gz
#压缩成 tar.gz 包 cd $BACKUP tar -zcvf $DATETIME.tar.gz $DATETIME
#删除备份目录 rm -rf B A C K U P / {BACKUP}/ BACKUP/DATETIME
#删除 30 天前备份的数据 find $BACKUP -mtime +30 -name “*.tar.gz” -exec rm -rf {} ; echo “=备份成功=”
步骤 2: 给 /home/backupdb.sh 一个可以执行的权限
chmod u+x backupdb.sh
步骤 3: 将 backupdb.sh 部署到 crontab
crontab -e
增加
* 2 * * * /home/backupdb.sh
到此 ok!
crond 相关指令***
\1) conrtab –r:终止任务调度。
\2) crontab –l:列出当前有那些任务调度
\3) service crond restart [重启任务调度]
1.最多支持四个主分区
2.系统只能安装在主分区
3.扩展分区要占一个主分区
4.MBR 最大只支持 2TB,但拥有最好的兼容性
1.支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)
2.最大支持 18EB 的大容量(1EB=1024 PB, 1PB=1024 TB )
3.windows7 64 位以后支持 gtp
\1) Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯
一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。
\2) Linux 采用了一种叫“载入(mount)”的处理方法,它的整个文件系统中包含了一整套的文件和
目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获
得。
\3) 示意图【分区和文件目录】
Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
对于 IDE 硬盘,驱动器标识符为“hdx~” ,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬
盘了。“x”为盘号(a 为基本盘, b 为基本从属盘, c 为辅助主盘, d 为辅助从属盘) ,“~”代表分区,
前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例, hda3 表示为
第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分
区。
对于 SCSI 硬盘则标识为“sdx~”, SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和
IDE 硬盘的表示方法一样。 sdb1 [表示第 2 块 scsi 硬盘的第 1 个分区]
使用lsblk的指令查看当前系统分区的情况 (巧记lsblk,老师不离开)
下面我们以增加一块硬盘 1G 为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的
概念
\1)增加一块硬盘 1G [到设置中添加一块硬盘即可]
\2) 重启一下服务器
lsblk
\4) 格式化 sdb1
mkfs -t ext4 /dev/sdb1 [把 /dev/sdb1 分区格式化] (巧记“mkfs‘ 没开发商)
\5) 挂载
mkdir /home/newdisk
mount /dev/sdb1 /home/newdisk [说明;挂载时,不要在 /home/newdisk ]
\6) 上面的方式,只是临时生效,当你重启系统,挂载的关系没有, 配置 linux 的分区表,实现启
动时,自动挂载.
vim /etc/fstab yy,移动光标到复制的那行,按p,复制一行 (巧记“fstab”非说他不)
\7) 重启后,会自动挂载.
\8) 如果,我们希望卸载,指令
umount 设备名 | 挂载路径
umount /dev/sdb1
基本语法
du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
➢ 应用实例
查询 /usr 目录的磁盘占用情况,深度为 1
du -ach --max-depth= 1 /usr
\1) 统计/home 文件夹下文件的个数
ls – l /home/ | grep “^-” | wc -l
\2) 统计/home 文件夹下目录的个数
ls – l /home/ | grep “^d” | wc -l
\3) 统计/home 文件夹下文件的个数,包括子文件夹里的
ls – lR /home/ | grep “^-” | wc -l
\4) 统计/home 文件夹下目录的个数,包括子文件夹里的
ls – lR /home/ | grep “^d” | wc -l
以树状显示 home 目录结构 [没有 tree 指令咋办, 使用 yum 来安装]
先安装
yum install tree
说明
1)配置比较简单
2)每次启动linux后,分配的ip地址可能不一样。不适合做服务器
vim /etc/sysconfig/network-scripts/ifcfg-eth0
如果希望配置生效
\1) reboot
\2) service network restart // 重启网络服务
\1) 在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。
\2) 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器
\3) 每个进程都可能以两种方式存在的。前台 与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行[sshd ,
crond]。
\4) 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
ps -aux // 显示所有的进程
指令: ps – aux|grep xxx ,比如我看看有没有 sshd 服务
➢ 指令说明
System V 展示风格
USER:用户名称
PID:进程号
%CPU:进程占用 CPU 的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位: KB)
RSS:进程占用的物理内存大小(单位: KB)
TTY:终端名称,缩写 .
STAT:进程状态,其中 S-睡眠, s-表示该进程是会话的先导进程, N-表示进程拥有比普通优先级
更低的优先级, R-正在运行, D-短期等待, Z-僵死进程, T-被跟踪或者被停止等等
STARTED:进程的启动时间
TIME: CPU 时间,即进程使用 CPU 的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。
使用 kill 命令来完成此项任务。
kill [选项] 进程号(功能描述:通过进程号杀死进程 -9 强制终止)
killall 进程名称 | (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用) |
---|---|
-9 :表示强迫进程立即停止
案例 1:踢掉某个非法登录用户【jack】
案例 2: 终止远程登录服务 sshd, 在适当时候再次重启 sshd 服务
案例 3: 终止多个 gedit 编辑器
killall gedit
案例 4:强制杀掉一个终端 对于 bash
kill -9 对应的 bash 的进程号
pstree [选项] ,可以更加直观的来看进程信息
-p :显示进程的 PID
-u :显示进程的所属用户
\1) 案例 1:请用树状的形式显示进程的 pid
Pstree -p
案例 2:请用树状的形式进程的用户 id
Pstree – u
Pstree -pu
介绍:
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请
求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。【原理图】
service 管理指令:
service 服务名 [start | stop | restart | reload | status]
在 CentOS7.0 后 不再使用 service ,而是 systemctl
使用案例:
\1) 查看当前防火墙的状况,关闭防火墙和重启防火墙。
Service iptables status
细节讨论:
关闭或者启用防火墙后,立即生效。 [telnet 测试 某个端口即可]
service iptables stop , service iptables start
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig 指令。
top 与 ps 命令很相似。它们都用来显示正在执行的进程。 Top 与 ps 最大的不同之处,在于 top 在执
行一段时间可以更新正在运行的的进程(默认每 3 秒变化一次)。
基本语法:
top 指令的说明
➢ 查看系统网络情况 netstat
➢ 基本语法
netstat [选项]
➢ 选项说明
-an 按一定顺序排列输出
-p 显示哪个进程在调用
应用案例
请查看服务名为 sshd 的服务的信息。
➢ Netstat – anp | grep sshd
➢ 如果我们希望查看当前系统有哪些端口在监听
netstat -tlnp
问题: Linux 常用命令,至少 6 个(netstat , top , lsblk , find , ps , chkconfig )
问题: Linux 查看内存、磁盘存储、 io 读写(iotop)、端口占用、进程等命令
top
df – lh
Netstat – tunlp
Ps – aux | grep 进程名
Iotop , 如果没有,就先安装一把
介绍:
一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.RPM 扩展
名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似windows的setup.exe,
这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。
Linux 的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。
基本语法
rpm -e RPM 包的名称
应用案例
删除 firefox 软件包
rpm -e firefox
➢ 细节讨论
\1) 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
\2) 如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不
推荐这样做,因为依赖于该软件包的程序可能无法运行
如: $ rpm -e --nodeps foo [小心使用]
基本语法
rpm -ivh RPM 包全路径名称
➢ 参数说明
i=install 安装
v=verbose 提示
h=hash 进度条
➢ 应用实例
演示卸载和安装 firefox 浏览器
提示:很多的 rpm 包,就在我们的 centos 安装的镜像文件中
表1-52
选项 | 功能 |
---|---|
-y | 对所有提问都回答“yes” |
表1-53
参数 | 功能 |
---|---|
install | 安装rpm软件包 |
update | 更新rpm软件包 |
check-update | 检查是否有可用的更新rpm软件包 |
remove | 删除指定的rpm软件包 |
list | 显示软件包信息 |
clean | 清理yum过期的缓存 |
deplist | 显示yum软件包的所有依赖关系 |
(1)采用yum方式安装firefox
[root@hadoop101 ~]#yum -y install firefox.x86_64
默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163。
1.前期文件准备
(1)前提条件linux系统必须可以联网
(2)在Linux环境中访问该网络地址:http://mirrors.163.com/.help/centos.html,在使用说明中点击CentOS6->再点击保存,如图1-164所示
图1-164 下载CentOS6
(3)查看文件保存的位置,如图1-165,1-166所示
图1-166
在打开的终端中输入如下命令,就可以找到文件的保存位置。
[atguigu@hadoop101 下载]$ pwd
/home/atguigu/下载
2.替换本地yum文件
(1)把下载的文件移动到/etc/yum.repos.d/目录
[root@hadoop101 下载]# mv CentOS6-Base-163.repo /etc/yum.repos.d/
(2)进入到/etc/yum.repos.d/目录
[root@hadoop101 yum.repos.d]# pwd
/etc/yum.repos.d
(3)用CentOS6-Base-163.repo替换CentOS-Base.repo
[root@hadoop101 yum.repos.d]# mv CentOS6-Base-163.repo CentOS-Base.repo
3.安装命令
(1)[root@hadoop101 yum.repos.d]#yum clean all
(2)[root@hadoop101 yum.repos.d]#yum makecache
yum makecache就是把服务器的包信息下载到本地电脑缓存起来
4.测试
[root@hadoop101 yum.repos.d]#yum list | grep firefox
[root@hadoop101 ~]#yum -y install firefox.x86_64
\1. 虚拟化支持异常情况如下几种情况
图1-168
图1-169
问题原因:宿主机BIOS设置中的硬件虚拟化被禁用了