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

运维--Linux详解

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

运维--Linux详解

运维-Linux详解 零、文章目录 一、Linux简介 1、简介

在服务器端,Linux是最流程的操作系统。Linux 有一个强大的服务器软件生态系统:Docker、Redis、MySQL、Nginx、Hadoop 等等。

Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

2、内核版本
  • xx.yy.zz

    • xx主版本
    • yy次版本
    • zz末版本
  • 小于2.6版本

    • 次版本奇数为开发版
    • 次版本偶数为稳定版
  • 大于2.6版本

    • Longterm长期支持版本
    • stable稳定版本
    • mainline主线开发版本
3、发行版

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

4、linux和windows区别
  • 使用 Windows 倾向于 GUI 操作,Linux 虽然也可以安装图形界面,但是 Linux 倾向于命令行操作(可以自动化、可以精确控制、可以组合命令)。
  • windows 下主要根据文件的扩展名区分文件类型,linux 中可以没有扩展名。
  • Linux 不同版本使用方法、配置文件可能变化很大,要自己查、反复试。
  • 易错的地方:Linux 中文件名是区分大小写的,Windows不区分。
二、Linux安装 1、安装Vmware虚拟机 (1)下载
  • 官网下载:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.1.2-17966106.exe
  • 百度网盘链接:https://pan.baidu.com/s/1PoKMuYpgjQ4o-yTcEcc8Ew 提取码:1234
(2)安装 (3)无法安装Vmware虚拟机原因
  • 你的电脑不支持虚拟化或者是没有开启虚拟化
  • windows10系统默认有一个虚拟机Hyper-V,把windows自带虚拟机给干掉
(4)虚拟机可以进行克隆

2、虚拟机安装Linux (1)下载
  • 百度网盘链接:https://pan.baidu.com/s/1uG_CYfRJyQVEy0CqvWS_Hg 提取码:1234
(2)安装在虚拟机上 3、配置虚拟机网络 (1)安装虚拟机网卡

编辑->虚拟网络编辑器

修改宿主机Vmnet8网卡配置

(2)配置虚拟机网络

(3)配置虚拟机网卡信息

查看网卡是哪个文件

