Linux
在新建虚拟机的时候选 Red Hat Enterprise Linux 7 64位
这个版本
网络连接的三种模式:
桥接模式
虚拟系统可以和外部系统通讯,但是容易造成IP冲突
NAT模式
网络地址转换模式,虚拟系统可以和外部系统通讯,不造成IP冲突(使用的是代理)
主机模式
独立的系统
桥接模式、NAT模式和主机模式是虚拟机网络连接方式的三种常见模式。
桥接模式(Bridge Mode):虚拟机的网络接口直接连接到物理网络接口上,虚拟机就像连接在物理网络的一台计算机一样。这种模式下,虚拟机可以与物理网络中的其他计算机进行通信,也可以通过路由器或交换机连接到互联网。桥接模式需要分配一个独立的IP地址给虚拟机。
NAT模式(Network Address Translation Mode):虚拟机的网络接口通过主机的网络接口进行通信,主机作为虚拟机和外部网络之间的中间人,对虚拟机发送的请求进行地址转换。这种模式下,虚拟机可以访问互联网,但是外部网络不能直接访问虚拟机。NAT模式下,虚拟机共享主机的IP地址,因此虚拟机之间不能直接通信。
主机模式(Host-Only Mode):虚拟机的网络接口只能与主机的网络接口进行通信,虚拟机无法访问外部网络。这种模式下,虚拟机之间可以互相通信,但是无法与外部网络进行通信。主机模式下,虚拟机和主机共享一个子网,并分配给虚拟机一个独立的IP地址。
这三种网络连接模式各有优缺点,应根据实际需求选择合适的模式。例如,如果需要让虚拟机与外部网络进行通信,可以选择桥接模式或NAT模式;如果需要在虚拟机之间建立专用网络,可以选择主机模式。
安装设置
安装vmtools
1.进入centos
2.点击vm菜单的->install vmware tools
3.centos会出现一个vm的安装包,xx.tar.g
4.拷贝到/opt
5.使用解压命令tar,得到一个安装文件 ,进入目录:cd/opt[进入到opt目录]
解压命令:tar-zxvf xx.tar.gz
6.进入该vm解压的目录,/opt目录下 cd vmware...
7.安装:使用命令 ./vmware-install.pl
来安装
8.全部使用默认设置即可,就可以安装成功
9.注意:安装vmtools需要有gcc. 使用命令gcc -v
来查看gcc的版本
设置共享文件夹
具体步骤
1.菜单 -> vm-> setting,如图设置即可注意:设置选项为always enable, 这样可以读写了
2.windows和centos可共享d:/myshare目录可以读写文件了
3.共享文件夹在 centos 的 /mnt/hgfs/ 下
注意事项和细节说明
1.windows和contos就可以共享文件了,但是在实际开发中,文件的 上传下载是需要使用 远程方式完成的
2.远程方式登录
Linux目录结构
基本介绍
- linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是 根目录 “/” ,然后在此目录下再创建其他的目录。
- 在Linux世界里,一切皆文件
具体的目录结构
/bin
:**[常用]** (/usr/bin、 /usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令
/sbin
: (/usr/sbin、/usr/local/sbin)s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
home
:**[常用]**存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
/root
:**[常用]**该目录为系统管理员,也称作超级权限者的用户主目录
/lib
:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所 有的应用程序都需要用到这些共享库
/lost+found
:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
/etc
:**[常用]**所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库
my.conf /usr
: [常用]这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下 的program files目录。
/boot
:**[常用]**存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/proc
:**[不能动]**这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信 息
/srv
:**[不能动]**service缩写,该目录存放一些服务启动之后需要提取的数据
/sys
:**[不能动]**这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs
/tmp
:这个目录是用来存放一些临时文件的
/dev
:类似于windows的设备管理器,把所有的硬件用文件的形式存储
/media
:**[常用]**linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识 别的设备挂载到这个目录下
/mnt
:**[常用]**系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上, 然后进入该目录就可以查看里的内容了。d:/myshare
/opt
:这是给主机额外安装软件所存放的目录。如安装ORACLE数据库就可放到该目录下。默认为空
/usr/local
:**[常用]**这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
/var
:**[常用]**这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
/selinux
: [security-enhanced linux]SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置.
远程登录到Linux
XShell:连接Linux,远程登录Linux
XFTP:进行文件的上传和下载
Xshell:
XFTP:
vi和vim
vi和vim的基本介绍
Linux 系统会内置 vi 文本编辑器
Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性, 方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vi 和 vim 常用的三种模式
正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用 [上下左右] 按键来 移动光标,你可以使用 [删除字符] 或 [删除整行] 来处理档案内容,也可以使用[复制、粘贴]来处理你的文件数据。
插入模式
按下 i,I,0,O,a,A,r,R 等任何一个字母之后才会进入编辑模式,通常按 i
命令行模式
按 Esc再输入冒号(:),在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的。
vi 和 vim 基本使用
使用 vim 开发一个 Hello.java 程序,保存,步骤…
输入命令
vim Hello.java
进入 vim 界面在 vim 界面中写 java程序
vim三种模式的切换
vi 和 vim 快捷键
yy :拷贝当前行
拷贝当前行向下的5行 -> 5yy,并 粘贴(输入p)。
dd:删除当前行
删除当前行向下的5行 -> 5dd
命令行下
/关键字
,回车查找输入n就是查找下一个:在文件中查找某个单词
setnu:设置文件的行号
set nonu:取消文件的行号
编辑/etc/profile文件,在一般模式下,使用快捷键到该文档的最末行[G]和最首行[gg]
在一个文件中命令行下输入”hello”,在一般模式下,撤销这个动作 -> u
编辑/etc/profile文件,在一般模式下,并将光标移动到,输入20,再输入shift+g
vi / vim 键盘图
Linux实操
关机 和 重启
命令:
基本介绍 | |
---|---|
shutdown -h now | 现在立刻关机 |
shutdown -h 1 | 一分钟后关机 |
shutdown -r now | 现在重启计算机 |
halt | 关机,作用和上面一样 |
reboot | 现在重新启动计算机 |
sync | 把内存的数据同步到磁盘 |
在关机和重启之前必须要 sync 把内存的数据同步到磁盘中。
用户登录注销
基本介绍
登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以向用 普通用户登录,登录后再用
su-用户名
命令来切换成系统管理员身份.在提示符下输入
logout
即可注销用户 ,logout 注销指令在图形运行级别无效,在运行级别3下有效.
用户管理
基本介绍
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向验统 管理员申请一个账号,然后以这个账号的身份进入系统
添加用户
基本语法
useradd 用户名
应用案例 案例1:添加一个用户 milan,默认该用户的家目录在 /home/milan —->
useradd milan
细节说明
当创建用户成功后,会自动的创建和用户同名的家目录
也可以通过
useradd -d 指定目录 新的用户名
,给新创建的用户指定家目录例如:
useradd -d /home/test jack
:jack的家目录在 test 下
指定/修改密码
- 使用
passwd 用户名
来给用户设置密码,例如 :passwd jack
- 如果不设置用户名,只有 passwd ,则修改的是当前登录用户的密码
删除用户
基本语法
userdel 用户名
- 删除用户 milan,但是要保留家目录:
userdel milan
- 删除用户以及用户主目录:
userdel -r tom
注意:一般情况下,保留家目录
查询用户信息
id 用户名
例如:查询root的用户信息
注意:当用户不存在时,返回 无此用户
切换用户
su - 用户名
在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 用户名
来切换到高权限用户
切换到 root :su - root
注意:
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
- 当需要返回到原来用户时,使用 exit / logout 指令
查看当前用户/登录用户
whoami 或者 who am i
用户组
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理
新增组
groupadd 组名
例如:新增 byxl 组:groupadd byxl
删除组
groupdel 组名
例如:删除 byxl 组:groupdel byxl
创建用户时直接加上组
useradd -g 用户组 用户名
例如:创建 8112用户 到 byxl组 :useradd -g byxl 8112
修改已经创建的用户到另一个组
usermod -g 用户组 用户名
例如:修改 8112用户 到 jack组 :usermod -g jack 8112
用户和组相关文件
/etc/passwd 文件
使用
vim /etc/passwd
进入这个文件用户(user)的配置文件,记录用户的各种信息
每行的含义 ->
用户名 : 口令 : 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录Shell
/etc/shadow 文件
- 使用
vim /etc/shadow
进入这个文件 - 口令的配置文件
- 每行的含义 ->
登录名 : 加密口令 : 最后一次修改时间 : 最小时间间隔 : 最大时间间隔 : 警告时间 : 不活动时间 : 失效时间 : 标志
/etc/group 文件
- 使用
vim /etc/group
进入这个文件 - 组(group)的配置文件,记录Linux包含的组的信息
- 每行含义 ->
组名 : 口令 : 组标识号 : 组内用户列表
Linux实用指令
指定运行级别
基本介绍
运行级别说明:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是 3 和 5 ,也可以指定默认运行级别,命令:init [级别]
CentOS7以前,在 /etc/initab/
中可以指定,CentOS7后对指令进行了简化:
multi-user.target
指的是第三个级别 analogous to runlevel 3
graphical.target
指的是第五个级别 analogous to runlevel 5
指令
- 查看当前默认级别:
systemctl get-default
- 设置默认级别:
systemctl set-default multi-user.target
:设置默认级别为第三个级别
帮助指令
man 获得帮助信息
基本语法:man[命令或配置文件](功能描述:获得帮助信息)
案例:查看 1s 命令的帮助信息 man ls
help指令
基本语法:help 命令
功能描述:获得 shell 内置命令的帮助信息
文件目录类指令
pwd 指令
基本语法:pwd
功能描述:显示当前工作目录的绝对路径
ls指令
基本语法:ls [选项] [目录或是文件]
常用选项:
- -a :显示当前目录所有的文件和目录,包括隐藏的
- -l :以列表的方式显示信息
- -la 或 -al :以列表的形式显示所有文件和目录
cd指令
基本语法:cd [参数]
功能描述:切换到指定目录(相对路径/绝对路径)
mkdir指令
基本语法:mkdir [选项] 要创建的目录
功能描述:创建目录
常用选项:-p ,创建多级目录 mkdir -p /home/plant/tree
rmdir指令
基本语法:rmdir [选项] 要删除的空目录
功能描述:删除空目录
使用细节:
- rmdir删除的是空目录,如果目录下有内容时无法删除的。
- 如果需要删除非空目录,需要使用
rm -rf
要删除的目录 比如:rm -rf /home/animal
touch指令
基本语法:touch 文件名称
功能描述:touch 指令创建空文件
cp指令
基本语法: cp [选项] [指定目录]
功能描述:拷贝文件到指定目录
将 /home/animal/dog/hello.txt 文件拷贝到 /home/下,先切换到dog目录下,再进行拷贝
cp hello.txt /home/test
递归复制整个文件夹,将 /home/animal整个目录拷贝到 /home/test 下
cp -r /home/animal /home/test
使用细节:
强制覆盖不提示:\cp -r /home/animal /home/test
rm指令
基本语法:rm [选项] 要删除的文件或目录
常用选项:
- -r :递归删除整个文件夹
- -f :强制删除不提示
rm -rf 文件夹/目录
mv指令
基本语法:
- 重命名:
mv 现在文件名 重命名的文件名
- 移动文件:
mv 文件名 要移动的目录
例如:mv file1 /opt
功能描述:重命名 或 移动文件与目录
cat指令
基本语法:cat 文件名
功能描述:查看文件内容
more指令
基本语法:more 要查看的文件
功能描述:可以分页查看
操作 | 功能说明 |
---|---|
空格键(space) | 代表向下翻一页 |
Enter | 代表向下翻一行 |
q | 代表立刻离开 more,不再显示该文件内容 |
Ctrl + F | 向下滚动一屏 |
Ctrl + B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
less指令
基本语法:less 要查看的文件
功能描述:less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
操作 | 功能说明 |
---|---|
空格键(space) | 向下翻一页 |
[pagedown] | 向下翻一页 |
[pageup] | 向上翻一页 |
/字串 | 向下搜寻 [子串]:n -> 向下查找,N:向上查找 |
?子串 | 向上搜寻 [子串]:n -> 向上查找,N:向下查找 |
q | 离开 less 这个程序 |
echo指令
基本语法:echo [选项] [输出内容]
功能描述:输出内容到控制台
使用 echo 指令输出环境变量,比如输出
echo $PATH
echo $HOSTNAME
使用 echo 指令输出 hello,world!
echo hello,world!
head指令
基本语法:
head 文件
:默认显示文件前10行内容head -n 5 文件
:显示文件前5行内容,例如:head -n 5 /etc/profile
功能描述:用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
tail指令
基本语法:
tail 文件
:默认查看文件最后10行内容tail -n 5 文件
:查看文件最后5行内容tail -f 文件
:实时追踪该文档的所有更新
功能描述:用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。
> 指令 和 >> 指令
基本语法:
ls -l > 文件
:列表的内容写入 文件 中(覆盖写)ls -al >> 文件
:列表的内容追加到 文件 的末尾cat 文件1 > 文件2
:将 文件1 的内容覆盖到 文件2echo "内容" >> 文件
:追加
功能描述:> 输出重定向,>> 追加
将 /home 目录下的文件列表 写入到 /home/info.txt 中,覆盖写入
ls -l /home > /home/info.txt
如果没有 info.txt ,则会创建
ln指令
(是L不是i)
基本语法:ln -s [原文件或目录] [软连接名]
功能描述:为某一个文件在另外一个位置建立一个同步的链接(与快捷方式类似)
在 /home 下创建一个 软链接 myroot,链接到 /root目录
ln -s /root /home/myroot
删除软链接
rm /home/myroot
或 强制删除rm -rf /home/myroot
history指令
基本语法:history
功能描述:显示历史指令记录内容, 下达历史纪录中的指令
注意:
单独运行 history 命令,无需其他选项就可以查阅先前运行的命令。如果有大量的历史记录,则无法正确地看到这些记录。在这些情况下,必须使用诸如 less , more 等的文件视图命令。history | less
清除历史
有时想要删除一些或全部的历史记录
history -d <行号>
:删除特定命令<history -c>
:删除全部历史记录
所有的历史命令记录都存储在每个用户的宿主目录下.bash_history文件里,并且这个文件还可以编辑。
时间日期类
date指令
基本语法:
date
:显示当前时间date +%Y
:显示当前年份date +%m
:显示当前月份date +%d
:显示当前是哪一天date "+%Y-%m-%d %H:%M:%S"
:显示当前的年月日时分秒
功能描述:显示当前日期
实例:
显示当前时间
date
:Tue May 24 09:29:43 CST 2022date '+%c'
:Tue 24 May 2022 09:30:03 AM CSTdate '+%D'
:显示完整的时间 -> 05/24/22date '+%x'
显示数字日期 -> 05/24/2022date '+%T'
:显示日期,年份用四位数表示 -> 14:09:31date '+%X'
:显示24小时的格式 -> 09:31:31 AM
格式化输出:
date +"%Y-%m-%d"
:2000-12-07
apache 格式转换:
date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
: 2009-12-05 00:00.37
格式转换后时间游走:
date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
:2007-12-05 00:00.37
按自己的格式输出:
date '+usr_time: $1:%M %P -hey'
:usr_time: $1:16 下午 -hey
显示时间后跳行,再显示目前日期
date '+%T%n%D'
时间加减操作:
date +%Y%m%d # 显示年月日 date -d "+1 day" +%Y%m%d # 显示后一天的日期 date -d "-1 day" +%Y%m%d # 显示前一天的日期 date -d "-1 month" +%Y%m%d # 显示上一月的日期 date -d "+1 month" +%Y%m%d # 显示下一月的日期 date -d "-1 year" +%Y%m%d # 显示前一年的日期 date -d "+1 year" +%Y%m%d # 显示下一年的日期
设定时间
date -s # 设置当前时间,只有root权限才能设置,其他只能查看
date -s 20120523 # 设置成20120523,这样会把具体时间设置成00:00:00
date -s 01:01:01 # 设置具体时间,不会对日期做更改
date -s "01:01:01 2012-05-23" # 这样可以设置全部时间
date -s "01:01:01 20120523" # 这样可以设置全部时间
date -s "2012-05-23 01:01:01" # 这样可以设置全部时间
date -s "20120523 01:01:01" # 这样可以设置全部时间
搜索查找类
find指令
基本语法:find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件 |
功能描述:从指定目录向下递归地便利其各个子目录,将满足条件的文件或者目录显示在终端。
按文件名:根据名称查找 /home/animal/dog 目录下的 hello.txt 文件
find /home/animal/dog -name hello.txt
按拥有者:查找 /home 目录下,用户名为 zwj的文件
find /home -user zwj
查找 整个 Linux 系统下大于 200M 的文件 (+n 大于 -n 小于 n 等于)
find / -size +200M
locate指令
基本语法: locate 文件
功能描述:
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确性,管理员必须定期更新 locate 时刻
注意:
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb
指令 创建 locate 数据库
grep 和管道符号 |
基本语法:grep [选项] 查找内容 源文件
功能描述:grep 过滤查找 ;| 表示将前一个命令的处理结果输出传递给后面的命令处理
常用选项:
选项 | 功能 |
---|---|
-n | 显示匹配行及行号 |
-i | 忽略字母大小写 |
在 hello.txt 文件中,查找 “yes” 所在行,并显示 行号
cat /home/hello.txt | grep "yes"
grep -n "yes" /home/hello.txt
压缩和解压类
gzip 和 gunzip
基本语法:
gzip 文件
:压缩文件,只能将文件压缩为*.gz
文件gunzip 文件.gz
: 解压文件.gz
这个文件
功能描述:
gzip
用于压缩文件gunzip
用于解压文件
应用案例:
使用
gzip
压缩,将 /home 下的 hello.txt 文件进行压缩gzip /home/hello.txt
使用
gunzip
解压,将 /home 下的 hello.txt.gz 解压gunzip /home/hello.txt.gz
zip 和 unzip
基本语法:
zip [选项] xxx.zip 要压缩的内容
:压缩文件和目录unzip [选项] xxx.zip
:解压文件
功能描述:
zip
:压缩文件unzip
:解压文件
常用选项:
- zip 常用选项 ->
-r
:递归压缩,及压缩目录 - unzip 常用选项 ->
-d<目录>
:指定解压后文件的存放目录
应用实例:
将 /home 下的 所有文件/文件加进行压缩成 myhome.zip
zip -r myhome.zip /home/
[将home目录下及其包含的文件的子文件都压缩]将 myhome.zip 解压到 /opt/tep 目录下
unzip -d /opt/tmp /home/myhome.zip
tar
基本语法:
tar [选项] xxx.tar.gz 打包的内容
:打包目录,压缩后的文件格式 .tar.gz
功能描述: tar 指令 是 打包指令,最后打包后的文件是 .tar.gz 文件
选项说明:
选项 | 功能 |
---|---|
-c | 产生 .tar 打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包 .tar 文件 |
应用案例:
压缩多个文件,将
/home/animal/dog/hello.txt
和/home/cat.txt
压缩成hc.tar.gz
tar -zcvf hc.tar.gz /home/animal/dog/hello.txt /home/cat.txt
将 /home 的文件夹压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
将 hc.tar.gz 解压到当前目录
tar -zxvf hc.tar.gz
将 myhome.tar.gz 解压到 /opt/tmp2 目录下
mkdir /opt/tmp2
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
注意: 此时的 -C 指的是建立新的存档
符号 功能 -c 建立新的存档 -v 详细显示处理的文件 -f 指定存档或设备 -z 用 gzip 对存档压缩或解压 -x -x 从存档展开文件
组管理和权限管理
Linux组基本介绍
在linux中的每个用户必须属于一个组,不能独立于组外。
在linux中每个文件有 所有者、所在组、其它组 的概念。
文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就是该文件的所有者
查看文件的所有者
指令:
ls -ahl
修改文件所有者
- 指令:
chown 用户名 文件名
- 指令:
案例:使用root创建一个文件apple.txt,然后将其所有者修改成zwj
组的创建
指令:groupadd 组名
案例:
创建一个组,monster -> groupadd monster
创建一个用户fox,并放入到 monster组中 -> useradd -g monster fox
文件/目录 所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
查看文件/目录所在组
指令:
ls -ahl
修改文件所在组
指令:
chgrp 组名 文件名
案例: 使用root用户创建文件 orange.txt,看看当前这个文件属于哪个组,然后将这个文件所在组,修改 fruit组。
groupadd fruit
touch orange.txt
chgrp fruit orange.txt
其他组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。
- 改变用户所在组
usermod -g 新组名 用户名
usermod -d 目录名 用户名 改变用户登录的初始目录
注意: 用户需要有进入到新目录的权限。
案例: 将zwj这个用户从原来所在组,修改到 wudang 组。
指令: usermod -g wudang zwj
权限
基本介绍
ls -l
中显示的内容如下:
说明:
- 第0位:确定文件类型(d,-,I,c,b)
- |是链接,相当于windows的快捷方式
- d是目录,相当于windows的文件夹
- c是字符设备文件,鼠标,键盘
- b是块设备,比如硬盘
- 第1-3位:确定所有者(该文件的所有者)拥有该文件的权限。 —User
- 第4-6位:确定所属组(同用户组的)拥有该文件的权限。 —Group
- 第7-9位:确定其他用户拥有该文件的权限 —Other
权限的详解
rwx作用到文件
- [r] 代表可读(read):可以读取,查看
- [w] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所 在的目录有写权限,才能删除该文件.
- 代表可执行(execute):可以被执行
rwx作用到目录**
- [r] 代表可读(read):可以读取,Is查看目录内容
- [w] 代表可写(write):可以修改,对目录内创建+删除+重命名目录
- 代表可执行(execute):可以进入该目录
Is-|中显示的内容如下:
-rwxrw-r--1 root root 1213 Feb 2 09:39 abc
- 第一个字符代表文件类型:-Idcb
- 其余字符每3个一组 —>(rwx)读(r)写(w)执行(x)
- 第一组rwx :文件拥有者的权限是读、写和执行
- 第二组rw- :与文件拥有者同一组的用户的权限是读、写但不能执行
- 第三组r– :不与文件拥有者同组的其他用户的权限是读不能写和执行
可以用数字表示: r = 4 , w = 2 , x = 1 因此 rwx = 4+2+1 = 7
其他说明:
内容 | 说明 |
---|---|
1 | 文件:硬链接数 或 目录:子目录数 |
root | 用户 |
root | 组 |
1213 | 文件大小(字节),如果是文件夹,显示4096字节 |
abc | 文件名 |
文件及目录权限
修改权限-chmod
通过chmod指令,可以修改文件或者目录的权限。
方式一 :+ - = 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
指令:
chmod u=rwx,g=rx,o=x 文件/目录名
chmod o+w 文件/目录名
chmod a-x 文件/目录名
案例:
给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权
chmod u=rwx,g=rx,o=rx abc
给abc文件的所有者除去执行的权限,增加组写的权限
chmod u-x,g+w abc
给abc文件的所有用户添加读的权限
chmod a+r abc
方式二:通过数字变更权限
r = 4 , w = 2 , x = 1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于:chmod 754 文件目录名
案例:
将 /home/abc.txt 文件的权限修改成 rwxr-xr-x , 使用给数字的方式实现:
chmod 755 /home/abc.txt
修改文件所有者 - chown
指令:
chown 新所有者 文件/目录
-> 改变所有者
chown 新所有者:新组 文件/目录
-> 改变所有者和所在组- 选项:-R 如果是目录,则使其下所有子文件或目录递归生效
案例:
将 /home/abc.txt 文件的所有者修改成 tom
chown tom/home/abc.txt
将 /home/test 目录下所有的文件和目录的所有者都修改成 tom
chown -R tom/home/test
修改文件/目录所在组 - chgrp
指令:chgrp newgroup 文件/目录
-> 改变所在组
案例:
将 /home/abc.txt 文件的所在组修改为 shaolin
groupadd shaolin # 创建shaolin这个组 chgrp shaolin /home/abc.txt #将abc.txt文件所在组修改为shaolin
定时任务调度
crond任务调度
概述
- 任务调度:是指系统在某个时间执行的特定的命令或程序。
- 任务调度分类:系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
命令: crontab [选项]
常用选项:
选项 | 说明 |
---|---|
-e | 编辑 crontab 定时任务 |
-l | 查询 crontab 任务 |
-r | 删除当前用户所有的 crontab 任务 |
示意图:
快速入门
步骤:
设置任务调度文件:
/etc/crontab
设置个人任务调度:执行
crontab -e
命令接着输入任务到调度文件:
*1 * * * * ls -l /etc/ > /tmp/to.txt
-> 每隔1分钟,将查询 /etc/ 重定向到 to.txt 中
五个占位符的说明:
项目 | 含义 | 范围 |
---|---|---|
第一个 * |
一个小时当中的第几分钟 | 0-59 |
第二个 * |
一天当中的第几小时 | 0-23 |
第三个 * |
一个月当中的第几天 | 1-31 |
第四个 * |
一年当中的第几月 | 1-12 |
第五个 * |
一周当中的星期几 | 0-7(0和7都代表星期日) |
特殊符号说明:
特殊符号 | 含义 |
---|---|
* |
代表任何时间。比如第一个* 就代表一小时中每分钟都执行一次的意思。 |
’ |
代表不连续的时间。比如08,12,16* * * 命令 ,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
- |
代表连续的时间范围。比如05 * * 1-6命令 ,代表在周一到周六的凌晨5点0分执行命令 |
*/n |
代表每隔多久执行一次。比如*/10 * * * * 命令 ,代表每隔10分钟就执行一遍命令 |
特定时间执行任务案例
时间 | 含义 |
---|---|
45 22 * * * 命令 |
在22点45分执行命令 |
0 17 * * 1 命令 |
每周1 的17点0分执行命令 |
0 5 1,15 * * 命令 |
每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 |
每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 |
每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 |
每月1号和15号,每周1的0点0分都会执行命令 |
注意:星期几和几号最好不要同时出现,因为他们定义的都是天,非常容易让管理员混乱。
案例
每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
*/1 * * * * date >> /tmp/mydate
每隔1分钟,将当前日期和日历都追加到 /home/mycal 文件中
vim /home/my.sh 写入内容: date >> /home/mycal 和 cal >> /home/mycal 给 my.sh 增加执行权限: chmod u+x /home/my.sh crontab -e 写入内容: */1 * * * * /home/my.sh
案例3:每天凌晨2:00将mysql数据库 testdb 备份到文件中。提示:指令为
mysql dump -u root -p 密码数据库>/home/db.bak
crontab -e 写入: 0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
crond相关指令
指令 | 说明 |
---|---|
conrtab -r | 终止任务调度 |
conrtab -l | 列出当前有哪些任务调度 |
service crond restart | 重启任务调度 |
at定时任务
基本介绍
- at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
- 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
- at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
- 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
ps-ef |grep atd
,可以检测atd是否在运行
命令格式:
at [选项] [时间]
Ctrl + D
结束at命令的输入(输入两次)
at命令选项:
选项 | 含义 |
---|---|
-m | 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出 |
-l | atq的别名 |
-d | atrm的别名 |
-v | 显示任务将被执行的时间 |
-c | 打印任务的内容到标准输出 |
-V | 显示版本信息 |
-q <队列> | 使用指定的队列 |
-f <文件> | 从指定文件读入任务而不是从标准输入读入 |
-t<时间参数> | 以时间参数的形式提交要运行的任务 |
at定时任务
at时间定义
at指定时间的方法:
- 接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如: 04:00
- 使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指 定时间。
- 采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm
- 指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy (日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
- 使用相对计时法。指定格式为:now+count time-units,now就是当前时间,time-units是时间单位 这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量, 几天,几小时。例如:now+5 minutes
- 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
实例:
2天后的下午5点执行
/bin/ls /home
atq
命令来查看系统中没有执行的工作任务明天17点,输出时间到指定文件内,比如:
/root/date100.log
2分钟后,输出时间到指定文件内,比如:
/root/date200.log
删除已经设置的任务,
atrm 编号
磁盘分区、挂载
Linux分区
原理介绍
- Lnux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的 文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一 个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
硬盘说明
Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
对于IDE硬盘,驱动器标识符为
hdx~
,其中hd
表明分区所在设备的类型,这里是指IDE硬盘 7。x
为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),~
代表分区, 前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,
hda3
表示为 第一个IDE硬盘上的第三个主分区或扩展分区,hdb2
表示为第二个IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标识为
sdx~
,SCSI硬盘是用sd
来表示分区所在设备的类型的,其余则和 IDE硬盘的表示方法一样。
查看所有设备挂载情况
命令:lsblk
或者 lsblk -f
lsblk
:
lsblk-f
:
挂载
如何增加一块硬盘
- 虚拟机添加硬盘
- 分区
- 格式化
- 挂载
- 设置可以自动挂载
步骤1:
在【虚拟机】菜单中,选择【设置】,然后设备 列表里添加硬盘,然后一路【下一步】,中间只 有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)
步骤2:
分区命令:
fdisk /dev/sdb
开始对 /sdb分区:
命令 说明 m 显示命令列表 p 显示磁盘分区 同 fdisk -l
n 新增分区 d 删除分区 w 写入并退出 说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。
步骤3:格式化磁盘
命令:
mkfs -t ext4 /dev/sdb1
其中 ext4是分区类型步骤4:
挂载:将一个分区与一个目录联系起来
命令:
mount 设备名称 挂载目录
例如:
mount /dev/sdb1 /newdisk
命令:
umount 设备名称 或 挂载目录
例如:
umount /dev/sdb1
或者umount /newdisk
注意:用命令行挂载,重启后会失效
步骤5
永久挂载:通过修改 /etc/fstab 实现挂载
添加完成后 执行
mount -a
即刻生效
磁盘情况查询
查询系统整体磁盘使用情况
命令:
df -h
查询指定目录的磁盘占用情况
命令:
du -h
查询指定目录的磁盘占用情况,默认为当前目录
选项 说明 -s 指定目录占用大小汇总 -h 带计量单位 -a 含文件 –max-depth=1 子目录深度 -c 列出明细的同时,增加汇总值 实例: 查询 /opt 目录的磁盘占用情况,深度为1
du -hac --max-depth=1 /opt
磁盘情况-工作实用指令
统计 /opt 文件夹下文件的个数
ls -l /opt | grep "^-" | wc -l
统计 /opt 文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
统计 /opt 文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep "^-" | wc -l
统计 /opt 文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep "^d" | wc -l
以树状显示目录结构 tree 目录。注意:如果没有tree,则使用
yum install tree
安装tree /home/
网络配置
基础内容
网络配置
网络配置原理:
查看
查看网络IP和网关:
查看windows环境中的VMnet8网络配置:(ipconfig 指令)
查看Linux的网络配置: (ifconfig 指令)
ping测试主机之间网络连通性
基本语法:
ping 目的主机
功能描述:
测试当前服务器是否可以连接目的主机
实例:
测试当前服务器是否可以连接百度 :ping www.baidu.com
Linux网络环境配置
方法1-自动获取
说明:
登陆后,通过界面的来设置自动获取ip,特点:linux启动后会自动获取IP,缺点是每次自动获取的 ip地址可能不一样。
方法2-指定ip
说明:
直接修改配置文件来指定IP,并可以连接到外网(程序员推荐) 编辑 vim /etc/sysconfig/network-scripts/ifcfg-ens33
要求:将ip地址配置的静态的,比如:ip地址为 192.168.200.128
ifcfg-ens33
文件说明:
DEVICE=eth0 #接口名(设备、网卡)
HWADDR=00:0C:2x:6x:0x:xx #MAC地址
TYPE=Ethernet #网络类型
UUID="61240804-a177-4f86-b8ff-881d5ba9d231" #随机id
ONBOOT=yes #系统启动的时候网络接口是否有效 (yes/no)
#IP的配置方法 [none|static|bootp|dhcp] (引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
BOOTPROTO=static
#IP地址
IPADDR=192.168.200.130
#网关
GATEWAY=192.168.200.2
#域名解析器
DNS1=192.168.200.2
注意:配置完成后需要重启网络服务或者重启系统生效
service network restart
或者 reboot
设置主机名和hosts映射
设置主机名
- 为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
- 指令
hostname
:查看主机名 - 修改文件在 /etc/hostname指定 ,使用指令
vim /etc/hostname
中设置主机名 - 修改后,重启生效
设置hosts映射
Windows中:
在
C:\Windows\System32\drivers\etc\hosts
文件中写入即可案例:写入
192.168.200.130 hspedu100
Linux中:
在
/etc/hosts
文件中写入即可案例:打开hosts文件 ->
vim /etc/hosts
,写入 ->192.168.200.1 ThinkPad-PC
分析Host、DNS
Host
一个文本文件,用来记录 IP 和 Hostname(主机名) 的映射关系
DNS
- DNS,Domain Name System 的缩写,即域名系统
- 是互联网上作为域名和IP地址相互映射的一个分布式数据库
案例: 用户在浏览器输入了 www.baidu.com
- 浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用 这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有直接 返回IP完成解析。这两个缓存,可以理解为本地解析器缓存
- 一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏 览器或操作系统会缓存他的IP地址(DNS解析记录).
如在cmd窗口中输入ifconfig /displaydns
:DNS域名解析缓存ipconfig /flushdns
:手动清理dns缓存 - 如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中 有没有配置对应的域名IP映射,如果有,则完成解析并返回。
- 如果本地DNS解析器缓存 和 hosts文件 中均没有找到对应的IP, 则到域名服务DNS进行解析域
进程管理
基本介绍
- 在LINUX中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。=>windows=>linux
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程 则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
显示系统执行的进程
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。
ps详解: ps -aux | grep xxx
,查看系统执行的进程
指令说明:
名称 | 含义 |
---|---|
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 | 启动进程所用的命令和参数,如果过长会被截断显示 |
案例: 以全格式显示当前所有的进程,查看进程的父进程。查看sshd的父进程信息:ps -ef | grep sshd
ps -ef
:以全格式显示当前所有的进程
-e
:显示所有进程。
-f
:全格式
解析:
BSD风格
UID :用户ID
PID : 进程ID
PPID :父进程ID,
C:CPU用于计算和执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高。
STLME:进程启动的时间
TTY:完整的终端名称
CMD:启动进程所用的命令和参数
终止进程 kill 和 killall
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完 成此项任务。
基本语法:
kill [选项] 进程号
:通过进程号杀死/终止进程
killall [进程名称]
:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
常用选项:
-9
:表示强迫进程立即停止:kill -9 105996
,表示强制终止105996这个进程。
案例:
踢掉某个非法登录用户
kill 进程号
,比如:kill 105996
终止远程登录服务 sshd,在适当时候再次重启 sshd 服务
kill sshd对应的进程号
;/bin/systemctl start sshd.service
终止多个gedit编辑器
killall gedit
强制终止一个终端
kill -9 bash对应的进程号
查看进程树 patree
基本语法:
pstree [选项]
:可以更加直观的来看进程信息
常用选项:
选项 | 说明 |
---|---|
-p | 显示进程的 PID |
-u | 显示进程的所属用户 |
案例:
以树状的形式显示进程的 pid
pstree -p
以树状的形式显示进程的所属用户
pstree -u
服务service管理
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld,sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。【原理图】
service管理指令
service 服务名 [start/stop/restart/reload/status]
在 CentOS7.0 后,很多服务不再使用 service,而是 systemctl
service 指令管理的服务在 /etc/init.d 查看
案例:
使用 service 指令,查看,关闭,启动 network
注意:在虚拟系统演示,因为网络连接会关闭
指令:
service network status
service network stop
service network start
查看服务名
方式1: setup
-> 系统服务,就可以看到全部
setup
方式2: /etc/init.d 看到 service 指令管理的服务
ls -l /etc/init.d
服务的运行级别 runlevel
Linux系统有7种运行级别(runlevel):常用的是级别3和5
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS),不支持网络
- 运行级别3:完全的多用户状态(有NFS),无界面,登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
开机的流程说明:
CentOS7后运行级别说明
在 /etc/initab 进行了简化,如下:
multi-user.target: analogous to runlevel 3
graphical.target: anlogous to runlevel 5
init 0
:关机
查看默认的运行级别:
systemctl get-default
设置默认的运行级别:
systemctl set-default 运行级别英文.target
chkconfig指令
通过chkconfig
命令可以给服务的各个运行级别设置自启动/关闭
chkconfig 指令管理的服务在 /etc/init.d 查看
注意:Centos7.0后,很多服务使用systemct1管理
基本语法:
- 查看服务:
chkconfg --list | grep xxx
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
案例:
对 network 服务,进行各种操作,把 network 在 3 运行级别关闭,关闭自启动
chkconfig --level 3 network off
chkconfig --level 3 network on
使用细节:
chkconfig 重新设置服务后自启动 或 关闭,需要重启机器 reboot 生效
systemctl管理指令
基本语法:
systemctl [start/stop/restart/status] 服务名
:开启/停止/重新启动/查看 这个服务
systemctl 指令管理的服务在 /usr/lib/systemd/system
查看
systemctl 设置服务的自启动状态
systemctl list-unit-files | grep 服务名
:查看服务开机启动状态,grep 可以进行过滤
sytemctl enable 服务名
:设置服务开机启动
systemctl desable 服务名
:关闭服务开机启动
systemctl is-enabled 服务名
:查询某个服务是否是自启动的
案例:
查看当前防火墙的状况,关闭防火墙和重启防火墙 => firewalld.service
systemctl status firewalld
:查看防火墙的状况
systemctl stop firewalld
:关闭防火墙
systemctl start firewalld
:重启防火墙
细节:
- 关闭或者启用防火墙后,立即生效。 [ telnet测试某个端口即可 ]
- 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
- 如果希望设置某个服务自启动或关闭永久生效,要使用
systemctl [enable/disable]
服务名
打开或关闭指定端口
在真正的生产环境,往往需要将防火墙打开,如果我们把防火墙打开,那么外部请求数据包就不能跟 服务器监听端口通讯。这时,需要打开指定的端口。比如80、22、8080等。
firewall指令
- 打开端口:
firewall -cmd --permanent --add -port=端口号/协议
- 关闭端口:
firewall -cmd --permanent --remove -port=端口号/协议
- 重新载入,才能生效:
firewall -cmd --reload
- 查询端口是否开放:
firewall -cmd --query -port=端口/协议
案例:
启用防火墙,测试 111 端口是否能 telnet,–> 不能
开放 111 端口
firewall -cmd --permanent --add -port=111/tcp
,需要firewall -cmd --reload
再次关闭 111 端口
firewall -cmd --permanent --remove -port=111/tcp
,需要firewall -cmd --reload
动态监控进程
基本内容
top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以 更新正在运行的的进程。
基本语法:
top [选项]
选项说明:
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新。默认是3秒 |
-i | 使top不显示任何限制或僵死进程 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态 |
交互操作说明
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top |
案例:
监视特定用户,例如:监视 tom 用户
top
:输入次命令,按回车键,查看执行的进程u
:然后输入u
按回车,再输入用户名,即可
监控网络状态
查看系统网络情况 netstat
基本语法
netstat [选项]
选项说明
选项 | 说明 |
---|---|
-an | 按一定顺序排列输出 |
-p | 显示哪个进程在调用 |
案例:
查看服务名为 sshd 的服务的信息
netstat -anp | grep sshd
检测主机连接命令 ping
是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的网线或网卡故障 如:ping 对方ip地址
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
案例:看看当前系统,是否安装了firefox
指令: 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 -qa | more
rpm -qa | grep X [ rpm -qa | grep firefox ]
rpm -q 软件包名
:查询软件包是否安装
案例: rpm -q firefox
rpm -qf 文件全路径名
:查询文件所属的软件包
rpm -qf /etc/passwd
rpm -qf /root/install.log
卸载 rpm 包
基本语法:
rpm -e RPM包的名称
案例:
删除 firefox 软件包:rpm -e firefox
细节:
如果其他软件包依赖于要卸载的软件包,卸载时则会产生错误信息。
如:
rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
可以强制删除 foo 这个 rpm 包,可以增加参数
--nodeps
,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行如:
rpm -e --nodeps foo
安装rpm包
基本语法:
rpm -ivh RPM包全路径名称
参数说明:
参数 | 说明 |
---|---|
i 即 install | 安装 |
v 即 verbost | 提示 |
h 即 hash | 进度条 |
案例:
卸载和安装 firefox 浏览器
rpm -e firefox
rpm -ivh firefox
yum
Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动 下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
基本指令:
查询 yum 服务器是否有需要安装的软件
yum list | grep xx
:软件列表
安装指定的 yum 包:
yum install xxx
:下载安装
案例:
使用 yum 的方式来安装 firefox
rpm -e firefox
yum list | grep firefox
yum install firefox