【运维工程师学习】Linux常用命令

Linux常用命令

    • 0、验证系统版本
    • 1、验证系统类型(32位or64位)
    • 2、验证分区情况
    • 3、验证CPU配置
    • 4、验证内存配置
    • 5、文件操作
      • 1、pwd
      • 2、cd
      • 3、ls
    • 6、如何像将ll定义为ls -l的别名,这样去设置定义别名
    • 7、文件操作(mkdir、rm、cp、mv)
    • 8、文本编辑(vi)
      • 在Linux系统中,你可以使用命令行安装 `nano`:
      • vi格式:
      • 在 `vi` 编辑器中,可以使用以下快捷键进行查找、替换和删除整行:
        • 在 `vi` 编辑器中,可以使用 `/` 或 `?` 命令来查找文本。
        • 在 `vi` 编辑器中,可以使用 `:%s` 命令来替换文本。
        • 在 `vi` 编辑器中,可以使用`dd`命令删除整行:
    • 9、文本查看(cat、more、less)
    • 10、文本查看(grep、find)
    • 11、打包与解压缩(tar)
    • 12、网络设置(IP)
      • 配置完成后需要重启网卡使生效,重启命令
      • IP设置之单网卡双线(2个IP)及三线(3个IP)。
        • 配置思路:
        • 温馨提示:
        • 检查是否生效:
        • 温馨提示:
    • 13、网络设置(DNS)
    • 14、防火墙设置(firewalld)
      • 查看防火墙是否启动
    • 15、防火墙设置防火墙设置(selinux)
    • 16、常用命令——远程(ssh)
      • VNC(Virtual Network Computing)和 SSH(Secure Shell)协议
      • Xshell常用命令——重启/关机
  • 总结

0、验证系统版本

cat /etc/centos-release

【运维工程师学习】Linux常用命令_第1张图片

[root@localhost ~]#

包含很多信息,如下:

  • root:表示当前登陆用户名
  • @:只是一个分隔符号,可以理解为“at”,但有“在”、“位于”之意
  • localhost:表示当前主机名
  • ~:表示当前用户的根目录(root用户的根目录是/root,因此cd /rootcd ~结果是一样的。同理,另外一个用户siman的根目录是/home/siman,则cd /home/simancd ~的结果也是一样的)
  • #:表示当前用户为root(根)用户,非根用户则是用$表示

1、验证系统类型(32位or64位)

uname -a

在这里插入图片描述

2、验证分区情况

df -h

【运维工程师学习】Linux常用命令_第2张图片
df是用来查看磁盘的容量信息的工具,加-h参数是为了容量的易读性,即会自动使用M或G为单位,如果不加-h参数则是用字节为单位.

名称 意思
Filesystem 文件系统
Size 总容量
Avail 可用(剩余可用空间)
Use% 已用的占总的百分比
Mounted on 挂载的目录
Used 已用

Swap对用户是不可的,所以通过df这个工具无法查看到swap的情况。另外tmpfs是Linux下内存文件系统,如/dev/shm这个目录你可以像硬盘上的目录一样保存文件,但系统重启之后会丢失,因为它是在内存中划分的空间。

3、验证CPU配置

cat /proc/cpuinfo

【运维工程师学习】Linux常用命令_第3张图片

名称 意思
processor 表示内核ID,从0开始,一共8个内cat核的话,则最后一个的ID是7
physical id 表示物理CPUID,从0开始,一共2颗物理CPU的话,最后一个的ID是1

4、验证内存配置

cat /proc/meminfo

【运维工程师学习】Linux常用命令_第4张图片

名称 意思
MemToal 内存的总容量
free

在这里插入图片描述

  • 这个方法除了显示物理内存的情况还显示了交换分区(swap)的情况
  • linux的交换分区相当于windows下的虚拟内存一样,都是在硬盘上开辟一片空间,当作内存使用,提高系统效率。
    Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。
    即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

5、文件操作

