栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

三、Linux的高阶指令(无比详细版)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

三、Linux的高阶指令(无比详细版)

3.1 vi/vim编辑器及其相关指令

3.1.1 为什么要学习VI/VIM
1、所有的类Unix系统,都自带vi 文本编辑器
2、很多应用程序的编辑界面都会主动呼唤 vi编辑器 
3、vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
4、操作简单,编辑速度快。
5、VIM是VI的升级版
​
​
vi编辑器就是和windows的记事本,某些本文编辑工具(notepad++,editplus,sublim text)一样

3.1.2 模式介绍

命令模式(一般模式)

用户对一个文件启动 Vim/Vi,便进入了命令模式(也称为一般模式)。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。在此模式下,可以通过命令对文件内容进行删除,复制,粘贴等行为,可以理解为快捷键操作

插入模式(编辑模式)

在命令模式下,输入i, I, o, O, a, A, r, R等任意命令,便会立即进入插入模式(也称之编辑模式),在这个模式下,我们才可以对文件进行详细的编辑,比如使用退格键,删除键,回车键等各式各样的文本编辑了。按【ESC】键回到命令模式

底行命令模式

在命令模式下,输入字符【:?/】三个中的任意一个,就会来到底线命令模式下。在这个模式下,我们可以完成搜索、读取、存档、离开Vim/Vi等很多行为。按【ESC】键回到命令模式

参考下图:

 

3.1.3 常用命令(一般模式下使用)
H:移动到当前屏幕的最上一行的行首  
M:移动到当前屏幕的中间一行的行首  
L: 移动到当前屏幕的最下一行的行首  
gg:移动到这个文件的第一行,相当于1G (常用)  
G:移动到这个文件的最后一行(常用)
NG: 移动这个文件的第N行
x, X:在一行字符中,x表示向后删除一个字符(相当于del键),X为向前删除一个字符(相当于退格键) (常用)  
nx:n为数字,连续向后删除n个字符。  
dd:刪除游标所在的那一行(常用,也是剪切)  
ndd:n为数字。删除游标所在的向下n行(常用)  
d1G:刪除游标所在到第一行的所有行数据  
dG:刪除游标所在到最后一行的所有行数据 
yy,Y:复制游标所在的那一行数据(常用)  
nyy,nY:n 为数字。复制游标所在的向下n行(常用)  
p, P:p表示将复制的数据粘贴到游标所在行的下一行,P表示将复制的数据粘贴到游标所在行的上一行 (常用)  
u:撤销前一个动作。(常用)

3.1.4 如何进入插入模式
i/I
    - i  光标所在处前开始插入
    - I  光标所在行行首开始插入
​
a/A
    - a  光标所在处后开始插入
    - A  光标所在行行尾开始插入
o/O
    o  光标所在行的下一行开始输入
    O  光标所在行的上一行开始输入

3.1.5 底行命令模式
退出操作:
    :q    不保存退出, 前提是什么都没干。才会成功
    :q!   强制退出,不保存
    :qw   保存并退出
    :qw!  强制保存并退出
其他的底层命令操作:
    :set nu    显示行号
    :set nonu  取消行号显示

3.2 Linux的网络配置

3.2.1 网络的相关概念
1. 外网:IP是唯一性,不能重复。范围:0.0.0.0~255.255.255.255
2. 内网:通过路由器或者交换器设备,来重新设置IP地址。
   不同的内网的ip可以相同。内网A的某一台主机通过自己的网卡与自己的路由器A通信,然后路由器A通过网络中心
   与路由器B通信,路由器B再与内网中的某一台机器的网卡通信。
3. IP:   ip地址是确定一台机器的唯一标识符
4. NETMASK(子网掩码):与ip连用,用于确定网络段位         
   192.168.1.x      范围:1-254
   255.255.0.0  
   子网掩码有1的位置对应ip的部分就是网络段位。0对应的位置就是内网中主机的位置。                 
5. GATEWAY:网关,用于与连接外网的机器设备通信(路由器)换句话说,网关就是路由器的IP
6. DNS:域名解析服务器
   119.75.217.109  www.baidu.com
   
   
   
   
   IP:  IP是电脑在网络中的唯一标识符,IP的段位和号码。 段位和路由器一致,后面的号码决定该内网中可以有多少台电脑,但是初始的几个值以及最后的几个值是预用的,普通设备不能使用。
   路由器:路由器里的DHCP服务器的作用,是用来给设备分配动态IP
   DNS:  IP的另外一个好记的名字映射的解析器