[liyou@localhost ~]$ ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.0.112  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::da9e:4ce3:6d3b:37b1  prefixlen 64  scopeid 0x20
        ether 00:0c:29:00:38:2c  txqueuelen 1000  (Ethernet)
        RX packets 12892  bytes 19164992 (18.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3762  bytes 254726 (248.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 68  bytes 5912 (5.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 68  bytes 5912 (5.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:93:7b:8c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

修改网卡信息,BOOTPROTO修改static,IP固定

先切换root,否则无权限修改网卡文件

[liyou@localhost ~]$ su root
Password:
[root@localhost liyou]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
——————— 未修改的 ———————
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“dhcp”
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens32”
UUID=“928523cf-3506-431d-b7ae-b25572be9630”
DEVICE=“ens32”
ONBOOT=“yes”
———————- 修改后的 —————————
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“static”
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens32”
UUID=“928523cf-3506-431d-b7ae-b25572be9630”
DEVICE=“ens32”
ONBOOT=“yes”
IPADDR=192.168.119.185
NETMASK=255.255.255.0
GATEWAY=192.168.119.2
DNS1=192.168.119.2

修改完成保存重启网卡信息

[root@localhost liyou]# service network restart
(4)测试网络是否ping通

宿主机ping虚拟机

C:UsersAdministrator>ping -t 192.168.119.187

正在 Ping 192.168.119.187 具有 32 字节的数据:
来自 192.168.119.187 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.119.187 的回复: 字节=32 时间=8ms TTL=64
来自 192.168.119.187 的回复: 字节=32 时间=2ms TTL=64
来自 192.168.119.187 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.119.187 的回复: 字节=32 时间=2ms TTL=64

虚拟机ping宿主机

  • 查看宿主机IP
无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   IPv6 地址 . . . . . . . . . . . . : 2409:8a20:2273:5720:f93d:8d7e:1151:65a8
   临时 IPv6 地址. . . . . . . . . . : 2409:8a20:2273:5720:b533:4828:7790:859b
   本地链接 IPv6 地址. . . . . . . . : fe80::f93d:8d7e:1151:65a8%5
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.227
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : fe80::1%5
                                       192.168.1.1
  • ping宿主机
[root@localhost liyou]# ping 192.168.1.227
PING 192.168.1.227 (192.168.1.227) 56(84) bytes of data.
64 bytes from 192.168.1.227: icmp_seq=1 ttl=128 time=0.630 ms
64 bytes from 192.168.1.227: icmp_seq=2 ttl=128 time=2.07 ms
64 bytes from 192.168.1.227: icmp_seq=3 ttl=128 time=1.59 ms
64 bytes from 192.168.1.227: icmp_seq=4 ttl=128 time=2.36 ms
64 bytes from 192.168.1.227: icmp_seq=5 ttl=128 time=2.26 ms
64 bytes from 192.168.1.227: icmp_seq=6 ttl=128 time=2.41 ms
64 bytes from 192.168.1.227: icmp_seq=7 ttl=128 time=2.38 ms
(5)虚拟机网络通信原理

4、购买云服务器

**云服务器(Elastic Compute Service, ECS)**是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。

云服务器管理方式比物理服务器更简单高效,我们无需提前购买昂贵的硬件,即可迅速创建或删除云服务器,云服务器费用一般在几十到几百不等,可以根据我们的需求配置。

(1)购买服务器

下载地址:https://www.aliyun.com/minisite/goods?userCode=0phtycgr

(2)配置服务器

登录阿里云控制台:https://ecs.console.aliyun.com/#/home

获取服务器公网IP

(3)修改服务器登录密码

点击蓝色实例名,进入实例详情,可以重置密码,也可以修改主机名

(4)配置安全组开放端口号

授权对象 0000表示授权给所有人

5、宝塔面板安装

宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。
有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得全球百万用户认可安装。运维要高效,装宝塔。

教程地址:https://www.bt.cn/bbs/thread-19376-1-1.html

6、连接服务器 (1)常用工具
  • 连接Linux工具有:XShell、FinalShell、SecureCRT
  • Linux的FTP上传下载工具有:WinSCP、XFtp (XShell安装后自动安装的)、FinalShell
(2)远程连接工具

下载地址:https://www.netsarang.com/zh/free-for-home-school/

(3)FTP上传工具

三、Linux基础 1、基础知识 (1)man(查看命令帮助信息)

常用参数:

-a在所有的man帮助手册中搜索
-d主要用于检查,如果用户加入了一个新的文件,就可以用这个参数检查是否出错
-f显示给定关键字的简短描述信息
-p指定内容时使用分页程序
-M指定man手册搜索的路径
-w显示文件所在位置

快捷键:

q退出
Enter按行下翻
Space按页下翻
b上翻一页
/字符串在手册页中查找字符串
man ls  查看ls的帮助
man l man 查看man自身的帮助
(2)help(获取内部帮助命令)
ls --help  查看ls的帮助
(3)info比man更丰富的帮助信息 (4)history显示历史输入过的命令 (5)clear清屏 (6)快捷键
  • ctrl + c(停止当前进程)
  • ctrl + l(清屏,与clear命令作用相同)
  • ctrl +滚动鼠标调整窗口字体大小
  • 上 / 下 光标键可以在曾经使用过的命令之间来回切换
  • 敲出 文件 / 目录 / 命令 的前几个字母,按下 tab 键,无歧义,系统会自动补全
  • 敲出 文件 / 目录 / 命令 的前几个字母,按下 tab 键,有歧义,再按 tab 键,系统会提示可能存在的命令
(7)命令提示符
  • "$"普通用户
  • "#"root用户
(8)命令参考网站
  • https://www.linuxcool.com/
  • https://www.runoob.com/linux/linux-tutorial.html
  • https://gitee.com/jishupang/linux-memo
2、开关机 (1)开机

一般来说,用户的登录系统方式有三种:

  • 命令行登录
  • ssh登录
  • 图形界面登录

(2)关机

在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

可以运行如下命令关机:

sync #将数据由内存同步到硬盘中。

shutdown #关机指令,你可以man shutdown 来看一下帮助文档。

shutdown –h 10 #10分钟后关机

shutdown –h now #立马关机

shutdown –h 20:25 #系统会在今天20:25关机

shutdown –h +10 #10分钟后关机

shutdown –r now #系统立马重启

shutdown –r +10 #系统十分钟后重启

reboot #重启,等同于 shutdown –r now

halt #关闭系统,等同于shutdown –h now 和 poweroff
3、系统目录结构 (1)系统目录结构
  • Linux里面一切皆文件,所有的东西都是文件的形式呈现管理
  • /是系统的根目录,所有的东西都在这个目录下面
[root@bluecusliyou ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
(2)目录结构说明

  • /bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
  • **/boot:**这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • **/dev :**dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
  • **/etc:**etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  • /home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
  • /lib:lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
  • /opt:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
  • /proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  • /sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
  • /selinux: 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
  • /srv:该目录存放一些服务启动之后需要提取的数据。
  • /sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
  • /tmp:tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
  • /usr:usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
  • **/usr/bin:**系统用户使用的应用程序。
  • **/usr/sbin:**超级用户使用的比较高级的管理程序和系统守护程序。
  • **/usr/src:**内核源代码默认的放置目录。
  • /var:var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
四、文件与目录 1、前置概念 (1)通配符
  • *:匹配任意字符
  • ?:匹配单个字符
  • [xyz]:匹配xyz任意一个字符
  • [a-z]:匹配字符范围
  • [!xyz]:匹配不在xyz中的任意字符
(2)重定向>和>>
  • “>”:表示覆盖
  • “>>”:表示追加
[root@bluecusliyou testdir]# ll
total 39820
drwxr-xr-x 2 root root       50 Nov 18 17:18 testdir1
drwxr-xr-x 2 root root        6 Nov 18 17:11 testdir2
-rw-r--r-- 1 root root 40764544 Nov 19 10:11 test.exe
-rw-r--r-- 1 root root        0 Nov 18 17:11 testfile1
-rw-r--r-- 1 root root        0 Nov 18 17:11 testfile2
-rw-r--r-- 1 root root     4855 Nov 19 10:09 test.png
[root@bluecusliyou testdir]# echo '123'>1.txt
[root@bluecusliyou testdir]# echo '456'>2.txt
[root@bluecusliyou testdir]# cat 1.txt
123
[root@bluecusliyou testdir]# cat 2.txt
456
[root@bluecusliyou testdir]# cat 1.txt 2.txt>3.txt
[root@bluecusliyou testdir]# cat 3.txt
123
456
[root@bluecusliyou testdir]# cat 1.txt>>3.txt
[root@bluecusliyou testdir]# cat 3.txt
123
456
123
[root@bluecusliyou testdir]# cat 1.txt>3.txt
[root@bluecusliyou testdir]# cat 3.txt
123
(3)管道符|

管道:前面命令的输出 可以通过管道做为 后面命令的输入。

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。

eg: 【ls -lh bin | more】表示:把bin下的内容分页输出

【ps -ef|grep nginx】:查询nginx的进程

【ifconfig|more】:将网络信息分页输出。

2、文件目录管理 (1)ls (列出文件目录)

常用参数:

-a显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l使用长格式列出文件及目录信息
-r将文件以相反次序显示(默认依英文字母次序)
-h配合-l以人性化的方式显示文件大小
-t根据最后的修改时间排序
-A同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录)
-S根据文件大小排序
-R递归列出所有子目录
# 列出当前目录下的文件
[root@bluecusliyou testdir]# ls
testdir1  testdir2  test.exe  testfile1  testfile2  test.png
# 列出文件,包含隐藏文件
[root@bluecusliyou testdir]# ls -a
.  ..  testdir1  testdir2  test.exe  testfile1  testfile2  test.png
# 使用长格式列出文件及目录信息
[root@bluecusliyou testdir]# ls -l
total 39820
drwxr-xr-x 2 root root       50 Nov 18 17:18 testdir1
drwxr-xr-x 2 root root        6 Nov 18 17:11 testdir2
-rw-r--r-- 1 root root 40764544 Nov 19 10:11 test.exe
-rw-r--r-- 1 root root        0 Nov 18 17:11 testfile1
-rw-r--r-- 1 root root        0 Nov 18 17:11 testfile2
-rw-r--r-- 1 root root     4855 Nov 19 10:09 test.png
# 配合-l以人性化的方式显示文件大小
[root@bluecusliyou testdir]# ls -lh
total 39M
drwxr-xr-x 2 root root   50 Nov 18 17:18 testdir1
drwxr-xr-x 2 root root    6 Nov 18 17:11 testdir2
-rw-r--r-- 1 root root  39M Nov 19 10:11 test.exe
-rw-r--r-- 1 root root    0 Nov 18 17:11 testfile1
-rw-r--r-- 1 root root    0 Nov 18 17:11 testfile2
-rw-r--r-- 1 root root 4.8K Nov 19 10:09 test.png
# 以人性化的方式显示文件大小和隐藏文件
[root@bluecusliyou testdir]# ls -alh
total 39M
drwxr-xr-x  4 root root  104 Nov 19 10:11 .
drwxr-xr-x. 4 root root   37 Nov 18 17:09 ..
drwxr-xr-x  2 root root   50 Nov 18 17:18 testdir1
drwxr-xr-x  2 root root    6 Nov 18 17:11 testdir2
-rw-r--r--  1 root root  39M Nov 19 10:11 test.exe
-rw-r--r--  1 root root    0 Nov 18 17:11 testfile1
-rw-r--r--  1 root root    0 Nov 18 17:11 testfile2
-rw-r--r--  1 root root 4.8K Nov 19 10:09 test.png
# ll===ls -l
[root@bluecusliyou testdir]# ll
total 39820
drwxr-xr-x 2 root root       50 Nov 18 17:18 testdir1
drwxr-xr-x 2 root root        6 Nov 18 17:11 testdir2
-rw-r--r-- 1 root root 40764544 Nov 19 10:11 test.exe
-rw-r--r-- 1 root root        0 Nov 18 17:11 testfile1
-rw-r--r-- 1 root root        0 Nov 18 17:11 testfile2
-rw-r--r-- 1 root root     4855 Nov 19 10:09 test.png
# 通配符匹配
[root@bluecusliyou testdir]# ls -alh *dir*
testdir1:
total 0
drwxr-xr-x 2 root root  50 Nov 18 17:18 .
drwxr-xr-x 4 root root 104 Nov 19 10:11 ..
-rw-r--r-- 1 root root   0 Nov 18 17:18 testdir1_file1
-rw-r--r-- 1 root root   0 Nov 18 17:18 testdir1_file2

testdir2:
total 0
drwxr-xr-x 2 root root   6 Nov 18 17:11 .
drwxr-xr-x 4 root root 104 Nov 19 10:11 ..
(2)tree(树形式展示)
[root@bluecusliyou testdir]# tree
.
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
├── grepfile1.txt
├── grepfile2.txt
├── grepfile3.txt
├── grepfile4.txt
├── testdir1
│?? ├── testdir1_file1
│?? └── testdir1_file2
├── testdir2
├── test.exe
├── testfile1
├── testfile2
└── test.png

2 directories, 14 files
(3)cd (切换目录)
  • 绝对路径:完整路径
  • 相对路径:相对当前路径的路径
  • …:上级目录
  • .或者./:当前目录

常用参数:

-P如果切换的目标目录是一个符号链接,则直接切换到符号链接指向的目标目录
-L如果切换的目标目录是一个符号链接,则直接切换到符号链接名所在的目录
仅使用”-“选项时,当前目录将被切换到环境变量”OLDPWD”对应值的目录
~切换至当前用户目录[/home/用户目录]
切换至当前目录位置的上一级目录
[root@bluecusliyou /]# cd home/testdir     #相对路径
[root@bluecusliyou testdir]# cd /          #绝对路径根目录
[root@bluecusliyou /]# cd /home/testdir    #绝对路径
[root@bluecusliyou testdir]# cd ..         #上级路径
[root@bluecusliyou /]# cd ./               #当前路径
[root@bluecusliyou /]#
(4)pwd (显示当前目录)

常用参数:

[root@bluecusliyou bluecusliyou]# pwd
/home/bluecusliyou
(5)mkdir (创建新目录)

常用参数:

-p递归创建多级目录
-m建立目录的同时设置目录的权限
-z设置安全上下文
-v显示目录的创建过程
# 创建目录
[root@bluecusliyou home]# ls
[root@bluecusliyou home]# mkdir testdir
[root@bluecusliyou home]# ls
testdir
# 创建目录同时配置权限
[root@bluecusliyou home]# mkdir -m 711 testdir2
[root@bluecusliyou home]# ll
total 0
drwxr-xr-x 4 root root 240 Nov 19 13:06 testdir
drwxr-xr-x 2 root root   6 Nov 20 19:33 testdir2
# 递归创建目录
[root@bluecusliyou home]# mkdir testdir3/testdir/testdir
mkdir: cannot create directory ‘testdir3/testdir/testdir’: No such file or directory
[root@bluecusliyou home]# mkdir -p testdir3/testdir/testdir
[root@bluecusliyou home]# tree
.
├── testdir
│   ├── 1.txt
│   ├── 2.txt
│   ├── 3.txt
│   ├── 4.txt
│   ├── grepfile1.txt
│   ├── grepfile2.txt
│   ├── grepfile3.txt
│   ├── grepfile4.txt
│   ├── testdir1
│   │   ├── testdir1_file1
│   │   └── testdir1_file2
│   ├── testdir2
│   ├── test.exe
│   ├── testfile1
│   ├── testfile2
│   └── test.png
├── testdir2
└── testdir3
    └── testdir
        └── testdir

7 directories, 14 files
(6)rmdir (删除空的目录)

常用参数:

-p用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
– -- ignore-fail-on-non-empty忽略由于删除非空目录时导致命令出错而产生的错误信息
-v显示命令的详细执行过程
– -- help显示命令的帮助信息
– -- version显示命令的版本信息
# 删除目录
[root@bluecusliyou home]# ls
testdir testdir2 testdir3
[root@bluecusliyou home]# rmdir testdir2
[root@bluecusliyou home]# ls
testdir  testdir3
# 递归删除目录
[root@bluecusliyou home]# rmdir -p testdir3/testdir/testdir
[root@bluecusliyou home]# ls
testdir2
(7)cp (复制文件或目录)

常用参数:

-f若目标文件已存在,则会直接覆盖原文件
-i若目标文件已存在,则会询问是否覆盖
-p保留源文件或目录的所有属性
-r递归复制文件和目录
-d当复制符号连接时,把目标文件或目录也建立为符号连接,并指向原始文件或目录
-l对源文件建立硬连接,而非复制文件
-s对源文件建立符号连接,而非复制文件
-b覆盖已存在的文件目标前将目标文件备份
-v详细显示cp命令执行的操作过程
-a等价于“dpr”选项
[root@bluecusliyou home]# ls
testdir  testfile1
# cp 源文件  目标地址
[root@bluecusliyou home]# cp testfile1 testfile2
[root@bluecusliyou home]# ls
testdir  testfile1  testfile2
# 目标文件已存在会询问是否覆盖
[root@bluecusliyou home]# cp testfile1 testfile2
cp: overwrite 'testfile2'? y
[root@bluecusliyou home]# ls
testdir  testfile1  testfile2
(8)rm (移除文件或目录)

常用参数:

-f忽略不存在的文件,不会出现警告信息
-i删除前会询问用户是否操作
-r/R递归删除
-v显示指令的详细执行过程
rm -rf /  #删除根目录下所有文件,传说中的删库跑路  
[root@bluecusliyou home]# ls
testdir  testfile1  testfile2
[root@bluecusliyou home]# rm -rf testfile2
[root@bluecusliyou home]# ls
testdir  testfile1
(9)mv (移动文件与目录,或修改名称)

常用参数:

-i若存在同名文件,则向用户询问是否覆盖
-f覆盖已有文件时,不进行任何提示
-b当文件存在时,覆盖前为其创建一个备份
-u当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作
[root@bluecusliyou home]# ls
testdir  testfile1
# 移动文件
[root@bluecusliyou home]# mv testfile1 testfile2
[root@bluecusliyou home]# ls
testdir  testfile2
# 移动文件夹
[root@bluecusliyou home]# mv testdir testdir2
[root@bluecusliyou home]# ls
testdir2  testfile2
(10)touch(创建文件)

常用参数:

-a改变档案的读取时间记录
-m改变档案的修改时间记录
-r使用参考档的时间记录,与 --file 的效果一样
-c不创建新文件
-d设定时间与日期,可以使用各种不同的格式
-t设定档案的时间记录,格式与 date 命令相同
–no-create不创建新文件
–help显示帮助信息
–version列出版本讯息
[root@bluecusliyou home]# ls
testdir2  testfile2
[root@bluecusliyou home]# touch testfile1
[root@bluecusliyou home]# ls
testdir2  testfile1  testfile2
(11)echo(输出字符串或提取变量值)

常用参数:

-n不输出结尾的换行符
-e “a”发出警告音
-e “b”删除前面的一个字符
-e “c”结尾不加换行符
-e “f”换行,光标扔停留在原来的坐标位置
-e “n”换行,光标移至行首
-e “r”光标移至行首,但不换行
-E禁止反斜杠转移,与-e参数功能相反
—version查看版本信息
–help查看帮助信息
[root@bluecusliyou home]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/.dotnet/tools:/root/bin
[root@bluecusliyou home]# echo '111'
111
(12)ln(为文件创建链接)

ln命令是linux系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 一种是hard link,又称为硬链接;另一种是symbolic link,又称为符号链接。

通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。符号链接可以理解为类似windows一样的快捷方式。

符号链接 :

  • 以路径的形式存在,类似于Windows操作系统中的快捷方式。
  • 可以跨文件系统 ,硬链接不可以。
  • 可以对一个不存在的文件名进行链接,硬链接不可以。
  • 可以对目录进行链接,硬链接不可以。

硬链接:

  • 以文件副本的形式存在,但不占用实际空间。
  • 不允许给目录创建硬链接。
  • 只有在同一个文件系统中才能创建。

常用参数:

-b为每个已存在的目标文件创建备份文件
-d此选项允许“root”用户建立目录的硬链接
-f强制创建链接,即使目标文件已经存在
-n把指向目录的符号链接视为一个普通文件
-i交互模式,若目标文件已经存在,则提示用户确认进行覆盖
-s对源文件建立符号链接,而非硬链接
-v详细信息模式,输出指令的详细执行过程
# 创建文件,写入内容
[root@bluecusliyou home]# echo 'i have an apple'>>testfile
[root@bluecusliyou home]# cat testfile
i have an apple
# 创建文件的硬连接
[root@bluecusliyou home]# ln testfile testfile_ln
[root@bluecusliyou home]# cat testfile_ln
i have an apple
# 创建文件的软连接
[root@bluecusliyou home]# ln -s testfile testfile_lns
[root@bluecusliyou home]# cat testfile_lns
i have an apple
# 删除文件
[root@bluecusliyou home]# rm -f testfile
# 连接文件都还在
[root@bluecusliyou home]# ls
testfile_ln  testfile_lns
# 硬链接还可以访问,查看内容
[root@bluecusliyou home]# cat testfile_ln
i have an apple
# 软连接访问报错
[root@bluecusliyou home]# cat testfile_lns
cat: testfile_lns: No such file or directory
3、文件内容查看 (1)cat(显示或合并文件内容)

常用参数:

-n显示行数(空行也编号)
-s显示行数(多个空行算一个编号)
-b显示行数(空行不编号)
-E每行结束处显示$符号
-T将TAB字符显示为 ^I符号
-v使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e等价于”-vE”组合
-t等价于”-vT”组合
-A等价于 -vET组合
–help显示帮助信息
–version显示版本信息
[root@bluecusliyou testdir]# cat 3.txt
123
456
[root@bluecusliyou testdir]# cat 4.txt
123
456
# >覆盖
[root@bluecusliyou testdir]# cat 1.txt 2.txt>3.txt
# >>追加
[root@bluecusliyou testdir]# cat 1.txt 2.txt>>4.txt
[root@bluecusliyou testdir]# cat 3.txt
123
456
[root@bluecusliyou testdir]# cat 4.txt
123
456
123
456
(2)tac(从下往上显示文件内容)

常用参数:

-b在行前而非行尾添加分隔标志
-r将分隔标志视作正则表达式来解析
-s使用指定字符串代替换行作为分隔标志
–version显示版本信息并退出
–help显示此帮助信息并退出
[root@bluecusliyou home]# tac testfile2
10
9
8
7
6
5
4
3
2
1
(3)nl(显示的时候,输出行号)

常用参数:

-b指定行号指定的方式
-n列出行号表示的方式
-w行号栏位的占用的位数
-p在逻辑定界符处不重新开始计算。
[root@bluecusliyou home]# nl testfile2
     1	1
     2	2
     3	3
     4	4
     5	5
     6	6
     7	7
     8	8
     9	9
    10	10
(4)more(翻页显示文件内容)

命令内部操作:

  • Space键:显示文本的下一屏内容
  • Enter键:向下n行,需要定义,默认为1行
  • 斜线符:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
  • H键:显示帮助屏
  • B键:显示上一屏内容
  • Q键:退出more命令
  • Ctrl+F、空格键:向下滚动一屏
  • Ctrl+B:返回上一屏
  • =: 输出当前的行号
  • :f:输出文件名和当前的行号
  • V:调用vi编辑器
  • !:调用Shell,并执行命令

常用参数:

-num指定每屏显示的行数
-lmore在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性
-f计算实际的行数,而非自动换行的行数
-p先清除屏幕再显示文本文件的剩余内容
-c与-p相似,不滚屏,先显示内容再清除旧内容
-s多个空行压缩成一行显示
-u禁止下划线
+/pattern在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示
+num从第 num 行开始显示
[root@bluecusliyou home]# more testfile 
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
--More--(49%)
(5)less(可以往前翻页)

less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向前浏览

命令内部操作:

  • b 向后翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行

常用参数:

-b置缓冲区的大小
-e当文件显示结束后,自动离开
-f强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g只标志最后搜索的关键词
-i忽略搜索时的大小写
-m显示类似more命令的百分比
-N显示每行的行号
-o将less 输出的内容在指定文件中保存起来
-Q不使用警告音
-s显示连续空行为一行
-S在单行显示较长的内容,而不换行显示
-x将TAB字符显示为指定个数的空格字符
[root@bluecusliyou home]# less testfile 
1
2
3
4
5
6
7
8
9
10
(END)
(6)head(只看头几行)

常用参数:

-n后面接数字,代表显示几行的意思
-c指定显示头部内容的字符数
-v总是显示文件名的头信息
-q不显示文件名的头信息
[root@bluecusliyou home]# head -3 testfile 
1
2
3
(7)tail(只看尾巴几行)

常用参数:

–retry即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用
-c或——bytes=输出文件尾部的N(N为整数)个字节内容
-f–follow:显示文件最新追加的内容
-F与选项“-follow=name”和“–retry”连用时功能相同
-n或——line=输出文件的尾部N(N位数字)行内容
–pid=<进程号>与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令
–help显示指令的帮助信息
–version显示指令的版本信息
[root@bluecusliyou home]# tail -3 testfile 
8
9
10
(8)wc(统计文件的字节数、字数、行数)

常用参数:

-w统计字数,或–words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
-c统计字节数,或–bytes或–chars:只显示Bytes数
-l统计行数,或–lines:只显示列数
-m统计字符数
-L打印最长行的长度
–help显示帮助信息
–version显示版本信息
[root@bluecusliyou home]# wc testfile_ln
 1  4 16 testfile_ln
4、文件文本查找 (1)grep(文本搜索)

grep命令的选项十分灵活,可以是变量、字符串、正则表达式。

常用参数:

-i搜索时,忽略大小写
-c只输出匹配行的数量
-l只列出符合匹配的文件名,不列出具体的匹配行
-n列出所有的匹配行,显示行号
-h查询多文件时不显示文件名
-s不显示不存在、没有匹配文本的错误信息
-v显示不包含匹配文本的所有行
-w匹配整词
-x匹配整行
-r递归搜索
-q禁止输出任何结果,已退出状态表示搜索是否成功
-b打印匹配行距文件头部的偏移量,以字节为单位
-o与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位
# 创建文件内容
[root@bluecusliyou testdir]# echo 'abcefg'>grepfile1.txt
[root@bluecusliyou testdir]# echo 'abc'>grepfile2.txt
[root@bluecusliyou testdir]# echo 'efg'>grepfile3.txt
[root@bluecusliyou testdir]# echo 'abchahahaha'>grepfile4.txt
# 输出匹配字符串内容
[root@bluecusliyou testdir]# grep abc grepfile*
grepfile1.txt:abcefg
grepfile2.txt:abc
grepfile4.txt:abchahahaha
# 输出匹配字符串行数
[root@bluecusliyou testdir]# grep -c abc grepfile*
grepfile1.txt:1
grepfile2.txt:1
grepfile3.txt:0
grepfile4.txt:1
# 输出匹配字符串行号+内容
[root@bluecusliyou testdir]# grep -n abc grepfile*
grepfile1.txt:1:abcefg
grepfile2.txt:1:abc
grepfile4.txt:1:abchahahaha
# 只输出匹配字符串内容
[root@bluecusliyou testdir]# grep -h abc grepfile*
abcefg
abc
abchahahaha
# 只输出匹配文件名
[root@bluecusliyou testdir]# grep -l abc grepfile*
grepfile1.txt
grepfile2.txt
grepfile4.txt

正则匹配:

^a匹配以a开头
a$匹配以a结尾
[abc]匹配abc中的一个
..匹配一个字符
[root@bluecusliyou home]# cat testfile1
abc
def
aaa
bbb
ccc
ddd
eee
fff
txt
tnt
tpt
[root@bluecusliyou home]# grep '^a' testfile1
abc
aaa
[root@bluecusliyou home]# grep 'a$' testfile1
aaa
[root@bluecusliyou home]# grep 't[xn]t' testfile1
txt
tnt
[root@bluecusliyou home]# grep 't.t' testfile1
txt
tnt
tpt
(2)find(查找文件)

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用参数:

-name按名称查找
-size按大小查找
-user按属主查找
-type按类型查找
-iname忽略大小写
find -size +1k size -2k大于1k小于2k
find -perm 0777权限为777的文件
# 查找名字test开头文件
[root@bluecusliyou home]# find ./ -name "test*"
./testfile2
./testdir2
./testdir2/testfile1
./testdir2/testfile2
./testdir2/testdir1
./testdir2/testdir1/testdir1_file1
./testdir2/testdir1/testdir1_file2
./testdir2/testdir2
./testdir2/test.png
./testdir2/test.exe
./testfile1
# 查找大小超过1K文件
[root@bluecusliyou home]# find ./ -size +1k
./testdir2/test.png
./testdir2/test.exe
5、压缩和解压 (1)tar

它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。

常用参数:

-z通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
-c建立新的备份文件
-v显示指令执行过程
-f<备份文件>指定备份文件
-d记录文件的差别
-t列出备份文件的内容
-x从归档文件中提取文件
–remove-files打包之后删除文件
# 将所有文件打包成 all.tar  多个文件的时候用空格隔开
[root@bluecusliyou home]# tar -cf all.tar *
[root@bluecusliyou home]# ls
all.tar  testdir2  testfile1  testfile2
# 打包文件后删除原文件
[root@bluecusliyou home]# tar -cvf new.tar all.tar --remove-files
all.tar
[root@bluecusliyou home]# ls
new.tar  testdir2  testfile1  testfile2
# 打包文件以后,以 gzip 压缩
[root@bluecusliyou home]# tar -zcvf newgz.tar.gz new.tar 
new.tar
[root@bluecusliyou home]# ls
newgz.tar.gz  new.tar  testdir2  testfile1  testfile2
# 解包
[root@bluecusliyou home]# tar -xvf new.tar
all.tar
[root@bluecusliyou home]# ls
all.tar  newgz.tar.gz  new.tar  testdir2  testfile1  testfile2
(2)zip

常用参数:

-q不显示指令执行过程
-r递归处理,将指定目录下的所有文件和子目录一并处理
-z替压缩文件加上注释
-v显示指令执行过程或显示版本信息
-n<字尾字符串>不压缩具有特定字尾字符串的文件
[root@bluecusliyou home]# ls
all.tar  testdir2  testfile1  testfile2
# 压缩文件
[root@bluecusliyou home]# zip test.zip testfile1 testfile2
  adding: testfile1 (deflated 9%)
  adding: testfile2 (stored 0%)
[root@bluecusliyou home]# ls
all.tar  testdir2  testfile1  testfile2  test.zip
# 解压文件
[root@bluecusliyou home]# unzip ./ test.zip
Archive:  test.zip
replace testfile1? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
  inflating: testfile1               
replace testfile2? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
 extracting: testfile2               
[root@bluecusliyou home]# ls
all.tar  testdir2  testfile1  testfile2  test.zip
(3)gzip

tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz

常用参数:

-a使用ASCII文字模式
-d解开压缩文件
-f强行压缩文件
-l列出压缩文件的相关信息
-c把压缩后的文件输出到标准输出设备,不去更动原始文件
-r递归处理,将指定目录下的所有文件及子目录一并处理
-q不显示警告信息
[root@bluecusliyou home]# ls
all.tar  testdir2  testfile1  testfile2
# 压缩完删除源文件
[root@bluecusliyou home]# gzip all.tar
[root@bluecusliyou home]# ls
all.tar.gz  testdir2  testfile1  testfile2
# 解压完删除源文件
[root@bluecusliyou home]# gzip -d all.tar.gz
[root@bluecusliyou home]# ls
all.tar  testdir2  testfile1  testfile2
(4)bzip2

tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。

tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz2。

在tar命令中增加一个选项(-j) 可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

压缩用法:【tar -jcvf 压缩包包名 文件…(tar jcvf bk.tar.bz2 *.c)】 v可以省略

解压用法:【tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)】 v可以省略

五、VIM编辑器 1、VIM简介

vi 是老式的文字处理器,所有的 Unix Like 系统都会内建 vi 文本编辑器,功能已经很齐全了,但是还是有可以进步的地方。

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。尤其是Linux中,必须要会使用Vim(查看内容,编辑内容,保存内容!)

2、VIM键盘图

3、三种命令模式 (1)命令模式

可以进行行删除、复制等命令的输入,相当于快键键。 默认进入的就是命令模式。

(2)输入模式

可以进行文本的输入。

(3)底线命令模式

是执行保存、退出等指令用。

vim filename

4、命令模式说明 (1)命令模式

光标移动

  • h:左移;
  • j:下移;
  • k:上移;
  • l:右移;
  • M:移到中间行;
  • L:移到屏幕最后一行行首;
  • G:移动到指定行 行号-G
  • W:向后移动一个字;
  • Ctrl+d:向下翻半屏;
  • Ctrl+u:向上翻半屏;
  • ctrl+b:向上翻一屏;b→backward;
  • ctrl+f:向下翻一屏; f→forward;
  • gg:光标移动到文件开头;
  • shift+^:移到行首;
  • shift +$:移到行尾;

删除

  • x :删除光标前一个字符;
  • X:删除光标后一个字符;
  • dd:剪切当前行;
  • dw:删除一个单词;
  • dl:删除一个字母;
  • dd:删除一行;
  • d5d:删除5行;

复制

  • yw:复制一个单词;
  • yl:复制一个字母;
  • yy:复制一行;
  • y5y:复制5行;

撤销,恢复

  • u:撤销上一次的操作;
  • ctrl+r:反撤销,撤销的命令重做;

剪切

  • cw:剪切一个单词;
  • cl:剪切一个字母;
  • cc:剪切一行;
  • c5c:剪切5行;

粘贴

  • p:粘贴;
(2)插入模式
  • i :光标所在位置插入;
  • I: 光标所在位置行首插入;
  • o: 光标所在位置下方新开一行插入;
  • O: 光标所在位置上方新开一行插入;
  • a: 光标所在位置下一个字符的位置插入;a→append(附加);
  • A: 光标所在位置行行尾插入;
(3)底线命令模式
  • w:写入文件
  • w:文件名 另存文件
  • q:退出
  • q!:不保存退出
  • !cmd:执行命令
  • /:查找命令
  • s/old/new/:替换命令
  • set nu:设置命令
六、权限管理
  • Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

  • 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

  • 每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

  • 你一般在公司中,用的应该都不是 root 账户!

1、用户管理 (1)whoami(查看当前账号)
[root@bluecusliyou ~]# whoami
root
(2)who(打印当前登录用户)

常用参数:

-a打印全面信息
-b打印系统最近启动时间
-d打印死掉的进程
-l打印系统登录进程
-H带有列标题打印用户名,登录终端和登录时间
-t打印系统上次锁定时间
-u打印已登录用户列表
# 查看当前账号
[root@bluecusliyou ~]# who
root     pts/0        2021-11-23 09:29 (112.87.128.140)
# 带有列标题打印
[root@bluecusliyou ~]# who -H
NAME     LINE         TIME             COMMENT
root     pts/0        2021-11-23 09:29 (112.87.128.140)
# 打印全部信息
[root@bluecusliyou ~]# who -H -a
NAME       LINE         TIME             IDLE          PID COMMENT  EXIT
           system boot  2021-11-03 23:58
           run-level 3  2021-11-03 15:58
LOGIN      ttyS0        2021-11-03 15:58              1024 id=tyS0
LOGIN      tty1         2021-11-03 15:58              1023 id=tty1
root     + pts/0        2021-11-23 09:29   .        204944 (112.87.128.140)
# 打印系统最近启动时间
[root@bluecusliyou ~]# who -b
         system boot  2021-11-03 23:58
# 打印系统登录进程
[root@bluecusliyou ~]# who -l
LOGIN    ttyS0        2021-11-03 15:58              1024 id=tyS0
LOGIN    tty1         2021-11-03 15:58              1023 id=tty1
(3)exit(退出登录账户)
  • 如果是图形界面,退出当前终端;
  • 如果是使用ssh远程登录,退出登陆账户;
  • 如果是切换后的登陆用户,退出则返回上一个登陆账号。
  • ctrl+d等价于exit。
(4)useradd(添加用户)
  • Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
  • 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录(或者自动默认创建);
  • 用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;
  • 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。

常用参数:

-D改变新建用户的预设值
-c添加备注文字
-d新用户每次登陆时所使用的家目录
-e用户终止日期,日期的格式为YYYY-MM-DD
-f用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
-g指定用户对应的用户组
-G定义此用户为多个不同组的成员
-m用户目录不存在时则自动创建
-M不建立用户家目录,优先于/etc/login.defs文件设定
-n取消建立以用户名称为名的群组
-r建立系统帐号
-u指定用户id
# 创建用户名,并且创建与用户名相同的目录和用户组
[root@bluecusliyou ~]# useradd -m liyou1
[root@bluecusliyou home]# ls
liyou1
# 指定用户目录
[root@bluecusliyou home]# useradd -d /home/liyouxx -m liyou2
[root@bluecusliyou home]# ls
liyou1  liyouxx
# 指定用户组
[root@bluecusliyou home]# useradd -g ftp liyou3
[root@bluecusliyou home]# ls
liyou1  liyouxx  liyou3
# 指定用户密码
[root@bluecusliyou home]# useradd -p 123456 liyou4
[root@bluecusliyou home]# cat /etc/shadow
...
liyou1:!!:18954:0:99999:7:::
liyou2:!!:18954:0:99999:7:::
liyou3:!!:18954:0:99999:7:::
liyou4:123456:18954:0:99999:7:::
(5)passwd(设置用户密码)

常用参数:

-d删除密码
-l锁定用户密码,无法被用户自行修改
-u解开已锁定用户密码,允许用户自行修改
-e密码立即过期,下次登陆强制修改密码
-k保留即将过期的用户在期满后能仍能使用
-S查询密码状态
# 设定当前用户密码
[root@bluecusliyou home]# passwd
# 设置用户密码 两次确认
[root@bluecusliyou home]# passwd liyou1
Changing password for user liyou1.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
# 锁定密码不允许用户修改
[root@bluecusliyou home]# passwd -l liyou1
Locking password for user liyou1.
passwd: Success
# 解除锁定密码,允许用户修改
[root@bluecusliyou home]# passwd -u liyou1
Unlocking password for user liyou1.
passwd: Success
# 下次登陆强制改密码
[root@bluecusliyou home]# passwd -e liyou1
Expiring password for user liyou1.
passwd: Success
# 移出用户密码
[root@bluecusliyou home]# passwd -d liyou1
Removing password for user liyou1.
passwd: Success
# 查看密码状态
[root@bluecusliyou home]# passwd -S liyou1
liyou1 NP 2021-11-23 0 99999 7 -1 (Empty password.)
(6)userdel(删除用户)

常用参数:

-f强制删除用户账号
-r删除用户主目录及其中的任何文件
-h显示命令的帮助信息
#删除用户,但不删除其家目录及文件
[root@bluecusliyou home]# userdel liyou2
# 删除用户,并将其家目录及文件一并删除
[root@bluecusliyou home]# userdel -r liyou3
# 强制删除用户
[root@bluecusliyou home]# userdel -f liyou1
userdel: user liyou1 is currently used by process 208027
(7)sudo(用超级用户的权限执行命令)
  • 基于安全考虑,一般不建议使用超级用户权限登录 linux;而是平时使用低权限用户访问,需要高权限的操作再用 sudo 后跟着指令。比如在/下无法创建文件夹,但是 sudo mkdir mydir就可以,当然需要输入密码。su 就是“super user”的简写,sudo 就是“用超级用户权限执行命令”
(8)su(切换用户)
  • su命令用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序。

  • 普通用户切换到root用户,可以使用su – 或su root,但是必须输入root密码才能完成切换。root用户切换到普通用户,可以使用su username,不需要输入任何密码即可完成切换。

  • 为新用户添加sudo权限

    直接使用 vi 或者 vim 命名“vi /etc/sudoers”进入编辑模式(visudo命令),在“root ALL=(ALL) ALL”这一行下面添加一行“liyou ALL=(ALL) ALL”,然后保存退出即可。(注明:liyou 为你的用户名)

常用参数:

-c或–command执行完指定的指令后,即恢复原来的身份
-f或–fast适用于csh与tsch,使shell不用去读取启动文件
-l或–login改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量
-m,-p或–preserve-environment变更身份时,不要变更环境变量
-s或–shell指定要执行的shell
–help显示帮助信息
–version显示版本信息
# 切换用户
[root@bluecusliyou home]# su root
# 切换用户和工作目录
[root@bluecusliyou home]# su - root
Last login: Tue Nov 23 16:10:52 CST 2021 on pts/0
[root@bluecusliyou ~]#
(9)usermod(修改用户账号)

常用参数:

-c<备注>修改用户账号的备注文字
-d<登入目录>修改用户登入时的目录
-e<有效期限>修改账号的有效期限
-f<缓冲天数>修改在密码过期后多少天即关闭该账号
-g<群组>修改用户所属的群组
-G<群组>修改用户所属的附加群组
-l<账号名称>修改用户账号名称
-L锁定用户密码,使密码无效
-s修改用户登入后所使用的shell
-u修改用户ID
-U解除密码锁定
# 更改登陆目录
[root@bluecusliyou home]# usermod -d /home/liyouxx liyou4
#改变用户的uid
[root@bluecusliyou home]# usermod -u 777 liyou4
# 修改用户名liyou4为liyou
[root@bluecusliyou home]# usermod -l liyou liyou4
# 锁定密码
[root@bluecusliyou home]# usermod -L liyou
# 解锁密码
[root@bluecusliyou home]# usermod -U liyou
2、用户组管理 (1)groupadd(添加组)

常用参数:

-g指定新建工作组的id
-r创建系统工作组,系统工作组的组ID小于500
-K覆盖配置文件“/ect/login.defs”
-o允许添加组ID号不唯一的工作组
# 创建用户组
[root@bluecusliyou ~]# groupadd usergrouptest1
# 创建用户组,指定工作组id
[root@bluecusliyou ~]# groupadd -g 8563 usergrouptest2
# 使用-r创建系统工作组
[root@bluecusliyou ~]# groupadd -r usergrouptest3
(2)groupdel(删除用户组)
  • 给出的组名必须存在。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

常用参数:

-h显示帮助信息
-R在chroot_dir目录中应用更改并使用chroot_dir目录中的配置文件
[root@bluecusliyou ~]# groupdel usergrouptest1
(3)gpasswd(设置用户的用户组)

常用参数:

-a添加用户到组
-d从组删除用户
-A指定管理员
-M指定组成员和-A的用途差不多
-r删除密码
-R限制用户登入组,只有组中的成员才可以用newgrp加入该组
# 添加用户到组
[root@bluecusliyou home]# gpasswd -a liyou usergrouptest2
Adding user liyou to group usergrouptest2
# 移除用户出组
[root@bluecusliyou home]# gpasswd -d liyou usergrouptest2
Removing user liyou from group usergrouptest2
(4)groupmod(更改用户组)

常用参数:

-g设置欲使用的群组识别码
-o重复使用群组识别码
-n设置欲使用的群组名称
# 更改组ID
[root@bluecusliyou home]# groupmod -g 222 usergrouptest2
# 更改组名
[root@bluecusliyou home]# groupmod -n usergrouptestxx usergrouptest2
3、查看用户信息
# 查看用户信息
[root@bluecusliyou ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
...
# 查看用户密码  密码是加密的,没有密码就是!!
[root@bluecusliyou ~]#cat /etc/shadow
...
liyou1:!!:18954:0:99999:7:::
liyou2:!!:18954:0:99999:7:::
liyou3:!!:18954:0:99999:7:::
liyou4:123456:18954:0:99999:7:::
# 查看所有用户组
[root@bluecusliyou home]# cat /etc/group
...
liyou1:x:1000:
liyou2:x:1001:
liyou4:x:1003: 
4、文件权限
  • Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

  • 为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

(1)文件基本属性查看

在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:

[root@bluecusliyou /]# ls -l
total 24
dr-xr-xr-x.   5 root root 4096 Nov 20  2020 boot
drwxr-xr-x   19 root root 2960 Jul 14 14:27 dev
drwxr-xr-x.  94 root root 8192 Jul 14 14:24 etc
drwxr-xr-x.   2 root root    6 May 11  2019 home
lrwxrwxrwx.   1 root root    7 May 11  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 May 11  2019 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 May 11  2019 media
drwxr-xr-x.   2 root root    6 May 11  2019 mnt
drwxr-xr-x.   2 root root    6 May 11  2019 opt
dr-xr-xr-x  102 root root    0 Jul 14 14:24 proc
dr-xr-x---.   5 root root  174 Jul 13 15:59 root
drwxr-xr-x   30 root root  880 Jul 14 14:24 run
lrwxrwxrwx.   1 root root    8 May 11  2019 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 May 11  2019 srv
dr-xr-xr-x   13 root root    0 Jul 14  2021 sys
drwxrwxrwt.   9 root root 4096 Jul 14 15:04 tmp
drwxr-xr-x.  12 root root  144 Nov 20  2020 usr
drwxr-xr-x.  21 root root 4096 Nov 20  2020 var
lrwxrwxrwx.   1 root root    7 May 11  2019 bin -> usr/bin
(2)文件基本属性说明

每个文件的属性由左边第一部分的 10 个字符来确定。

在 Linux 中第一个字符代表这个文件类型。

  • 当为 d 则是目录;
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

  • 第1-3位确定属主(该文件的所有者)拥有该文件的权限。
  • 第4-6位确定属组(所有者的同组用户)拥有该文件的权限。
  • 第7-9位确定其他用户拥有该文件的权限。
  • 对于 root 用户来说,一般情况下,文件的权限对其不起作用。

文件和目录权限格式相容,功能不同

  • 文件:r代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。
  • 目录:rx(进入目录读取文件名),xw(修改目录内文件名),x(进入目录)。
(3)chmod(改变文件或目录权限)
  • Linux文件属性有两种设置方法,一种是数字,一种是符号。
  • Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

数字类型改变文件权限

文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的数值对照表如下:

  • r:4
  • w:2
  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= — = 0+0+0 = 0

符号类型改变文件权限

权限的所有者

uuser:用户
ggroup:组
oothers:其他
aall表示三者都是

修改权限所用的符号

+增加权限
-减少权限
=设定权限

常用参数:

-c若该文件权限确实已经更改,才显示其更改动作
-f若该文件权限无法被更改也不显示错误讯息
-v显示权限变更的详细资料
-R对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
[root@bluecusliyou home]# ll
total 4
drwx------ 2 1003 liyou4           62 Nov 23 14:48 liyou4
-rw-r--r-- 1 root usergrouptest3    0 Nov 23 22:37 testfile1
-rw-r--r-- 1 root usergrouptest3 1333 Nov 23 19:40 test.log
# 数字类型改变文件权限
[root@bluecusliyou home]# chmod 777 liyou4
[root@bluecusliyou home]# ll
total 4
drwxrwxrwx 2 1003 liyou4           62 Nov 23 14:48 liyou4
-rw-r--r-- 1 root usergrouptest3    0 Nov 23 22:37 testfile1
-rw-r--r-- 1 root usergrouptest3 1333 Nov 23 19:40 test.log
# 数字类型改变文件权限
[root@bluecusliyou home]# chmod 761 testfile1
[root@bluecusliyou home]# ll
total 4
drwxrwxrwx 2 1003 liyou4           62 Nov 23 14:48 liyou4
-rwxrw---x 1 root usergrouptest3    0 Nov 23 22:37 testfile1
-rw-r--r-- 1 root usergrouptest3 1333 Nov 23 19:40 test.log
# 符号类型改变文件权限
[root@bluecusliyou home]# chmod u=r,g+w,o-r test.log
[root@bluecusliyou home]# ll
total 4
drwxrwxrwx 2 1003 liyou4           62 Nov 23 14:48 liyou4
-rwxrw---x 1 root usergrouptest3    0 Nov 23 22:37 testfile1
-r--rw---- 1 root usergrouptest3 1333 Nov 23 19:40 test.log
(4)chown(改变文件或目录用户和用户组)

常用参数:

-R对目前目录下的所有文件与子目录进行相同的拥有者变更
-c若该文件拥有者确实已经更改,才显示其更改动作
-f若该文件拥有者无法被更改也不要显示错误讯息
-h只对于连结(link)进行变更,而非该 link 真正指向的文件
-v显示拥有者变更的详细资料
–help显示辅助说明
–version显示版本
[root@bluecusliyou home]# ll
total 4
drwxrwxrwx 2 1003 liyou4           62 Nov 23 14:48 liyou4
-rwxrw---x 1 root usergrouptest3    0 Nov 23 22:37 testfile1
-r--rw---- 1 root usergrouptest3 1333 Nov 23 19:40 test.log
# 修改所有者
[root@bluecusliyou home]# chown liyou test.log
[root@bluecusliyou home]# ll
total 4
drwxrwxrwx 2  1003 liyou4           62 Nov 23 14:48 liyou4
-rwxrw---x 1 root  usergrouptest3    0 Nov 23 22:37 testfile1
-r--rw---- 1 liyou usergrouptest3 1333 Nov 23 19:40 test.log
# 修改所有者和用户组
[root@bluecusliyou home]# chown root:liyou4 test.log
[root@bluecusliyou home]# ll
total 4
drwxrwxrwx 2 1003 liyou4           62 Nov 23 14:48 liyou4
-rwxrw---x 1 root usergrouptest3    0 Nov 23 22:37 testfile1
-r--rw---- 1 root liyou4         1333 Nov 23 19:40 test.log
(5)chgrp(更改文件用户组)

常用参数:

-c效果类似”-v”参数,但仅回报更改的部分
-f不显示错误信息
-h对符号连接的文件作修改,而不更动其他任何相关文件
-R递归处理,将指定目录下的所有文件及子目录一并处理
-v显示指令执行过程
–reference把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
[root@bluecusliyou home]# ll
total 4
drwxrwxrwx 2 1003 liyou4           62 Nov 23 14:48 liyou4
-rwxrw---x 1 root usergrouptest3    0 Nov 23 22:37 testfile1
-r--rw---- 1 root liyou4         1333 Nov 23 19:40 test.log
# 修改用户组
[root@bluecusliyou home]# chgrp liyou4 testfile1
[root@bluecusliyou home]# ll
total 4
drwxrwxrwx 2 1003 liyou4   62 Nov 23 14:48 liyou4
-rwxrw---x 1 root liyou4    0 Nov 23 22:37 testfile1
-r--rw---- 1 root liyou4 1333 Nov 23 19:40 test.log
七、系统管理 1、磁盘管理 (1)df(显示磁盘空间使用情况)

常用参数:

-a显示所有系统文件
-B <块大小>指定显示时的块大小
-h以容易阅读的方式显示
-H以1000字节为换算单位来显示
-i显示索引字节信息
-k指定块大小为1KB
-l只显示本地文件系统
-t <文件系统类型>只显示指定类型的文件系统
-T输出时显示文件系统类型
– -sync在取得磁盘使用信息前,先执行sync命令
# 显示磁盘分区使用情况
[root@bluecusliyou home]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs         1823120       0   1823120   0% /dev
tmpfs            1838600       0   1838600   0% /dev/shm
tmpfs            1838600     672   1837928   1% /run
tmpfs            1838600       0   1838600   0% /sys/fs/cgroup
/dev/vda1       41931756 9725920  32205836  24% /
overlay         41931756 9725920  32205836  24% /var/lib/docker/overlay2/9f51bd9261e59dfee0d46bf819ab138f1e7d987d6273827c8dc930f493b69ae2/merged
overlay         41931756 9725920  32205836  24% /var/lib/docker/overlay2/a82ac32c675e55780142d55438e2df39895876f236a238c9488fa5ea58ccfc2a/merged
overlay         41931756 9725920  32205836  24% /var/lib/docker/overlay2/cc7094dd7f485ea8215be462c88ae3af286e2974576b1cc660886a44610081bd/merged
tmpfs             367720       0    367720   0% /run/user/0
# 以容易阅读的方式显示磁盘分区使用情况
[root@bluecusliyou home]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs           1.8G  672K  1.8G   1% /run
tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup
/dev/vda1        40G  9.3G   31G  24% /
overlay          40G  9.3G   31G  24% /var/lib/docker/overlay2/9f51bd9261e59dfee0d46bf819ab138f1e7d987d6273827c8dc930f493b69ae2/merged
overlay          40G  9.3G   31G  24% /var/lib/docker/overlay2/a82ac32c675e55780142d55438e2df39895876f236a238c9488fa5ea58ccfc2a/merged
overlay          40G  9.3G   31G  24% /var/lib/docker/overlay2/cc7094dd7f485ea8215be462c88ae3af286e2974576b1cc660886a44610081bd/merged
tmpfs           360M     0  360M   0% /run/user/0
# 显示指定文件所在分区的磁盘使用情况
[root@bluecusliyou home]# df /etc/dhcp
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       41931756 9725920  32205836  24% /
# 显示文件类型为ext4的磁盘使用情况
[root@bluecusliyou home]# df -t ext4
df: no file systems processed
(2)du(查看空间)

常用参数:

-a显示目录中所有文件大小
-k以KB为单位显示文件大小
-m以MB为单位显示文件大小
-g以GB为单位显示文件大小
-h以易读方式显示文件大小
-s仅显示总计
# 显示文件夹大小
[root@bluecusliyou home]# du /home
12	/home/liyou4
12	/home
# 以易读方式显示文件夹内及子文件夹大小
[root@bluecusliyou home]# du -h /home
12K	/home/liyou4
12K	/home
# 以易读方式显示文件夹内所有文件大小
[root@bluecusliyou home]# du -ah /home
4.0K	/home/liyou4/.bash_logout
4.0K	/home/liyou4/.bash_profile
4.0K	/home/liyou4/.bashrc
12K	/home/liyou4
12K	/home
# 显示文件大小
[root@bluecusliyou home]# du test.log
4	test.log
(3)fdisk(磁盘分区)

常用参数:

-b指定每个分区的大小
-l列出指定的外围设备的分区表状况
-s将指定的分区大小输出到标准输出上,单位为区块
-u搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
-v显示版本信息
# 查看所有分区情况
[root@bluecusliyou home]# fdisk -l
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x319ba3a3

Device     Boot Start      End  Sectors Size Id Type
/dev/vda1  *     2048 83886046 83883999  40G 83 Linux
(4)mkfs(在特定分区上建立文件系统)

常用参数:

device预备检查的硬盘分区,例如:/dev/sda1
-V详细显示模式
-t给定档案系统的型式,Linux 的预设值为 ext2
-c在制做档案系统前,检查该partition 是否有坏轨
-l bad_blocks_file将有坏轨的block资料加到 bad_blocks_file 里面
block给定 block 的大小
(5)mount(文件系统挂载)

常用参数:

-t指定挂载类型
-l显示已加载的文件系统列表
-h显示帮助信息并退出
-V显示程序版本
-n加载没有写入文件“/etc/mtab”中的文件系统
-r将文件系统加载为只读模式
-a加载文件“/etc/fstab”中描述的所有文件系统
umount -f [挂载位置] 强制卸载
2、进程管理 (1)基本概念
  • 在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号!
  • 每一个进程呢,都会有一个父进程!
  • 进程可以有两种存在方式:前台!后台运行!
  • 服务都是后台运行的,基本的程序都是前台运行的!
(2)ps(显示进程状态)
  • ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
  • ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。

常用参数:

a显示现行终端机下的所有程序,包括其他用户的程序
u以用户为主的格式来显示程序状况
x显示所有程序,不以终端机来区分
#显示所有当前进程
ps -ef 
#显示所有当前进程
ps aux 
#显示所有当前进程
ps -ax 
#根据用户过滤进程
ps -u pungki 
#根据 CPU 使用来升序排序
ps -aux --sort -pcpu | less 
#根据用户过滤进程
ps -aux --sort -pmem | less 
#查询全前10个使用cpu和内存最高的应用
ps -aux --sort -pcpu,+pmem | head -n 10 
#通过进程名和PID过滤
ps -C getty 
#带格式显示的,通过进程名和PID过滤
ps -f -C getty 
#根据线程来过滤进程
ps -L 1213 
#树形显示进程
ps -axjf(或pstree)
# 显示安全信息
ps -eo pid,user,args 
#格式化输出 root 用户(真实的或有效的UID)创建的进程
ps -U root -u root u 
(3)top(实时显示进程动态)
  • top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。
  • 在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列。

常用参数:

-d改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
-q没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c切换显示模式
-s安全模式,将交谈式指令取消, 避免潜在的危机
-i不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n更新的次数,完成后将会退出 top
-b批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
#显示进程信息
top
#显示完整的进程信息
top -c
#以批处理模式显示程序信息
top -b
#以累积模式显示程序信息
top -s
#设置信息更新次数
top -n 2
(4)kill(杀死进程)
  • kill正如这个单词的意思一样,就是杀死。linux系统中kill命令用来删除执行中的程序或工作。
  • kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。

常用参数:

-l列出系统支持的信号
-s指定向进程发送的信号
-a处理当前进程时不限制命令名和进程号的对应关系
-p指定kill命令只打印相关进程的进程号,而不发送任何信号
kill -9 进程ID
3、服务管理

在linux中,service和systemctl都是用来进行服务管理,在centos7.x版本以后,推荐使用systemctl来处理,比如同样是查看防火墙状态,二者的指令如下:【service firewalld status】【systemctl status firewalld】。

(1)systemctl(管理系统服务)

常用参数:

-start启动服务
-stop停止服务
-restart重启服务
-enable使某服务开机自启
-disable关闭某服务开机自启
-status查看服务状态
-list -units --type=service列举所有已启动服务
# 启动httpd服务
systemctl start httpd.service
# 停止httpd服务
systemctl stop httpd.service
# 重启httpd服务
systemctl restart httpd.service
# 查看httpd服务状态
systemctl status httpd.service
# 使httpd开机自启
systemctl enable httpd.service
# 取消httpd开机自启
systemctl disable httpd.service
# 列举所有已启动服务(unit单元)
systemctl list-units --type=service
(2)service(管理系统服务)
# 启动httpd服务
service httpd.service start 
# 停止httpd服务
service httpd.service stop
# 重启httpd服务
service httpd.service restart
# 查看httpd服务状态
service httpd.service status
# 显示所有服务的状态
service --status-all
4、软件安装与更新 (1)rpm(RPM软件包管理器)
  • rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。

  • 概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。

常用参数:

-a查询所有的软件包
-b或-t设置包装套件的完成阶段,并指定套件档的文件名称;
-c只列出组态配置文件,本参数需配合”-l”参数使用
-d只列出文本文件,本参数需配合”-l”参数使用
-e或–erase卸载软件包
-f查询文件或命令属于哪个软件包
-h或–hash安装软件包时列出标记
-i显示软件包的相关信息
–install安装软件包
-l显示软件包的文件列表
-p查询指定的rpm软件包
-q查询软件包
-R显示软件包的依赖关系
-s显示文件状态,本参数需配合”-l”参数使用
-U或–upgrade升级软件包
-v显示命令执行过程
-vv详细显示指令执行过程
# 直接安装软件包
rpm -ivh packge.rpm
# 忽略报错,强制安装
rpm --force -ivh package.rpm
# 列出所有安装过的包
rpm -qa
# 查询rpm包中的文件安装的位置
rpm -ql ls
# 卸载rpm包
rpm -e package.rpm
# 升级软件包
rpm -U file.rpm
(2)yum(基于RPM的软件包管理器)
  • yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更新与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
  • yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

常用参数:

-h显示帮助信息
-y对所有的提问都回答“yes”
-c指定配置文件
-q安静模式
-v详细模式
-t检查外部错误
-d设置调试等级(0-10)
-e设置错误等级(0-10)
-R设置yum处理一个命令的最大等待时间
-C完全从缓存中运行,而不去下载或者更新任何头文件
install安装rpm软件包
update更新rpm软件包
check-update检查是否有可用的更新rpm软件包
remove删除指定的rpm软件包
list显示软件包的信息
search检查软件包的信息
info显示指定的rpm软件包的描述信息和概要信息
clean清理yum过期的缓存
shell进入yum的shell提示符
resolvedep显示rpm软件包的依赖关系
localinstall安装本地的rpm软件包
localupdate显示本地rpm软件包进行更新
deplist显示rpm软件包的所有依赖关系
# 自动搜索最快镜像插件
yum install yum-fastestmirror
# 安装yum图形窗口插件
yum install yumex
# 清除缓存目录下的软件包
yum clean packages
# 卸载/删除vim-common
yum remove vim-common.x86_64  
# 列出匹配到“foo*”的可用的数据包
yum list available 'foo*' 
# 安装yum图形窗口插件
yum install yumex  
# 查看可能批量安装的列表
yum grouplist  
# 显示httpd安装包信息
yum info httpd.x86_64 
(3)源码编译安装

软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。

(4)二进制发布包

软件已经针对具体平台编译打包发布,只要解压,修改配置即可。

5、网络配置 (1)hostname(显示和设置系统的主机名)
  • hostname命令用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。
  • 在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。

常用参数:

-a显示主机别名
-d显示DNS域名
-f显示FQDN名称
-i显示主机的ip地址
-s显示短主机名称,在第一个点处截断
-y显示NIS域名
# 显示主机名
hostname
# 使用-a参数显示主机别名
hostname -a
# 修改主机名(重启后无效)
hostname xxx
(2)ifconfig(显示或设置网络设备)
  • ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。
  • 永久修改ip:修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件 (注:不一定是ifcfg-eth0,要通过ifconfig命令查看 )

常用参数:

add<地址>设置网络设备IPv6的IP地址
del<地址>删除网络设备IPv6的IP地址
down关闭指定的网络设备
up启动指定的网络设备
IP地址指定网络设备的IP地址
# 查看IP地址
ifconfig
# 临时修改ip地址(重启失效) eth0看具体是哪个网卡
ifconfig eth0 192.168.12.22
# 启动关闭指定网卡
ifconfig eth0 down
ifconfig eth0 up
# 为网卡配置和删除IPv6地址
ifconfig eth0 add 33ffe:3240:800:1005::2/64
ifconfig eth0 del 33ffe:3240:800:1005::2/64
# 用ifconfig修改MAC地址
ifconfig eth0 down
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
ifconfig eth0 up
# 配置IP地址
ifconfig eth0 192.168.1.56 
ifconfig eth0 192.168.1.56 netmask 255.255.255.0
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
(3)netstat(显示网络状态)

常用参数:

-a显示所有连线中的Socket
-p显示正在使用Socket的程序识别码和程序名称
-u显示UDP传输协议的连线状况
-i显示网络界面信息表单
-n直接使用IP地址,不通过域名服务器

列出所有端口 (包括监听和未监听的)

## 列出所有端口 
netstat -a
## 列出所有 tcp 端口 
netstat -at
##列出所有 udp 端口 
netstat -au 

列出所有处于监听状态的 Sockets

### 只显示监听端口 
netstat -l
### 只列出所有监听 tcp 端口
netstat -lt
### 只列出所有监听 udp 端口 
netstat -lu
### 只列出所有监听 UNIX 端口 
netstat -lx

找出程序运行的端口

netstat -ap | grep ssh
(4)域名映射

/etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用,相当于windows系统的C:WindowsSystem32driversetchosts文件的功能.

6、防火墙命令

firewall-cmd提供了一个动态管理的防火墙,支持网络/防火墙区域来定义网络连接或接口的信任级别。它支持IPv4、IPv6防火墙设置和以太网网桥,并将运行时和永久配置选项分开。它还支持服务或应用程序直接添加防火墙规则的接口。

(1)安装Firewall命令
yum install firewalld firewalld-config
(2)Firewall开启常见端口命令
firewall-cmd –zone=public –add-port=80/tcp –permanent
firewall-cmd –zone=public –add-port=443/tcp –permanent
firewall-cmd –zone=public –add-port=22/tcp –permanent
firewall-cmd –zone=public –add-port=21/tcp –permanent
firewall-cmd –zone=public –add-port=53/udp –permanent
(3)Firewall关闭常见端口命令
firewall-cmd –zone=public –remove-port=80/tcp –permanent
firewall-cmd –zone=public –remove-port=443/tcp –permanent
firewall-cmd –zone=public –remove-port=22/tcp –permanent
firewall-cmd –zone=public –remove-port=21/tcp –permanent
firewall-cmd –zone=public –remove-port=53/udp –permanent
(4)批量添加区间端口
firewall-cmd –zone=public –add-port=4400-4600/udp –permanent
firewall-cmd –zone=public –add-port=4400-4600/tcp –permanent
(5)重启防火墙命令
firewall-cmd –reload 或者 service firewalld restart
(6)查看端口列表
firewall-cmd –permanent –list-port

址 |
| down | 关闭指定的网络设备 |
| up | 启动指定的网络设备 |
| IP地址 | 指定网络设备的IP地址 |

# 查看IP地址
ifconfig
# 临时修改ip地址(重启失效) eth0看具体是哪个网卡
ifconfig eth0 192.168.12.22
# 启动关闭指定网卡
ifconfig eth0 down
ifconfig eth0 up
# 为网卡配置和删除IPv6地址
ifconfig eth0 add 33ffe:3240:800:1005::2/64
ifconfig eth0 del 33ffe:3240:800:1005::2/64
# 用ifconfig修改MAC地址
ifconfig eth0 down
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
ifconfig eth0 up
# 配置IP地址
ifconfig eth0 192.168.1.56 
ifconfig eth0 192.168.1.56 netmask 255.255.255.0
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/599234.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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