名称 意思
pwd 显示当前目录的完整路径
ls 显示指定目录下的文件,后面不跟指定目录的话,则显示当前目录信息
cd 进入指定目录

1、pwd

pwd

在这里插入图片描述

2、cd

cd Desktop
cd ~

在这里插入图片描述

3、ls

ls

在这里插入图片描述

ls -l

【运维工程师学习】Linux常用命令_第5张图片

这些输出内容是使用 ls -l 命令显示当前目录下所有文件和子目录的详细信息。输出每一行都包含了文件/文件夹的一些基本信息,下面是每个字段的含义:

total 0                      总文件数
drwxr-xr-x. 2 gee gee 6 Jun 24 21:18 Desktop   
文件权限、硬链接数、所有者、组、大小、时间、名称
  • 总文件数:总共的文件/文件夹数量
  • 文件权限:文件/文件夹的权限,以r、w、x表示
  • 硬链接数:对于文件,表示有多少个文件链接到这个节点;对于目录,表示有多少个子目录链接到这个节点
  • 所有者:文件/文件夹的所有者
  • :文件/文件夹的归属组
  • 大小:文件的大小,目录大小通常是4096字节
  • 时间:文件的最后修改时间
  • 名称:文件/文件夹的名称
  • rw-r--r--当前文件(文件夹)的权限信息,r:读w:写x:执行3位为一组,如rw-,r–,r–分别表示当前用户用户组其它用户的权限

例如,第二行表示当前目录下的 Desktop 文件夹,文件权限为 rwxr-xr-x.,硬链接数为 2,所有者和归属组都是 gee,大小为 6,最后修改时间为 6 月 24 日 21:18,文件名为 Desktop。其中首字母 d 表示该对象为目录,-则表示为普通文件。

ls -a

-a:表示显示隐藏文件,文件名前面带“.”表示该文件为隐藏文件,访问隐藏文件需要输入“.”,如查看.bash_profile则需输入cat .bash_profile
在这里插入图片描述

ll

【运维工程师学习】Linux常用命令_第6张图片

  • ll等于ls –l,然而ll不是命令(程序),只是ls –l的别名,节省输入时间。你可以自定义任何命令的别名,例如你可以定义la等于ls –a

6、如何像将ll定义为ls -l的别名,这样去设置定义别名

在 Linux 中,可以通过修改终端配置文件来定义别名。有许多种终端程序,其中最常见的是 Bash 终端,在 Bash 终端中可以通过修改 ~/.bashrc 文件来定义别名。

你可以像下面的步骤一样,设置 la 别名为 ls -a

1. 打开 ~/.bashrc 文件

使用文本编辑器打开 ~/.bashrc 文件,例如:

nano ~/.bashrc

2. 定义别名

在文件的末尾添加以下两行内容:

alias ll='ls -l'
alias la='ls -a'

第一行命令定义了一个 ll 别名,将其设置为 ls -l 的缩写;第二行命令定义了一个 la 别名,将其设置为 ls -a 的缩写。

3. 生效别名

保存文件并退出文本编辑器。为了使新的别名生效并进入当前会话,可以输入以下命令:

source ~/.bashrc

这会立即重新加载 ~/.bashrc 文件,使定义的别名生效。

现在你可以在终端中使用 ll 命令来代替 ls -l 命令,使用 la 命令来代替 ls -a 命令。

4. 实践效果

  • 没设置前

在这里插入图片描述

  • 设置配置文件

【运维工程师学习】Linux常用命令_第7张图片

  • 设置后

在这里插入图片描述

7、文件操作(mkdir、rm、cp、mv)

  1. mkdir,mk是make(创建,产生)的简写,dir是directory(目录)的简写,make directory就是创建目录(文件夹)的意思

在这里插入图片描述

  1. rm是remove的简写,顾名思义是删除的意思,使用rm删除文件时,如果不加任何参数,则会提示是否删除该文件,输入y确认,输入n取消。加-f参数,表示强制删除不提示(慎用)