3.2.2 Linux的网络配置几种模式

1)桥接模式

该模式下的虚拟机的IP与物理机的IP是同一个段位(换句话说,内网中的机器个数=物理机个数+虚拟机个数)

 

2)NAT模式

使用的虚拟网卡是NetWork Adapter VMnet8,该虚拟网卡的作用是虚拟机与物理机通信。虚拟机的ip是由此虚拟交换机中的虚拟机DHCP服务器分配。能联网,可以与连接此虚拟交换机内的所有虚拟机进行通信。外网不能直接与此虚拟机通信

 

3)仅主机模式(忽略不讲)

作用就是虚拟机和物理机之间进行通信

3.2.3 桥接模式下的静态IP的网络配置

步骤1)修改该虚拟机的连接方式为桥接模式

步骤2)修改配置文件 (/etc/sysconfig/network-scripts/ifcfg-ens33)

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
​
TYPE=Ethernet
BOOTPROTO=static         #三个值dhcp,static,none可选, dhcp表示动态分配,其他两个为静态
NAME=ens33
DEVICE=ens33
ONBOOT=yes        #开机后是否自动联网,yes为自动,no为手动
IPADDR=10.20.152.200
NETMASK=255.255.255.0
GATEWAY=10.20.152.1           # 这个单词特别容易写错
DNS1=10.20.152.1
DNS2=8.8.8.8
DNS3=114.114.114.114

步骤3)重启网络服务项

[root@localhost ~]# systemctl restart network

步骤4)查看ip地址

[root@localhost ~]# ip addr

步骤5)校验网络是否畅通

1. 与外网是否通畅:ping  www.baidu.com       
   向百度服务器发送一个连接请求,如果连接成功,百度服务器就会向本机发送64个字节
2. 与物理机是否通畅:
      -- 虚拟机ping物理机    ping  物理机的ip
      -- 物理机ping虚拟机    ping  虚拟机的ip

3.2.4 NAT模式下的静态IP的网络配置

步骤1)修改虚拟机的连接模式为NAT模式

步骤2)查看并修改VMNet8的虚拟信息

vmware的编辑菜单-->虚拟网络编辑器-->更改设置-->选中VMnet8,修改子网IP段位为192.168.10.0
-->点击应用-->点击NAT设置,查看相关信息,比如
子网IP、子网掩码、网关

步骤3)修改配置文件

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
​
TYPE=Ethernet
BOOTPROTO=static         #三个值dhcp,static,none可选, dhcp表示动态分配,其他两个为静态
NAME=ens33
DEVICE=ens33
ONBOOT=yes        #开机后是否自动联网,yes为自动,no为手动
IPADDR=192.168.10.101
NETMASK=255.255.255.0
GATEWAY=192.168.10.2        # 这个单词特别容易写错
DNS1=192.168.10.2
DNS2=8.8.8.8
DNS3=114.114.114.114

步骤4)重启网络服务项

[root@localhost ~]# systemctl restart network

步骤5)查看ip地址

[root@localhost ~]# ip addr

步骤6)校验网络是否畅通

1. 与外网是否通畅:ping  www.baidu.com       
   向百度服务器发送一个连接请求,如果连接成功,百度服务器就会向本机发送64个字节
2. 与物理机是否通畅:
      -- 虚拟机ping物理机    ping  物理机的ip
      -- 物理机ping虚拟机    ping  虚拟机的ip  

3.3 远程连接工具的应用

因为Linux系统通常用于服务器,没有桌面环境,只有DOS界面,而且有的时候,服务器上的软件坏掉了,或者由于权限问题,不能直接操作服务器。而是通过远程进行操作,比如管理员授权普通员工连接服务器,或者管理员自己在家,用家里的电脑连接公司的服务器,进行作业,更加方便。所以,市面上提供很多中可以远程连接服务器的软件工具。比如Xshell、FinallShell、CRT、putty、MobaXterm等

这里选择使用MobaXterm这款工具,版本随意:MobaXterm_Installer_v10.9.zip. 双击安装即可。


链接:https://pan.baidu.com/s/1N6ARfi5fk2WZuFsDMyN21w 提取码:sicf https://pan.baidu.com/s/1N6ARfi5fk2WZuFsDMyN21w        解压之后双击 .msi文件安装

小贴士:setting里可以设置主题,点击右键即粘贴等

3.4 其他网络设置

