Linux常用命令
- 验证系统版本
- 验证系统类型(32位or64位)
- 验证分区情况
- 验证CPU配置
- 验证内存配置
- 文件操作
- 1、pwd
- 2、cd
- 3、ls
- 如何像将ll定义为ls -l的别名,这样去设置定义别名
- 文件操作(mkdir、rm、cp、mv)
- 文本编辑(vi)
- 在Linux系统中,你可以使用命令行安装 `nano`:
- vi格式:
- 在 `vi` 编辑器中,可以使用以下快捷键进行查找、替换和删除整行:
- 在 `vi` 编辑器中,可以使用 `/` 或 `?` 命令来查找文本。
- 在 `vi` 编辑器中,可以使用 `:%s` 命令来替换文本。
- 在 `vi` 编辑器中,可以使用`dd`命令删除整行:
- 文本查看(cat、more、less)
- 文本查看(grep、find)
- 打包与解压缩(tar)
- 网络设置(IP)
- 配置完成后需要重启网卡使生效,重启命令
- IP设置之单网卡双线(2个IP)及三线(3个IP)。
- 配置思路:
- 温馨提示:
- 检查是否生效:
- 温馨提示:
- 网络设置(DNS)
- 防火墙设置(firewalld)
- 查看防火墙是否启动
- 防火墙设置防火墙设置(selinux)
- 常用命令——远程(ssh)
- VNC(Virtual Network Computing)和 SSH(Secure Shell)协议
- Xshell常用命令——重启/关机
- 总结
验证系统版本
cat /etc/centos-release
[root@localhost ~]#
包含很多信息,如下:
- root:表示当前登陆用户名
- @:只是一个分隔符号,可以理解为“at”,但有“在”、“位于”之意
- localhost:表示当前主机名
- ~:表示当前用户的根目录(root用户的根目录是
/root
,因此cd /root
与cd ~
结果是一样的。同理,另外一个用户siman的根目录是/home/siman
,则cd /home/siman
与cd ~
的结果也是一样的) - #:表示当前用户为root(根)用户,非根用户则是用$表示
验证系统类型(32位or64位)
uname -a
验证分区情况
df -h
df
是用来查看磁盘的容量信息的工具,加-h
参数是为了容量的易读性,即会自动使用M或G为单位,如果不加-h
参数则是用字节为单位.
名称 | 意思 |
---|---|
Filesystem | 文件系统 |
Size | 总容量 |
Avail | 可用(剩余可用空间) |
Use% | 已用的占总的百分比 |
Mounted on | 挂载的目录 |
Used | 已用 |
Swap对用户是不可的,所以通过df这个工具无法查看到swap的情况。另外tmpfs是Linux下内存文件系统,如/dev/shm
这个目录你可以像硬盘上的目录一样保存文件,但系统重启之后会丢失,因为它是在内存中划分的空间。
验证CPU配置
cat /proc/cpuinfo
名称 | 意思 |
---|---|
processor | 表示内核ID,从0开始,一共8个内cat核的话,则最后一个的ID是7 |
physical id | 表示物理CPUID,从0开始,一共2颗物理CPU的话,最后一个的ID是1 |
验证内存配置
cat /proc/meminfo
名称 | 意思 |
---|---|
MemToal | 内存的总容量 |
free
- 这个方法除了显示物理内存的情况还显示了交换分区(swap)的情况
文件操作
名称 | 意思 |
---|---|
pwd | 显示当前目录的完整路径 |
ls | 显示指定目录下的文件,后面不跟指定目录的话,则显示当前目录信息 |
cd | 进入指定目录 |
1、pwd
pwd
2、cd
cd Desktop
cd ~
3、ls
ls
ls -l
这些输出内容是使用 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
ll
等于ls –l
,然而ll不是命令(程序),只是ls –l的别名,节省输入时间。你可以自定义任何命令的别名,例如你可以定义la等于ls –a
如何像将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. 实践效果
- 没设置前
- 设置配置文件
- 设置后
文件操作(mkdir、rm、cp、mv)
mkdir
,mk是make(创建,产生)的简写,dir是directory(目录)的简写,make directory就是创建目录(文件夹)的意思
rm
是remove的简写,顾名思义是删除的意思,使用rm删除文件时,如果不加任何参数,则会提示是否删除该文件,输入y确认,输入n取消。加-f参数,表示强制删除不提示(慎用)
- 删除目录(文件夹)则需加-r参数,跟文件一样加-f不提示直接删除(没得后悔),这里是两个参数写在一起了-rf
- cp和mv
名称 | 意思 |
---|---|
cp | copy的简写,顾名思义是复制的意思 |
mv | move的简写,顾名思义是移动的意思 |
命令格式:
cp 目录/源文件 目标目录
mv 目录/源文件 目标目录
- mv除了移动的功能,还有重命名的功能,即当文件目录不改变则只是改名,当然目标目录改变也支持改名。
- cp实践效果
- mv实践效果
文本编辑(vi)
Linux下文本编辑器有vim及nano,但centos最小化安装的话只会带有vim,因此仅介绍vim,需要使用nano的话需要另外安装。
在Linux系统中,你可以使用命令行安装 nano
:
- 打开终端
在你的Linux操作系统中打开一个终端。
- 使用包管理器安装 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
编辑器中,可以使用以下快捷键进行查找、替换和删除整行:
- 查找文本
在 vi
编辑器中,可以使用 /
或 ?
命令来查找文本。
-
/
命令在命令模式下,按下
/
键,然后输入要查找的文本,最后按下Enter
键。vi
编辑器会在当前光标位置下方查找文本,并将光标定位到第一个匹配结果上。
-
?
命令在命令模式下,按下
?
键,然后输入要查找的文本,最后按下Enter
键。vi
编辑器会在当前光标位置上方查找文本,并将光标定位到第一个匹配结果上。
- 替换文本
在 vi
编辑器中,可以使用 :%s
命令来替换文本。
-
:%s/old/new/g
命令在命令模式下,输入
:%s
命令,接着输入old
替换为new
,最后加上g
参数表示进行全局替换。例如,如果要将文本中所有的ad
替换为12
,可以执行以下命令::%s/ad/12/g
这将会全局搜索文本并替换所有匹配的
ad
。
- 删除整行
在 vi
编辑器中,可以使用dd
命令删除整行:
-
dd
命令在命令模式下,按下
dd
命令即可删除当前光标所在行。如果要删除多行,可以在dd
命令前加上删除的行数。例如,如果要删除当前行及以下的 3 行,可以输入以下命令:4dd
这将会删除当前行及以下的 3 行。
希望这些命令可以帮助你在 vi
编辑器中更加高效地进行文本的查找、替换和删除操作。
文本查看(cat、more、less)
cat test.txt
less test.txt
more test.txt
文本查看(grep、find)
- 显示test.txt中包含有asd的行
格式:
grep 搜索内容 目录/文件名
文件名前不加目录,则表示是当前目录下的文件
grep除了能搜索硬盘上文件内的内容之外,还能对其它程序在终端上的输出内容进行过滤输出(或者叫指定输出),但需要用到管道符“
|
”。
管道:顾名思义就有传送、连接的意思。所以在linux中管道符号的su作用就是将前面一个程序输出的结果传给后面的应用程序,即后面应用程序的处理对象来自上一个应用程序的结果。
使用grep过滤ip addr输出结果并输出只包含inet的行:
格式:
grep 搜索内容 目录/文件名
文件名前不加目录,则表示是当前目录下的文件
- 以文件的完事名字进行搜索
- 以通配符
*
进行匹配搜索,*
表示多个字符匹配,通配符?
表示单个字符匹配
打包与解压缩(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文件打包并压缩
参数解释:
-c
表示打包,解包则是-x
。-t
仅列出包内的文件。-f
必有。-v
打印出正在被操作(解压缩)的文件,可选。
网络设置(IP)
网卡的IP配置文件位于/etc/sysconfig/network-scripts
目录下,并以ifcfg-*
形式的文件名存在,其中ifcfg-为固定,*
表示网卡接口名称.(不同机器网卡接口名称不同,设置前ls查看下)
cd /etc/sysconfig/network-scripts
ls
cat ifcfg-ens160
- 本机是在安装的时候就设置了网络(dhcp模式),因此看到较多的项目(默认),但不是所有项都是必须的。下面演示使用静态IP地址的模式,并只保留必须项。
-
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 )更不能相同。
温馨提示:
上面是双线的配置,三线的配置同理,再复制多一份,注意DEVICE名称及文件名。
前面提到修改网卡配置文件需要重启网卡才会生效,ip同样地添加新的配置文件也需要重启网卡
重启网卡的命令:systemctl restart network
检查是否生效:
方法一:在另外一台机器ping你配置的IP,通则生效了(不通,则不一定不生效,这涉及的是网络知识,后面再介绍)
方法二:在系统中使用ip addr命令来检测及在本机ping本机的地址(推荐该方法)
- UP表示网卡已启用
- 1:lo为环路接口,一定有的,并默认开启
- 2:eno16777736为刚刚配置的物理网卡
配置了两个IP地址,如果是双线机房,你可以把其中一个当作电信IP,另外一个当作联通IP来理解。
温馨提示:
看到UP就可以确认配置文件无语法错误并成功启用了,同时可以在本机上ping自己的IP,如ping 192.168.14.128或ping 172.16.0.128,可以得到正常返回信息。
网络设置(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等,如果有返回则配置成功了。
防火墙设置(firewalld)
由于防火墙涉及到太多的网络知识,而且对于机房来说,很少会接触到,因为就算是远程端口,系统防火墙默认也是开放的,无需设置。因此在本阶段里介绍防火墙只是介绍关于防火墙服务的操作(开启、停止、禁用、查看运行状态)。通常情况下,对于初学者,为减少不必要的麻烦,建议先将防火墙禁用。
查看防火墙是否启动
systemctl status firewalld
- activesys表示启动
名称 | 意思 |
---|---|
systemctl stop firewalld | 停止防火墙 |
systemctl disable firewalld | 禁用防火墙,即下次重启后都不会再启动(下次启动才生效) |
systemctl start firewalld | 启动防火墙 |
- 停用后:
防火墙设置防火墙设置(selinux)
getenforce
- 通过
getenforce
命令检验selinux的状态,Enforcing表示为开启状态
vi /etc/selinux/config
- 修改selinux的配置文件
- 将SELINUX=enforcing修改为SELINUX=disabled
SELINUX=disabled
修改之后的状态:
修改完成后,需要重启系统才生效。
常用命令——远程(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基本操作就是验证系统版本
、验证硬件
、配置网络
等,而配置网络就涉及文件的基本操作,查看、复制、编辑等
。