【运维工程师学习】Linux常用命令_第8张图片

  • 删除目录(文件夹)则需加-r参数,跟文件一样加-f不提示直接删除(没得后悔),这里是两个参数写在一起了-rf

在这里插入图片描述

  1. cp和mv
名称 意思
cp copy的简写,顾名思义是复制的意思
mv move的简写,顾名思义是移动的意思
命令格式:
cp 目录/源文件 目标目录
mv 目录/源文件 目标目录
  • mv除了移动的功能,还有重命名的功能,即当文件目录不改变则只是改名,当然目标目录改变也支持改名。
  • cp实践效果

【运维工程师学习】Linux常用命令_第9张图片

  • mv实践效果

【运维工程师学习】Linux常用命令_第10张图片

8、文本编辑(vi)

Linux下文本编辑器有vim及nano,但centos最小化安装的话只会带有vim,因此仅介绍vim,需要使用nano的话需要另外安装。

在Linux系统中,你可以使用命令行安装 nano

  1. 打开终端

在你的Linux操作系统中打开一个终端。

  1. 使用包管理器安装 nano
  • Debian/Ubuntu发行版可以使用apt-get包管理器:

    sudo apt-get update
    sudo apt-get install nano
    

    这将更新系统软件包列表并安装 nano 编辑器。

  • CentOS/RHEL发行版可以使用yum包管理器:

    sudo yum update
    sudo yum install nano
    

    这将更新系统软件包列表并安装 nano 编辑器。

  • Arch Linux发行版可以使用pacman包管理器:

    sudo pacman -Sy nano
    

    这将更新系统软件包列表并安装 nano 编辑器。

安装成功后,你可以在终端中输入 nano 命令并回车来运行 nano 编辑器。

vi格式:

vi 文件名
  • 如果文件名存在则打开该文件,如果文件名不存在则创建一个新文件并处于打开模式。
  • 进入打开模式后,需要按i才会进入编辑模式,通过移动方向键移动输入光标位置。
  • Esc键退出编辑模式,只有在退出编辑模式下才可以进行保存及退出操作。
  • 退出编辑模式就跟刚打开的模式一样,在该模式下输入:wq表示保存并退出vim,:表示进入vim的命令模式w表示写入(保存)q表示退出。

vi 编辑器中,可以使用以下快捷键进行查找、替换和删除整行:

  1. 查找文本

vi 编辑器中,可以使用 /? 命令来查找文本。

  • / 命令

    在命令模式下,按下 / 键,然后输入要查找的文本,最后按下 Enter 键。vi 编辑器会在当前光标位置下方查找文本,并将光标定位到第一个匹配结果上。
    【运维工程师学习】Linux常用命令_第11张图片

  • ? 命令

    在命令模式下,按下 ? 键,然后输入要查找的文本,最后按下 Enter 键。vi 编辑器会在当前光标位置上方查找文本,并将光标定位到第一个匹配结果上。
    【运维工程师学习】Linux常用命令_第12张图片

  1. 替换文本

vi 编辑器中,可以使用 :%s 命令来替换文本。

  • :%s/old/new/g 命令

    在命令模式下,输入 :%s 命令,接着输入 old 替换为 new,最后加上 g 参数表示进行全局替换。例如,如果要将文本中所有的 ad 替换为 12,可以执行以下命令:

    :%s/ad/12/g
    

    这将会全局搜索文本并替换所有匹配的 ad
    【运维工程师学习】Linux常用命令_第13张图片
    【运维工程师学习】Linux常用命令_第14张图片

  1. 删除整行

vi 编辑器中,可以使用dd命令删除整行:

  • dd 命令

    在命令模式下,按下 dd 命令即可删除当前光标所在行。如果要删除多行,可以在 dd 命令前加上删除的行数。例如,如果要删除当前行及以下的 3 行,可以输入以下命令:

    4dd
    

    这将会删除当前行及以下的 3 行。
    【运维工程师学习】Linux常用命令_第15张图片
    【运维工程师学习】Linux常用命令_第16张图片