3.4.1 防火墙的关闭
systemctl status firewalld    #查看防火墙的状态
systemctl stop firewalld    #临时关闭防火墙
systemctl start firewalld   #临时开启防火墙
systemctl disabled firewalld   #设置开机不自动启动防火墙
systemctl enable firewalld   #设置开机自动启动防火墙
​
​
小贴士: 集群中的linux,通常都是关闭防火墙的

3.4.2 NetworkManager的关闭
systemctl status NetworkManager   
systemctl stop firewalld    
systemctl start firewalld  
systemctl disabled firewalld   
systemctl enable firewalld  
​
小贴士: 集群中的linux,通常都是关闭NetworkManager的

3.4.3 netstat指令
注意:该指令在net-tools安装包内,需要安装。yum -y install net-tools
英文:network statistics       命令路径:/bin/netstat       执行权限:所有用户
作用:主要用于检测主机的网络配置和状况
​
-a (all)显示所有连接和监听端口
-t  (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 使用数字方式显示地址和端口号
-p 显示socket的PID和进程的名字
-l  (listening)显示监控中的服务器的socket
​
案例演示:
eg: netstat -tlnu      查看本机监听(正在使用的)的端口
eg: netstat -nltp      查看本机监听(正在使用的)的端口以及PID和Name信息
eg: netstat -ntlp | grep tcp6    查看某一个程序的端口信息
eg: netstat -atnp | grep 25   查看端口

3.4.4 主机名和映射文件的修改

1)主机名的修改

方式1:直接修改配置文件/etc/hostname
[root@localhost ~]# vi  /etc/hostname
​
方式2: 使用hostnamectl指令
[root@localhost ~]# hostnamectl set-hostname qianfeng01
​
主机名的查看
[root@localhost ~]# hostname
​
如果想要更新当前会话的主机名,要么重启,要么进入子程序(直接bash指令)

2)映射文件的修改

域名映射文件的位置/etc/hosts

[root@qianfeng01 ~]# vi  /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.101 qianfeng01 qianfeng001
192.168.10.102 qianfeng02
192.168.10.103 qianfeng03
192.168.10.104 qianfeng04
192.168.10.105 qianfeng05
​
注意:先写ip,在写域名字符串
​
ping指令,会先访问/etc/hosts文件,如果找到了ping后面的域名,则使用域名对应的ip地址,向ip地址所在的机器发送请求

3.5 常用的进程管理命令

3.5.1 ps
作用:查看系统中的进程信息
语法:ps [-auxle]
常用选项
​
a:显示所有用户的进程
u:显示用户名和启动时间
x:显示没有控制终端的进程
e:显示所有进程,包括没有控制终端的进程
l:长格式显示
​
eg:
    ps -aux  
    ps -aux | grep java

3.5.2 pstree(需要安装:yum -y install psmisc)
作用:查看当前进程树
​
语法:pstree [选项]
-p  显示进程PID
-u  显示进程的所属用户
​
eg:  pstree -p

3.5.3 kill
作用:杀死进程
语法:  kill -9 pid.....
​
eg:   kill -9  1514  1548

3.5.3 nohup
作用: 将前台进程设置成后台进程, 需要配合&符号,才可以解放当前窗口
​
eg:  nohup ping www.baidu.com > ping.txt &

3.6 用户与用户组的相关命令

3.6.1 简介
要登入Linux系统,一定要有账号和密码才行,否则怎么登入,您说是吧。我们还知道Linux系统是一个多用户的操作系统;那么,不同的用户应该拥有不同的权限才行吧?否则,有什么意义呢。
​
Linux系统用user和group两个概念来进行一部分权限的限定。当然,这些权限的管理工作,还是超级管理员root来做的。

注意:因为整个系统的管理工作都是root,所以使用root用户时,要谨慎,能不用时,就尽量不用。

user,是登入Linux系统的账号,其实这个账号只是为了方便人们记忆而已,每一个账号都对应一个唯一的UID数字标识符,这个对应关系存储在/etc/passwd文件当中。所以,我们在登入的时候,Linux其实使用的是UID来辨识是否存在此用户的。

group,由于多用户概念的引用,Linux为了方便管理用户,又引用了用户组的概念。Linux系统可以有多个用户组,每个用户组也都有自己的GID数字唯一标识符。

1.用户和用户组的关系
    - 一个用户可以属于多个用户组(主用户组和附加用户组)
    - 一个用户组下可以有多个用户
​
2. 举个现实生活中的例子
    用户A、B、C是公司开发部门项目组M的成员,正在开发一个JAVA项目
    用户D、E、F是公司开发部门项目组N的成员,正在开发一个C语言项目
    项目组N由于要赶时间完成开发,向项目组M借用了一个用户A(A牛掰,会java,还会c)
    因此牛掰的A每天的上午要在项目组M中开发JAVA项目,下午要在项目组N中开发c项目。晚上......加班吧

