Linux
-
在xshell中:白色代表文件,蓝色代表目录,红色代表压缩文件,绿色代表文件时可执行的或者赋予了可执行的权限
-
桥接模式:虚拟系统可以和外部系统通讯,但是容易造成IP冲突。
-
NAT模式:网络地址转换模式,虚拟系统可以和外部系统通讯,不造成IP冲突。
-
主机模式:独立的系统
-
虚拟机的克隆
-
虚拟机的快照
-
虚拟机的迁移和删除:
- 迁移:把安装好的虚拟机系统这个文件夹整体拷贝或者剪切到另外的位置使用
- 删除:用VMware进行移除,再点击菜单->从磁盘删除即可,或者手动删除虚拟机系统对应的文件夹即可。
-
安装vmtools(可以设置windows和centos的共享文件夹)
- 步骤:
- 进入centos
- 点击vm菜单的->install vmware tools
- 拷贝到/opt
- 使用解压命令tar, 得到一个安装文件
- cd /opt 进入opt目录
- tar -zxvf xx.tar.gz
- 进入vm解压的目录中,/opt目录下 ce vmware…
- 安装 ./vmware-install.pl
- 全部使用默认设置即可安装成功
- 注意:安装vmtools需要有gcc
- 步骤:
-
在Linux的世界里,一切皆为文件
-
shell 充当了 Linux指令到Linux内核之间的翻译官
-
Linux常用的目录结构:
- /bin (/user/bin、 /user/local/bin) :是binary的缩写,这个目录存放最常用的命令
- /sbin (/user/sbin /user/local/sbin) :s就是super user的意思,这里存放的是系统管理员使用的系统管理程序
- /home :在linux中每一个用户都有一个自己的目录,一般该目录名是以用户的账号命名
- /root :该目录为系统管理员,也称为超级权限者的用户主目录
- /lib: library的缩写,系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
- /lost + found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
- /etc :所有的文件挂你系统所需要的配置文件和子目录,比如安装mysql数据库my.conf
- /user :非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下面的program files目录
- /boot :存放的是启动Linux时常用的一些核心文件,包括一些连接以及镜像文件
- /proc: project的缩写,这个目录是一个虚拟目录,他是系统内存的映射,访问这个目录来获取系统信息
- /srv service的缩写,该目录存放了一些服务启动之后需要提取的数据
- /sys : system的缩写, 这是linux2.6内核的一个很大的变化,该目录下安装了2.6内核新出现的一个文件系统 sysfs
- /tmp : temp的缩写,这个目录用来存放一些临时文件
- /dev: device的缩写, 类似于Windows的设备管理器,把所有的硬件用文件的形式存储
- /media: Linux 系统会自动识别一些设备,如:U盘,光驱等,当识别后,Linux会把识别的设备挂载到这个目录下
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看共享的内容了
- /opt :optional的缩写,这是给主机额外安装软件所存放的目录,如安装Oracle数据库就可以放到该目录下。默认为空
- /user/local :这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序,安装软件的目标目录
- /var : variable的缩写, 这个目录存放着在不断扩充的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件
- /selinux :SELinux, SE: standard edition (标准版本)是一种安全子系统,他能控制程序只访问特定文件,有三种工作模式,可以自行设置。
-
常用指令:
- 在Linux终端输入 ifconfig 查看公网的ip地址 windows 中是ipconfig
- pwd 显示当前所在的目录
-
vi 和 vim
- 常用的三种模式:
- 正常模式:用vim打开一个档案就直接进入一般模式了(默认的),在这个模式中,你可以使用【上下左右】按键来移动光标,你可以【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的数据
- 插入模式:按下i o a r (大小写都可以)等任意一个字母后进入编辑模式,一般来说按i即可
- 命令行模式:在这个模式中,可以提供你相关的指令,完成读取、存盘、替换、离开vim、显示行号等的动作
- :wq 写入并退出
- : q 退出
- :q! 强制退出
- 从插入模式到命令行模式:先输入esc ,再输入冒号
- 常用的快捷键:
- 拷贝当前行 yy , 拷贝当前行向下的5行 5yy ,并粘贴(输入p)
- 删除当前行 dd,删除当前行向下的5行 5dd
- 在文件中查找某个单词 【命令行下 / 关键字, 回车 查找, 输出 n就是查找下一个】
- 设置文件的行号,取消文件的行号【命令行下:set nu 和 :set nonu 】
- 在一般模式下,输入 G 到文件的最末行, gg到文件的第一行
- 撤销:在一般模式下 u
- 跳跃到某一行:在一般模式下 行号 shift + g
- 关机和重启命令
- shutdown -h now 立刻关机
- shutdown -h 1 1分钟后重启
- shutdown -r now 重新启动计算机
- halt 关机
- reboot 重启计算机
- sync (synchronize 同步)把内存的数据同步到磁盘
- 用户的登陆和注销
- 基本介绍:
- 登陆时尽量少用root账号登陆,因为它是系统管理员,最大的权限,避免操作失误,可以利用普通用户登陆,登陆后用”su - 用户名“ 命令来切换成系统管理员身份
- 在提示符下输入logout即可注销用户
- 使用细节:logout注销指令在图形运行级别无效,在运行级别3下有效
- 基本介绍:
- 常用的三种模式:
-
用户管理:
-
添加用户:
- 基本语法: useradd 用户名
- 细节说明:
- 当窗机用户成功后,会自动创建和用户同名的的home下的目录
- 也可以通过useradd -d 指定目录 用户名,给新创建的用户指定home目录
-
设置用户密码:
- pwd 用户名 回车后输入密码 再回车即可设置密码
- 不指定用户名 修改的是root的密码
-
删除用户
- 删除用户,但保留家目录 userdel 用户名
- 删除用户以及家目录 userdel -r 用户名
-
查询用户信息
- 语法: id 用户名
- 注意:当用户不存在时,返回无此用户
-
切换用户
-
语法:su -用户名
-
注意:从权限高的用户切换到低的用户,不需要密码,反之需要;
当需要返回原来用户时,使用exit/ logout指令
-
-
查看当前登陆的用户
- 语法:who am i / whoami
- 返回的时当前用户登陆的ip 和 登陆的时间等信息
-
-
用户组:
-
介绍:类似于角色,系统可以对有共性/全限的多个用户进行统一管理
-
新增组
- 语法 :groupadd 组名
-
删除组
- 语法:groupdel 组名
-
添加用户时直接加上组
- 语法 :useradd -g 用户组名 用户名
-
修改用户的组:
- 语法:usermod -g 用户组名 用户名
-
-
用户和组相关的文件
-
/etc/passwd
-
用户(user)的配置文件,记录用户的各种信息
-
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登陆shell
binge:x:1000:1000:/home/binge:/bin/bash
-
-
/etc/shadow
- 口令的含义
- 每行的含义:登陆名:加密口令:最后一次修改的时间:最小的时间间隔:最大的时间间隔:警告时间:不活动时间:失效时间:标志
-
/etc/group
- 组的配置文件,记录Linux包含组的信息
- 每行的含义:组名:口令:组标识号:组内用户列表
-
-
指定运行级别
- 运行级别说说明
- 0 :关机
- 1:单用户【可以用于找回丢失密码】
- 2:多用户状态没有网络
- 3:多用户状态有网络
- 4:系统未使用保留给用户
- 5:图形界面
- 6:系统重启
- 注:常用的运行级别时3 和 5,也可以指定默认运行级别
- 切换运行级别:
- 语法 :init 【0 1 2 3 4 5 6 】
- 设置默认运行级别:
- 级别3 : multi-user-target: analogous to runlevel 3
- 级别5:graphical.target:analogous to runlevel 5
- systemctl set-default TARGET.target
- 运行级别说说明
-
找回root密码 : 略
-
帮助指令:
-
man获取帮助信息
- 语法:man 【命令或配置文件】(功能描述:获得帮助信息)
-
help指令
- 语法:help 命令(功能描述:获得shell内置指令的帮助信息)
-
看不懂英文的帮助信息,建议直接百度
-
-
文件目录相关的指令:
-
pwd指令(print working directory)
- 语法:pwd
- 共能描述:显示当前工作目录的绝对路径
-
ls指令(list)
-
语法: ls 【选项】 【目录或者文件】
-
常用选项 -a :显示当前目录所有的子目录和文件,包括隐藏的
-l :以列表的方式显示信息
-
-
cd指令(change directory)
- 语法:cd 【参数】
- 功能描述:切换到指定目录
- cd ~ : 回到自己的家目录 例如你是root 则回到/root
- cd … : 回到当前目录的上一级目录
-
mkdir 指令:(make directory)
- 语法:mkdir【选项】要创建的目录
- 功能描述:创建目录
- -p 创建多级目录
-
redir指令:(remove directory)
- 语法:rmdir【选项】要删除的空目录
- 使用细节:redir删除的时空目录,如果目录下有内容的话是无法删除的,如果要删除非空目录,需要使用 rm -rf 要删除的目录
-
touch指令:
- 语法:touch 文件名(最好带有扩展名)
- 功能:创建一个空文件
-
cp指令:(copy)
- 语法:cp【选项】 source dest
- 功能描述:将source文件/ 文件夹 拷贝到dest文件中
- 常用选项: -r :递归复制整个文件夹
- 使用细节:强制覆盖不提示:/cp
-
rm指令:(remove)
- 语法:rm【选项】要删除的文件或目录
- 常用选项 -r : 递归删除整个文件夹 -f:强制删除不提示
-
mv指令:(move)
- 语法:mv oldNameFile newNameFile
- 功能描述:重命名
- 语法:mv /temp/movefile /targetgFolder
- 功能描述:移动文件
-
cat指令(concatenate 连接)
- 语法:cat【选项】要查看的文件
- 功能描述:查看文件内容
- 常用选项:-n 显示行号
- 注意:cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 |more
- 管道命令:把前一个命令的结果交给下一个命令来处理
-
more指令:(可以单独使用也可以和cat组合使用)
- 语法:more 要查看的文件
-
操作 | 功能说明 |
---|---|
空白键(space) | 向下翻一页 |
enter | 向下翻一行 |
q | 退出more,不再显该文件的内容 |
ctrl + F | 向下滚动一屏 |
CTRL + F | 返回上一屏 |
= | 输出当前的行号 |
:f | 输出文件名和当前的行号 |
- less指令:
- 语法:less 要查看的文件
- 功能描述:less指令用来分屏查看文件的内容,它的功能和more指令类似,但比more更强大,支持显示各种终端。less指令在显示内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载的内容,对于显示大型文件具有较高的效率。
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页 |
pagedown | 向下翻动一页 |
pageup | 向上翻动一页 |
/字串 | 向下搜寻【字串】;n :向下查找 N:向上查找 |
?字串 | 向上搜索【字串】;n:向上查找 N:向下查找 |
q | 离开less这个文件 |
-
文件目录相关的指令:
- echo指令:(display a line of text)
- 语法:echo【选项】【输出内容】】
- 功能描述:echo输出内容到控制台
- head指令
- 语法:head 【选项】文件
- 常用选项:-n 查看前n行的内容
- 功能描述:head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
- tail指令:
- 语法:tail 【选项】文件
- 常用选项:-n 查看前n行的内容 -f 实时追踪该文档的所有更新
- 功能描述:head用于显示文件的结尾部分内容,默认情况下head指令显示文件的后10行内容
- e >指令 和 >> 指令
- 功能描述:> 输出重定向 >>追加
- 基本语法:
- ls -l > 文件 (列表的内容写入文件a.txt中,(覆盖写))
- ls -al >> 文件(列表的内容追加到文件aa.txt的末尾)
- cat 文件 1 > 文件2 (将文件1的内容覆盖到文件2)
- echo “内容” >> 文件
- ln指令(link)
- 软链接:也成为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
- 语法:ln -s 【原文件或目录】【软连接名】
- 功能描述:给原文件创建一个软链接
- 注意:当我们使用pwd指令查看目录时,仍然看到的是软连接所在的目录
- history指令
- 语法:history
- 功能描述:查看已经执行过的历史指令
- history 10 查看最近执行过的10条指令
- !10 执行曾经执行过的第10条指令
- echo指令:(display a line of text)
-
时间日期类:
- date指令:
- date (显示当前的时间)
- date + % Y(显示当前的年份)
- date + %m(显示当前的月份)
- date + %d(显示当前是哪一天)
- date “+%Y-%m-%d %H:%M:%S” (显示年月时分秒)
- 设置日期:date -s 字符串日期
- cal指令(calendar 日历)
- 语法:cal 【选项】
- 功能描述:查看日历
- 注:不加选项,显示本月日历
- 例:显示2022年所有的日历 cal 2022
- date指令:
-
搜索查找类
-
find指令
-
语法:find 【搜索范围】【选项】
-
功能描述:find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端
-
常用选项:
-
-name<查询方式> 按照指定的文件名查找 模式查找文件
例:find /home -name *.txt
-
-user<用户名> 查找属于指定用户名的所有文件
例:find /opt -user nobody
-
-size<文件大小> 按照指定的文件大小查找文件
例:find /opt -size +100M
注:+ 大于 - 小于 无符号 等于
-
-
-
locate指令
- 语法:locate 搜索文件
- 功能描述:locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称以及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查找速度较快,为了保证查找结果的准确度,管理员必须定期更新locate时刻
- 注意:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库s
-
which指令:
- 语法:which 指令名字
- 功能描述:查看某个指令在哪个目录下
-
grep指令和管道符号 |
-
语法:grep 【选项】查找内容 源文件
-
功能描述:grep过滤查找,管道符号“|”,表示将前一个命令处理的结果输出传递到后面的命令处理
-
常用选项:-n 显示匹配行和行号
-i 忽略大小写
-
例子:在hello.txt文件中查找“yes”所在行,并且显示行号
- grep -n “yes” /home/hello.txt
-
-
-
压缩和解压类
-
gzip / gunzip 指令(主要用于压缩单个文件)
- 语法:gzip 文件
- 功能描述:压缩文件,只能将文件压缩为*.gz 文件
- 语法:gunzip 文件.gz
- 功能描述:解压缩文件命令、
-
zip/unzip 指令(zip用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用)
- 语法:zip 【选项】xxx.zip 将要压缩的内容
- 功能描述:压缩和文件和目录
- 语法:unzip【选项】xxx.zip
- 功能描述:解压缩文件
- zip常用选项:-r 递归压缩,即压缩目录
- upzip常用指令:-d 目录 : 指定解压后文件的存放目录
-
tar指令:
-
语法:tar 【选项】xxx.tar.gz 打包的内容
-
功能描述:打包目录,压缩后的文件格式为.tar.gz
-
常用选项:
- -c :产生.tar打包文件
- -v:显示详细信息
- -f:指定压缩后的文件名
- -z: 打包同时压缩
- -x : 解压.tar文件
-
应用案例:
-
案例1:压缩多个文件,将/home/pig.txt 和 /home/cat.txt压缩成pc.tar.gz
tar -zxcf pc.tar.gz /home/pig.txt /home/cat.txt
-
案例2:将home文件夹压缩成myhome.tar.gz
tar -zxcf myhome.tar.gz /home/
-
案例3:将pc.tar.gz 解压到当前目录
tar -zxvf pc.tar.gz
-
案例4:将 myhome.tar.gz解压到/opt/tmp2目录下
(1)mkdir /opt/tmp2 (2)tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
-
-
-
-
Linux组:
- 基本概念:在Linux中的每一个用户必须属于一个组,不能独立于组外,在Linux中每个文件有所有者、所在组、其他组的概念
- 所有者
- 所在组
- 其他组
- 改变用户所在的组
- 基本概念:在Linux中的每一个用户必须属于一个组,不能独立于组外,在Linux中每个文件有所有者、所在组、其他组的概念
-
文件/目录 所有者(一般谁创建了该文件,就自然成为该目录的所有者)
-
指令 ls -ahl
-
功能描述:查看文件的所有者
dr-xr-xr-x. 6 root root 4.0K 9月 9 11:37 boot
-
-
chown指令:(change owner)
- 语法:chown 用户名 文件名
- 功能描述:修改文件的所有者
-
chgrp指令:(change group)
- 语法:chgrp 组名 文件名
- 功能描述:修改文件所在的组
-
-
其他组:除文件的所有者和所有组的用户外,系统的其他用户都是文件的其他组
-
改变用户所在的组:
-
在添加用户时,可以指定将该用户添加到哪个组,同样的用root的管理权限可以改变某个用户所在的组
-
改变用户所在组:
- usermod -g 组名 用户名
- usermod -d 目录名 用户名 改变该用户登陆的初始目录
-
-
权限的基本介绍:
-
ls -l 显示的内容:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
-
0-9 位说明:
- 第0位确定文件类型(d - l c b)
- l是连接,相当于Windows的快捷方式
- d是目录,相当于Windows的文件夹
- c是字符设备文件,鼠标,键盘
- b是块设备,比如硬盘
- 第1-3位确定所有者(该文件的所有者)拥有该文件的权限
- 第4-6位确定所属组(同用户组的)拥有该文件的权限
- 第7-9位确定其他用户拥有该文件的权限
- 第0位确定文件类型(d - l c b)
-
rwx作用到文件:
- 【r】代表可读(read):可以读取查看
- 【w】代表可写(write):可以修改,但是不代表可以删除文件,删除一个文件按的前提是对该文件所在的目录有写的权力,才能删除该文件
- 【x】代表可执行(execute):可以执行
-
rwx作用到目录
- 【r】代表可读(read):可以读取,ls查看目录内容
- 【w】代表可写(write):可以修改,对目录内创建+删除+重命名目录
- 【x】代表可执行(execute);可以进入该目录
-
文件权限实际案例:
-
ls -l 显示的内容:
-rwx rw- r-- 1 root root 1213 Feb 2 09:39 abc
-
前10个字符确定不同用户能对文件干什么
- 第一个字符代表文件类型:-l d c b
- 其余字符每3个一组(rwx)
- 第一组:rwx:文件拥有者的权限是读、写和执行
- 第二组:rw-:与文件拥有者同一组的用户的权限是读、写但不能执行
- 第三组:r–:不与文件拥有者同组的其他用户的权限是不能写和执行
-
可用数字表示位:r = 4 , w = 2, x = 1 因此rwx = 4 + 2 + 1 = 7
-
其他说明:
- 1 文件:硬链接数或者 目录:子目录数
- root 用户
- root 组
- 1213 文件大小(字节),如果是文件夹,显示4096字节
- Feb 2 09:39 最后修改的日期
- abc 文件名
-
-
-
修改权限:
-
基本说明:通过chmod指令,可以修改文件或者目录的权限
-
第一种方式:+、-、=变更权限
-
u:所有者 g:所在组 o : 其他人 a:所有人(u, g, o的总和)
-
chmod u = rwx, g=rx, o=x 文件/目录名
-
chmod o + w 文件/目录名
-
chmod a - x 文件/目录名
-
应用案例:
- 案例1 :给abc文件的所有者读写的权限,给所有组读和执行的权限,给其他组读和执行权限
chmod u=rwx, g=rx, o=rx abc
- 案例2:给abc文件的所有者除去执行的权限,增加组写的权限
chmod u-x, g+w abc
- 案例3:给所有用户添加读的权限
chmod a+r abc
-
-
第二种方式:通过数字变更权限:
-
r = 4 ,w = 2 ,x = 1
-
chmod u=rwx,g=rx,o=x 文件目录名
相当于chmod 751 文件目录名
-
应用案例:
-
案例1 :将/home/abc.txt文件的权限修改成 rwxr-xr-x, 使用数字方式实现
chmod 755 /home/abc.txt
-
-
-
-
chown 指令:
-
语法:chown 【选项】newowener 文件/目录
-
功能描述:改变所有者
-
语法:chown 【选项】newowner:newgroup 文件/目录
-
功能描述:改变所有者和所在组
-
常用选项:-R 如果是目录 则使其下所有子文件或目录递归生效
-
-
chgrp 指令:
-
语法:chgrp 【选项】newgroup 文件/目录
-
常用选项:-R 如果是目录 则使其下所有子文件或目录递归生效
-
功能描述:修改所在组
-
-
关于目录的rwx权限:
-
x:可以进入目录(进入后连ls的权限都没有)
-
w:表示可以在该目录,删除或者创建文件
-
r:表示可以ls,将目录的内容显示
-
-
crond 任务调度
-
crontab 定时任务的设置
-
概述:
- 任务调度:是指系统在某个时间执行的特定的命令或者程序
- 任务调度分类:
- 系统工作:有些重要的工作必须周而复始的执行,如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
-
语法:crontab 【选项】
-
常用选项:
- -e : 编辑crontab定时任务
- -l : 查询crontab任务
- -r : 删除当前用户所有的crontab任务
-
-
快速入门:
-
设置任务调度文件:/etc/crontab
-
设置个人任务调度,执行crontab -e命令
-
接着输入任务到调度条件
-
例如:
*/1**** ls -l /etc/ > /tmp/to.txt 意思是每小时的每分钟执行 ls -l /etc/ > /tmp/to.txt
- 参数说明:
- 第一个*:一小时当中的第几分钟 范围:0-59
- 第二个*:一天当中的第几个小时 范围:0-23
- 第三个*:一个月当中的第几天 范围:1-31
- 第四个* : 一年当中的第几个月 范围:1-12
- 第五个* :一周中的星期几 : 0-7 (0和7都代表星期日)
- 参数说明:
-
特殊符号的说明:
特殊符号 含义 * 代表任何时间,比如第一个*就代表一小时中每分钟都执行一次的意思 - 代表连续的时间范围,比如“0 5 * * 1-6”,代表周一到周六的凌晨5点0分执行命令 */n 代表没隔多久执行一次,比如"*/10 * * * *"命令,代表每隔10分钟就执行一遍命令 , 代表不连续的时间,比如“0 8,12,16 * * * “命令,代表在每天的8点0分,12点0分,16点0分都执行一次命令
-
-
-
应用案例:
-
案例1:每隔一分钟,就将当前的日期信息,追加到/tmp/mydate文件中
*/1 * * * * date >> /tmp/mydate
-
案例2:每隔一分钟,将当前日期和日历都追加到/home/mycal文件中
(1)vim /home/my.sh 写入内容 date >> /home/mycal 和cal >> /home/mycal (2)给my.sh 增加执行权限 chmod u + x /home/my.sh (3)crontab -e 增加*/1 * * * * /home/my.sh
-
-
at定时任务:(详细请见文档)
-
基本介绍:
- at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
- 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则执行作业
- at命令是一次性定时任务,执行完一个任务后就不再执行此任务了
- 在使用at命令时候,一定要保证atd进程的启动,可以使用相关指令来查看
-
at命令 : at 【选项】 【时间】
CTRL + D结束 at命令的输入
-
ps -ef 显示当前的进程有哪些
- 如果要检测atd是否运行的话:ps -ef | grep atd
-
atq获取当前进程队列的列表 (at queue)
-
-
Linux磁盘分区以及挂载
-
Linux分区
-
原理介绍:
-
对于Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
-
Linux采用一种交“载入”的处理方法,他的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的储存空间在一个目录下获得
-
-
硬盘说明:
- Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上时SCSI硬盘
- 对于SCSI硬盘,标识符为“sdx”,SCSI硬盘使用“sd”来表示分区所在的设备了类型的,x可以为a,b,c,d…等,则可以是1,2,3,4等
-
查看所有设备的挂载情况:
- 命令:lsblk 或者lsblk -f
-
挂载的经典案例;
-
如何增加一块硬盘:
-
虚拟机添加硬盘
- 在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,直到完成,然后重启系统(才能识别)
-
分区
- 分区命令:fdisk /dev/sdb
- 开始对/sdb分区
- m 显示命令列表
- p 显示磁盘分区 同fdisk -l
- n 新增分区
- w 写入并退出
- 说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区,两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q
-
格式化
- 格式化磁盘(必须格式化才能挂载)
- 分区命令:mkfs -t ext4 /dev/sdb1 其中ext4是分区类型
-
挂载
- 挂载:将一个分区与一个目录联系起来
- mount 【设备名称】 【挂载目录】
- 例如:mount /dev/sdb1 /newdisk
- umont 【设备名称 或者 挂载目录】 解除挂载
- 例如:umount /dev/sdb1 或者umount /newdisk
- 注意:用命令行挂载重启自动失效
-
设置自动挂载/永久挂载
-
永久挂载:通过修改/etc/fsatb 文件实现挂载
/dev/stb1 /newdisk
-
添加完毕后重启即可生效
-
-
-
-
-
-
磁盘情况查询:
-
查询系统磁盘整体使用情况:
- 语法:df -h
-
查询指定目录的磁盘占用情况:
-
语法:du - h
-
功能描述:查询指定目录的磁盘占用情况,默认为当前目录
-
常用参数:
- -s 指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- –max-depth = 1 子目录深度
- -c 列出明细的同时,增加汇总值
-
实例:
du -ah --max-depth=1 /home
-
-
实用指令:
-
统计/opt文件夹下的文件个数
ls -l /opt | grep "^-" | wc -l
-
统计/opt文件夹下的目录个数
ls -l /opt | grep "^d" | wc -l
-
-
3. 统计/opt文件夹下文件的个数,包括子文件夹里的
```shell
ls -lR /opt | grep "^-" | wc -l
```
4. 统计/opt文件夹下目录的个数,包括子文件夹里的
```shell
ls -lR /opt | grep "^d" | wc -l
```
5. 以树状显示目录结构
```shell
tree 【目录名】
```
注意:如果没有tree,使用yum install tree 安装
-
网络配置
-
查看网路IP和网关:
- 在windows中查看windows环境中的VMnet8网络配置(ipconfig指令)
- 在Linux中查看Linux的网络配置ifconfig
-
ping测试主机之间网络连通性
-
语法:ping 目的主机
-
功能描述:测试当前服务器是否可以连接目的主机
-
应用实例:
-
测试当前服务器是否可以连接百度
ping www.baidu.com
-
-
-
修改并固定Linux的ip地址
-
步骤:
-
直接修改配置文件来指定IP,并可以连接到外网
-
编辑 vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
要求:将ip地址配置为静态的
-
将以下内容写入上面的文件中:
BOOTPROTO=static #IP 地址 IPADDR=192.168.200.130 #网关 GATWAY=192.168.200.2 #域名解析器 DNSI=192.168.200.2
-
-
-
-
设置主机名和hosts映射
- 设置主机名
- 为了方便记忆可以给Linux系统设置主机名,也可以根据需要修改主机名
- 指令hostname : 查看主机名
- 修改文件在/etc/hostname 指定
- 修改后,重启生效
- 设置hosts映射
- Windows中ping Linux
- 进入C:\Windows\System32\drivers\etc\hosts 文件
- 添加 ip以及对应的自定义名字
- 如:192.168.200.130 hspedu100
- Linux中ping Windows
- 进入/etc/hosts 文件
- 添加ip以及对应的自定义名字
- 如:192.168.200.1 ThinkPad-PC
- Windows中ping Linux
- 设置主机名
-
主机名解析过程分析(Hosts、DNS)
- Hosts概念:一个文本文件,用来记录IP与Hostname(主机名)的映射关系
- DNS(Domain Name System)域名系统:是互联网上作为域名和IP地址相互映射的一个分布式数据库
- 应用案例:用户在浏览器输入了www.baidu.com
- 浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有就直接返回IP完成解析。这两个缓存统称本地解析器缓存。
- 一般来说,当电脑第一次成功访问某一个网站后,会第一时间,浏览器或操作系统会缓存对用的IP地址(DNS解析记录),如果想查看对应得缓存文件 , 在dos窗口中输入ipconfig/displaydns
- 如果本地域名解析器缓存没有找到对应的映射,检查系统中hosts文件中有没有对用的域名IP文件,如果有,则完成解析并返回
- 如果本地DNS解析器缓存和hosts文件中均没有找到对应的IP,则到域名服务DNS进行解析域
-
进程管理
-
基本介绍:
- 在Linux中,每个执行的程序都称之为一个进程,每一个进程都分配一个id号(pid,进程号)
- 每个进程都可以以两种方式存在。前台和后台,所谓前台程序就是用户目前的屏幕上可以进行操作的,后台进程则是实际在操作,但由于屏幕上无法看到得进程,通常使用功能后台方式执行
- 一般系统得服务都是以后天进程得方式存在,而且都会常驻在系统,直到关机才结束
-
显示系统执行的进程
- ps详解
- 指令:ps -aux l grep xxx ,比如我看看有没有sshd服务
- 指令说明
- System V展示风格
- USER:用户名称PID:进程号
- %CPU:进程占用CPU的百分比
- %MEM:进程占用物理内有的百分比
- VSZ:进程占用的虚拟内存大小(单位:KB)
- RSS:进程占用的物理内存大小(单位:KB)
- TT:终端名的缩写.
STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等 - STARTED:进程的启动时间
- TIME : CPU时间,即进程使用CPU的总时间
- COMMAND·白动#织所田的佘知会料加里计化合种都新县
- 应用实例:
要求:以全格式显示当前所有的进程,查看进程的父进程 - ps-ef 是以全格式显示当前所有的进程
- -e显示所有进程。-f全格式
- ps -ef grep xxx
- 是BSD风格
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 - STIME:进程启动的时间
- TTY:完整的终端名称
- TIME: CPU时间
- CMD:启动进程所用的命令和参数
-
终止进程
- 介绍:若是某个进程执行一半需要停止,或是已经消耗了很大的系统资源,此时可以考虑停止该进程,使用kill命令完成次任务
- 语法:kill 【选项】 进程号
- 功能描述:通过进程号杀死进程
- 语法:killall 进程名称
- 功能描述:通过进程名称杀死进程,也支持统配符,这在系统因负载过大而变得缓慢时很有用
- 常用选项:
- -9 表示强迫进程立即停止
-
查看进程树pstree
- 语法:pstree 【选项】
- 功能描述:更直观的查看进程信息
- 常用选项:
- -p:显示进程的PID
- -u:显示进程的所属用户
-
-
服务管理
-
介绍:服务(service)本质上就是进程,但是运行在后台,通常都会监听某个端口,等待其他程序的请求,比如(mysql、sshd、防火墙),因此我们又称之为守护进程,是Linux中非常重要的知识点
-
service管理指令
- service服务名【start 或stop或restart或reload或status】
- 在CentOS7.0后很多服务不再使用service,而是systemctl
- service指令管理的服务在/etc/init.d查看
-
查看服务名:
- 使用setup-> 系统服务 就可以看到全部
- /etc/init.d看到service指令管理的服务 ls -l /etc/init.d
-
服务的运行级别有7个级别:常用的是3 和 5
-
Linux开机流程:
开机-> BIOS->/boot->system进程1->运行级别->运行级别对应的服务
-
-
chkconfig指令
- 介绍:
- 通过chkconfig命令可以给服务的各个运行级别设置自 启动/关闭
- chkconfig指令管理的服务在 /etc/init.d查看
- 注意:CentOS7.0后,很多服务使用systemctl管理
- 语法:
- 查看服务:chkconfig --list (|grep XXX 用于过滤)
- chkconfig 服务名 --list
- chkconfig --level 服务名 on / off
- 注意:chkconfig重新设置服务后自启动或关闭,需要重启系统才会生效
- 介绍:
-
systemctl管理指令
-
语法:systemctl【start或stop或restart或status】服务名
-
systemctl指令管理的服务在/user/lib/systemd/system查看
-
systemctl设置服务的自启动状态
- systemctl list-unit-files ( | grep 服务名)(查看服务开机启动状态,grep可以进行过滤)
- systemctl enable 服务名(设置服务开机启动)
- systemctl disable 服务名(关闭服务开机启动)
- systemctl is-enabled 服务名(查看某个服务是否是自启动的)
-
应用案例:
-
查看、关闭、重启防火墙(firewalld.service)
-
systemctl status firewalld; systemctl stop firewalld; systemctl start firewalld;
-
注意:
- 关闭或者启动防火墙后,立即生效
- 这种方式只是临时生效,当系统重启后,还是回归以前对服务的设置
- 如果希望永久生效,要使用systemctl 【enable或者disable】服务名
-
-
-
打开或关闭指定端口
-
在真正的生产环境,往往需要将防火墙打开,但问题来了,如果我们打卡防火墙,那么外部请求数据包就不能和服务器监听端口通讯,这时候,需要打开指定的端口号
-
firewall指令
- 打开端口:firewall-cmd --permanent --add -port =端口号/协议
- 关闭端口:firewall -cmd --permanent -remove-port = 端口号/协议
- 重新载入,才能生效:firewall -cmd -reload
- 查看端口是否开放:firewall -cmd -query-port = 端口号/协议
-
-
动态管理进程
-
介绍:top指令和ps指令相似。他们都用来显示正在执行的进程,top和ps最大的不同点在于,top可以更新正在运行的进程
-
语法:top 【选项】
-
常用选项:
- -d :指定top命令每隔几秒更新,默认是3秒
- -i:使top不显示任何闲置或僵死进程
- -p:通过指定监控进程ID来仅仅监控某个进程的状态
-
使用完进入监控界面可以使用的交互操作:
- P:以CPU使用率进行排序,默认的
- M:以内存使用率排序
- N:以PID排序
- q:退出top
-
应用实例:
-
监视特定用户,比如tom
top:输入此命令,回车,查看执行的进程 u:然后输入u,回车,输入对用的用户名
-
终止指定的进程
top:输入此命令,回车,查看执行的进程 k:输入k,回车,再输入要查看的进程ID号
-
-
查看系统网路情况netstat
-
语法:netstat【选项】
-
常用选项:
- -an 按一定顺序排列输出
- -p 显示哪个进程在调用
-
应用案例:
-
查看服务名为sshd的服务信息
netstat -anp | grep sshd
-
-
-
-
rpm 和 yum
-
rpm包的管理
-
介绍:rpm用于互联网下载包的打包以及安装工具,它包含在某些Linux分发版本中,它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似Windows的setup.exe,这一文件格式虽然打上了RedHat的标志,但理念是通用的
-
Linux的分发版本都有采用(suse, redhat, centos)可以算是公认的行业标准了
-
rpm包的简单查询指令
-
查询已安装的rpm列表:rpm -qa | grep xx
-
案例:查看当前系统是否安装了火狐:
rpm -qa | grep firefox
-
rpm包名的基本格式
-
一个rpm包名:firefox -60.2.2-1.el7.centos.x86_64
-
名称:firefox
-
版本号:60.2.2-1
-
适用的操作系统:el7.centos.x86_64
表示centos7.x的64位操作系统,如果是i686、i386表示32位操作系统,noarch表示通用
-
-
rpm包的其他查询指令:
- rpm -qa :查询所安装的所有rpm软件包
- rpm-q 【软件包名】:查询软件包是否安装
- rpm:-qi【软件包名】:查询软件包信息
- rpm:-ql【软件包名】:查询软件包中的文件
- rpm:-qf 【文件全路径名】:查询文件所属的软件包
-
-
卸载rpm包:
- 语法:rpm -e RPM包的名称
- 注意:
- 如果其他软件包依赖于你要卸载的软件包,卸载时会出现错误信息
- 如果我们强制删除该软件包,可以增加参数 --nodeps ,但是一般不推荐,这样做,会使得依赖于该软件包的程序可能无法执行
-
安装rpm包
- 语法:rpm -ivh RPM包全路径名称
- 参数说明:
- i :install 安装
- v:verbose 提示
- h:hash 进度条
-
yum
-
介绍:yum是一个shell前端软件包管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包
-
yum的基本指令:
- yum list | grep xx 软件列表 :查询yum服务器是否有需要安装的软件
- yum install xxx 下载安装
-
-