希望这些命令可以帮助你在 vi 编辑器中更加高效地进行文本的查找、替换和删除操作。

9、文本查看(cat、more、less)

cat test.txt

【运维工程师学习】Linux常用命令_第17张图片

less test.txt

在这里插入图片描述
【运维工程师学习】Linux常用命令_第18张图片

more test.txt

【运维工程师学习】Linux常用命令_第19张图片

10、文本查看(grep、find)

【运维工程师学习】Linux常用命令_第20张图片

  • 显示test.txt中包含有asd的行

格式:
grep 搜索内容 目录/文件名
文件名前不加目录,则表示是当前目录下的文件

grep除了能搜索硬盘上文件内的内容之外,还能对其它程序在终端上的输出内容进行过滤输出(或者叫指定输出),但需要用到管道符“|”。
管道:顾名思义就有传送、连接的意思。所以在linux中管道符号的su作用就是将前面一个程序输出的结果传给后面的应用程序,即后面应用程序的处理对象来自上一个应用程序的结果。【运维工程师学习】Linux常用命令_第21张图片
使用grep过滤ip addr输出结果并输出只包含inet的行:
在这里插入图片描述

格式:
grep 搜索内容 目录/文件名
文件名前不加目录,则表示是当前目录下的文件

  • 以文件的完事名字进行搜索

在这里插入图片描述

  • 以通配符*进行匹配搜索,*表示多个字符匹配,通配符表示单个字符匹配

【运维工程师学习】Linux常用命令_第22张图片

11、打包与解压缩(tar)

  • Linux下打包与压缩是两个概念的,tar只是打包工具(将多个文件打包成一个文件),但又可以在tar中调用其它压缩工具在打包的同时进行压缩
  • 格式:

1、仅打包:tar –cvf 打包后的文件名 需要被打包的文件(夹)
2、打包并调用gz进行压缩:tar –czvf 打包后的文件名 需要被打包的文件(夹)

  • 注:
    gz有专用的命令,如果文件后缀只是.gz而不是.tar.gz则不能使用tar来解压,需要使用gunzip。gz更多使用方法请搜索“linux gz”。
    另外linux下除了gz压缩外,还有bz2、tgz、z等等,当然也会有zip。
    下面只演示tar打包及tar调用gz进行压缩

1、先用ls -lsh看看该目录下有什么文件及文件大小

在这里插入图片描述
2、使用-cf 参数,仅将当前目录下以.repo结尾的文件打包
在这里插入图片描述

3、使用-czf参数,将所有.repo文件打包并压缩
在这里插入图片描述

【运维工程师学习】Linux常用命令_第23张图片

参数解释:-c表示打包,解包则是-x-t仅列出包内的文件。-f必有。-v打印出正在被操作(解压缩)的文件,可选。

12、网络设置(IP)

网卡的IP配置文件位于/etc/sysconfig/network-scripts目录下,并以ifcfg-*形式的文件名存在,其中ifcfg-为固定,*表示网卡接口名称.(不同机器网卡接口名称不同,设置前ls查看下)

cd /etc/sysconfig/network-scripts
ls
cat ifcfg-ens160

【运维工程师学习】Linux常用命令_第24张图片

  • 本机是在安装的时候就设置了网络(dhcp模式),因此看到较多的项目(默认),但不是所有项都是必须的。下面演示使用静态IP地址的模式,并只保留必须项。