3.6.2 User的管理(/etc/passwd,/etc/shadow)

1)useradd

语法格式:useradd  [选项]  [用户名]
常用选项:
  -c comment 指定一段注释性描述。
  -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  -g 用户组 指定用户所属的用户组。
  -G 用户组,指定用户所属的附加组。
  -s Shell文件 指定用户的登录Shell。
  -u 用户ID号 指定用户的UID
  
eg:
[root@qianfeng01 home]#  useradd  -c 'this is a new user' -g 0 -G 1 -u 1001 -s /bin/bash  michael
​
​
[root@qianfeng01 home]#  useradd  -d /home/scott1 -c 'this is a new user' -g 0 -G 1 -u 1002 -s /bin/bash  scott
​
​
​
小贴士:  普通用户的家的位置和名字       /home/用户名/

2)passwd

语法格式:passwd  [选项]  [用户名]
常用选项:
    -l 锁定口令,即禁用账号。
    -u 口令解锁。
    -d 使账号无口令。
    -f 强迫用户下次登录时修改口令。
​
eg:   passwd   michael

注意:用户账号刚创建时没有口令,账号被系统锁定,无法使用。只有我们为账户指定口令后,此账户才可以使用。设定口令的命令为passwd,超级用户可以为自己和普通用户设定口令,普通用户只能修改自己的口令。

3)su

语法:su [用户名]
作用:切换用户账户
​
eg:
    su michael    切换成michael身份
    su            切换成root身份
    su root       切换成root身份

4)usermod

语法格式:usermod  [选项]  [用户名]
常用的选项与useradd命令中的选项一样,有-c, -d, -m, -g, -G, -s, -u等,用这些参数为用户指定新值。
另外,可以使用 -l 选项 来修改用户名(建议:如果修改用户名,最好也一起把主目录也一起修改了)。
​
格式如下:   如果修改用户名,最好带上-m参数,同时修改主目录
usermod  -l  newName  -d /home/newName  -m oldName
​
案例1:# usermod -s /bin/ksh -d /home/ls –g adm lisi
此命令将用户lisi的登录Shell修改为ksh,主目录改为/home/ls,用户组改为adm
案例2:
     usermod -m michael -l michael1  -d /home/michael1

5)userdel

系统管理员可以将用户账户从系统中删除。在做删除操作时,/etc/passwd,/etc/shadow,/etc/group等相关系统文件中的该用户记录会同时删除。有的时候,可能还需要删除该用户相关的主目录。

语法格式:userdel  [选项]  [用户名]
常用的选项是 -r,它的作用是把用户的主目录一起删除。
​
如果没有添加-r. 可以使用useradd -g 指定原组 -u 指定原uid值  用户名, 添加回来,再次删除

3.6.3 Group的管理(/etc/group)

Linux将系统内的多个用户规划到不同的用户组中,这样系统就可以通过管理用户组来统一管理多个用户了。默认情况下,系统在创建用户时,会同时创建一个与它同名的用户组,然后将此用户划分到这个用户组中。

用户组的单独管理,其实就是对/etc/group系统文件的管理,涉及到的操作有:添加,删除和修改。

1)groupadd

语法格式如下:groupadd  [选项]  [用户组]
常用选项有:
       -g   指定新用户组的组标识号(gid)。
       -o  一般与-g选项同时使用,表示新用户组的gid可以与系统已有用户组的gid相同。
实例1:# groupadd grp1
//在系统中添加一个新组grp1,新组的gid是在当前已有的最大组标识号的基础上自动+1。
 
实例2:# groupadd -g 600 grp2
//在系统中添加了一个新组grp2,同时指定新组的组标识号是600。

2)groupmod

语法格式:groupmod  [选项]  [用户组]
常用的选项有:
        -g 为用户组指定新的组标识号。
        -o 与-g选项同时使用,用户组的新gid可以与系统已有用户组的gid相同。
        -n  将用户组的名字改为新名字
​
实例1: # groupmod -g 601 grp1
  // 将用户组grp1的组标识号修改为601。
​
实例2: # groupmod –g 10000 -n grp2 grp1
  // 将用户组grp1的标识号改为10000,同时将组名修改为grp2。

3)groupdel

语法格式:groupdel   [用户组]
​
案例1:# groupdel grp1
//从系统中删除用户组grp1。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641993.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号