【运维工程师学习】Linux常用命令_第25张图片

  • TYPE=“Ethernet”
    表示该网络接口是以太网接口,也就是普通的有线网络接口,其他类型可能包括无线接口、虚拟接口等。这一行的设置对于网络连接的配置和管理都很重要,因为不同的网络接口类型需要不同的配置参数。

  • BOOTPROTO=“static” 表示该网络接口将使用静态 IP 地址,这意味着需要在该文件中手动指定该网络接口的 IP 地址、子网掩码、网关等参数。这与 DHCP(动态主机配置协议)不同,DHCP 是一种自动分配 IP 地址的协议,它将自动为该网络接口分配 IP 地址、子网掩码、网关等参数。

    因此,BOOTPROTO=“static” 行的设置告诉系统,不要将该网络接口的配置留给 DHCP
    来处理,而是使用手动配置的方式指定网络参数。

  • 网卡名称(DEVICE)、开机启用(ONBOOT

  • IP(IPADDR)、掩码(NETMASK)、网关(GATEWAY

配置完成后需要重启网卡使生效,重启命令

 systemctl restart network
报错Failed to restart network.service: Unit network.service not found.

这个错误意味着当前系统中没有启用名为 network.service 的网络服务,因此无法执行重启操作。

CentOS 7 或更高版本中,网络服务已经从 NetworkManager 迁移到了 systemd-networkd 和 systemd-resolved。因此,如果你要重启网络服务,应该使用以下命令:

systemctl restart systemd-networkd.service

或者:

systemctl restart NetworkManager.service

其中,systemd-networkd.service 是 systemd 框架中的一个专门负责网络的服务,适用于在较小的网络环境中(例如服务器)使用。而 NetworkManager.service 则是一种广泛使用的网络管理程序,它提供了更多的网络管理功能,适用于需要管理多个网络接口的复杂网络环境。

因此,如果你的系统中存在 systemd-networkd.service 或 NetworkManager.service,可以尝试使用上述命令来重启网络服务。

IP设置之单网卡双线(2个IP)及三线(3个IP)。

注:本次讨论的多IP配置均是在一个网卡上配置的,且所有IP均为同一个子网(俗语称同一个段的IP)。双网卡不同段IP需要配置系统路由策略,不在本次讨论范围。

配置思路:

将原网卡IP配置文件(ifcfg-*)复制一份,并修改文件名为新接口的名称,新配置文件内修改DEVICE项及IPADDR、NETMASK项,取消GATEWAY项。对于系统来说,是一个物理网卡对于两个配置文件,但两个配置文件不能同名,并且设备名称( DEVICE )更不能相同。
【运维工程师学习】Linux常用命令_第26张图片

温馨提示:

上面是双线的配置,三线的配置同理,再复制多一份,注意DEVICE名称及文件名。

前面提到修改网卡配置文件需要重启网卡才会生效,ip同样地添加新的配置文件也需要重启网卡
重启网卡的命令:systemctl restart network

检查是否生效:

方法一:在另外一台机器ping你配置的IP,通则生效了(不通,则不一定不生效,这涉及的是网络知识,后面再介绍)
方法二:在系统中使用ip addr命令来检测及在本机ping本机的地址(推荐该方法)
【运维工程师学习】Linux常用命令_第27张图片

  • UP表示网卡已启用
  • 1:lo为环路接口,一定有的,并默认开启
  • 2:eno16777736为刚刚配置的物理网卡

配置了两个IP地址,如果是双线机房,你可以把其中一个当作电信IP,另外一个当作联通IP来理解。

温馨提示:

看到UP就可以确认配置文件无语法错误并成功启用了,同时可以在本机上ping自己的IP,如ping 192.168.14.128或ping 172.16.0.128,可以得到正常返回信息。

13、网络设置(DNS)

  • DNS的标准配置文件在/etc/resolv.conf
  • 为什么说是标准配置文件呢?因为也有人将DNS配在前面提到的网卡配置文件中。
  • 按下面的格式将DNS服务器地址添加到位于/etc/sysconfig/network-scripts目录下的网卡配置文件(ifcfg)中。例如
DNS1=xxx.xxx.xxx.xxx

推荐使用标准配置文件。

  • 编辑resolv.conf文件,添加DNS服务器地址

注:DNS配置的修改是即时生效的,因此配完后,即时在本机ping一个大站的域名,如163.com或baidu.com等,如果有返回则配置成功了。
【运维工程师学习】Linux常用命令_第28张图片

14、防火墙设置(firewalld)

由于防火墙涉及到太多的网络知识,而且对于机房来说,很少会接触到,因为就算是远程端口,系统防火墙默认也是开放的,无需设置。因此在本阶段里介绍防火墙只是介绍关于防火墙服务的操作(开启、停止、禁用、查看运行状态)。通常情况下,对于初学者,为减少不必要的麻烦,建议先将防火墙禁用。
【运维工程师学习】Linux常用命令_第29张图片

查看防火墙是否启动

systemctl status firewalld
  • activesys表示启动
名称 意思
systemctl stop firewalld 停止防火墙
systemctl disable firewalld 禁用防火墙,即下次重启后都不会再启动(下次启动才生效)
systemctl start firewalld 启动防火墙
  • 停用后:

【运维工程师学习】Linux常用命令_第30张图片

15、防火墙设置防火墙设置(selinux)

getenforce
  • 通过getenforce命令检验selinux的状态,Enforcing表示为开启状态
vi /etc/selinux/config
  • 修改selinux的配置文件
  • 将SELINUX=enforcing修改为SELINUX=disabled
SELINUX=disabled

修改之后的状态:
【运维工程师学习】Linux常用命令_第31张图片

修改完成后,需要重启系统才生效。

16、常用命令——远程(ssh)

Linux的字符操作是使用ssh协议进行远程连接的(linux图形桌面则是使用vnc协议进行远程桌面连接,微软的windows则是使用RDP协议)
Centos最小化安装都默认开启ssh远程服务端,使用合适的ssh客户端就可以远程登陆主机了。所以对于服务端没有太多介绍,只是介绍一下支持ssh协议的客户端,供大家参考,如:

  • Putty

  • Xshell

  • Bitvise SSH Client

  • Securecrt

VNC(Virtual Network Computing)和 SSH(Secure Shell)协议

  • VNC(Virtual Network Computing)和 SSH(Secure
    Shell)协议都是计算机领域中常用的远程访问协议。它们的主要区别在于安全性和功能方面。

    VNC协议允许用户从远程计算机上以图形化界面的方式控制另一个计算机。VNC协议的工作方式是,将远程计算机上的屏幕图像传输到本地计算机,然后通过本地计算机上的鼠标和键盘输入来控制远程计算机。VNC协议主要优点是易于安装和使用,适用于远程桌面支持和管理。

    然而,VNC协议的缺点是相对较差的安全性,因为它可以在网络上传输用户的所有屏幕图像和鼠标/键盘输入。此外,VNC协议的图形传输速度也可能受到网络延迟的影响。

  • SSH协议是一种加密的网络协议,用于在本地计算机和远程计算机之间创建加密通道。它主要用于远程登录和执行命令,可以通过SSH进行文件传输,还可以向远程计算机/服务器安全地传输大量数据。SSH协议提供了更高的安全性,因为所有传输的信息都是加密的。此外,SSH协议的使用速度较快,适用于基于文本的系统管理。

    总之,VNC协议适用于需要控制桌面和支持图形化界面的环境,而SSH协议适用于需要更高安全性和基于文本的远程访问的环境。在实际使用中,这些协议可以相互补充,可以根据具体需要选择使用哪种协议。

Xshell常用命令——重启/关机

关机命令:

命令 解释
shuthown -h 需要root用户,你是root用户的直接输入即可
halt 最常用,其实等于shutdown –p
init 0 init是linux里面一个十分重要的概念,更多信息请搜索“linux init”

重启命令:

名称 意思
shutdown –r 权限要求root
reboot 最常用,其实等于shutdown –r
init 1 更多信息请搜索“linux init”

总结

对于运维工程师来说,linux基本操作就是验证系统版本验证硬件配置网络等,而配置网络就涉及文件的基本操作,查看、复制、编辑等

你可能感兴趣的:(运维工程师学习,linux,运维,服务器,运维开发,ssh,shell命令,运维工程师)