Linux基础命令
作为工作当中所需要大量接触的Linux系统,网上相关教程已不计其数,但从未系统学习过,仅仅作为会使用,遇到相关问题可通过百度搜索解决的地步。本篇文章将作为个人学习笔记,使用Xshell连接虚拟机,基于刘瑞老师的《Linux就该这么学》与菜鸟教程的Linux篇进行学习与巩固,以达温顾知新之效。
菜鸟教程Linux篇
Linux就该这么学
Linux基础命令
Linux系统通过shell这一命令行工具,充当用户与系统内核之间翻译官,帮助系统执行用户所需完成的命令。常见的Linux命令的格式如下,灵活使用TAB键可大幅提升敲命令的速度:
命令名称 [命令参数] [命令对象]
帮助
在工作当中,数量庞大的Linux命令,总是令人头疼,在日常的学习工作当中,遇到不会不懂的东西,可以方便的使用百度解决。但是在客户现场时,特别是当着客户面的时候,当面百度不免显得不专业,此时能够熟练运用Linux系统中自带的小抄(帮助文档),便可以化险为夷。这是在英语能力过关的情况下,如果英语水平不佳,就别死要面子活受罪了,能百度就百度吧,能解决问题要紧。
man命令
man:Manual,使用手册,在命令终端中输入:
man [需要查询的命令]
在终端中使用man查询man本身的帮助文档效果如下:
[root@localhost ~]# man man

如图所示,man帮助文档中的解释都是由英文进行的。(如果系统环境为中文,会有部分中文解释),实际上大多解释文档都是英文的,所以理解内置的帮助文档需要一定的英语基础,如果没有,还是百度吧。
man帮助文档可通过以下表格中的快捷键查看该文档内容。
| 按键 | 用处 |
|---|---|
| 空格键 | 向下翻一页 |
| PaGe down | 向下翻一页 |
| PaGe up | 向上翻一页 |
| home | 直接前往首页 |
| end | 直接前往尾页 |
| / | 从上至下搜索某个关键词 如“/linux” |
| ? | 从下至上搜索某个关键词,如“?linux” |
| n | 定位到下一个搜索到的关键词 |
| N | 定位到上一个搜索到的关键词 |
| q | 退出帮助文档 |
在实验环境中由于往往是通过Xshell连接虚拟机,在使用远程连接的时候会感觉这些快捷键用处并不大,这是因为有鼠标。在windows操作环境中,鼠标的使用会导致在练习Linux操作系统中无法感受到快捷键的用处,有时甚至会感觉到快捷键的多余。
事实上,在生产环境一般也是用Xshell远程(或其他远程工具)连接来处理工作,但运维工作,或者在处理Linux环境的工作中,难免会遇到无法远程连接,仅能使用字符界面运行排障的情景,这时快捷键的重要性就提现出来了,所以学习Linux系统中,熟练的掌握快捷键操作是装逼一大利器必不可少的。
man命令帮助信息的结构和意义如下:
| 结构名称 | 代表意义 |
|---|---|
| NAME | 命令的名称 |
| SYNOPSIS | 参数的大致使用方法 |
| DESCRIPTION | 介绍说明 |
| EXAMPLES | 演示(附带简单说明) |
| OVERVIEW | 概述 |
| DEFAULTS | 默认的功能 |
| OPTIONS | 具体的可用选项(带介绍) |
| ENVIRONMENT | 环境变量 |
| FILES | 用到的文件 |
| SEE ALSO | 相关的资料 |
| HISTORY | 维护历史与联系方式 |
help选项
help选项,是Linux当中常用的指令选项,个人使用help选线来查找命令使用方法的频率是多于man的,使用help选项后,会显示对应指令的用法和选项,是相当实用的选项。
help使用方法如下:
[指令] --help
使用help命令查看man指令的帮助效果如下:
[root@localhost ~]# man --help

自然也是英文的。
TAB键
在Linux系统中TAB键是相当重要的键位,它是Bash解释器中补全键位。使用TAB键后,能够实现对命令、参数或文件的内容补全。如输入mkdi后使用TAB键,它会列出所有mkdi开头的指令(如果符合条件命令仅有一个,它会在已输入的指令后补全):
点击查看代码
[root@localhost ~]# mkdi <TAB> <TAB>
mkdict mkdir
目录与文件
cd(打开目录)
cd:Change directory,改变目录。该指令用于打开指定目录,相当于Windows系统中的双击文件夹,其指令格式如下:
cd [路径]
该命令本身并没有多少需要说的,需要了解的是路径的书写,Linux系统中的路径分为两种绝对路径与相对路径,绝对路径是基于根目录的地址,相对路径是基于当前路径的地址。
用现实地址来比喻:加入你的左边有个肯德基,对另一个人描述这个肯德基的位置,这个"肯德基的位置在我的左边",这个就是肯德基的相对位置,当你离开当前位置时,在往左边找就不是肯德基了。但通过经纬度描述这个肯德基的位置,无论你本人如何移动,始终可以通过经纬度定位到当时你左边的肯德基,经纬度就是这个肯德基的绝对位置。
常用的cd命令效果如下:
| 命令 | 效果 |
|---|---|
| cd | 切换到当前用户家目录 |
| cd ~ | 切换到当前用户家目录 |
| cd - | 到前一次目录 |
| cd ./ | 当前目录 |
| cd ../ | 到上一级目录(通过复用可到达上上级目录) |
| cd ~用户名 | 到指定用户家目录 |
pwd(打印当前路径)
pwd:print work directory,打印当前目录。显示出当前工作目录的绝对路径。
使用效果如下:

ls(展示指定路径下的所有文件)
ls:List files,对文件列表。该指令用于展示对应路径下的文件,路径即可以使用相对路径,也可以使用绝对路径。
该指令使用方法:
ls [选项] [路径]
该指令可用选项如下:
| 选项 | 文件或目录 |
|---|---|
| -l | 以长格式显示文件和目录列表 |
| -a | 显示全部包括隐藏文件 |
| -A | 显示全部问价或隐藏文件,但不包括当前文件夹和 |
| -d | 仅列出目录本身,不列目录内的文件 |
| -h | 人性化显示(显示文件大小) |
| -R | 递归显示目录和该目录下的所有文件 |
| -color | 显示颜色 |
| -S | 以文件容量大小排序 |
| -i | 显示indoe号 |
ls命令使用后,不同的文件呈现的颜色不同,如图

由于linux系统中万物皆文件的特性,ls后不同颜色的文件代表着不同类型的文件,常见颜色与文件类型对应关系如下:
| 颜色 | 文件类型 |
|---|---|
| 黑色 | 普通文件 |
| 绿色 | 可执行文件 |
| 黄色 | 块设备文件 |
| 红色 | 压缩包 |
| 蓝色 | 文件夹 |
| 天蓝色 | 软连接 |
mkdir (创建目录)
mkdir:Make directory,创建目录,与windows右键新建文件夹功能类似,命令格式如下:
mkdir [选项] [目录位置与名称]
目录位置可用绝对路径,也可用相对路径。
可以同时创建多个目录。

通过-p可以递归创建文件夹(tree命令需要通过yum install tree -y安装)

mv(移动文件)
mv:Move file,移动文件,与windows中剪切操作类似,但在移动当中可以同时进行文件改名操作。命令格式:
mv [要移动的文件] [移动后的目标地址]
现目录test1下有文件1.txt,若将其移至test2,操作如下。
[root@localhost test1]# ls
1.txt
[root@localhost test1]# mv 1.txt /test2
[root@localhost test1]# ls /test2
1.txt
将test2下的1.txt移回test1,并改名为2.txt,操作如下。
[root@localhost test1]# mv /test2/1.txt /test1/2.txt
[root@localhost test1]# ls
2.txt
该命令,可直接移动文件夹,操作如下。
[root@localhost test1]# mv /test1 /test2
[root@localhost test1]# ls /test2
test1
[root@localhost test1]# ls /test2/test1
2.txt
cp(复制文件)
cp:copy,复制文件。命令格式:
cp [选项] 源文件 目标目录
常用选项:
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。
touch(修改与创建文件)
touch可用于创建文件,修改文件的时间属性,命令格式:
touch [选项] 文件或目录
当文件或目录存在时,touch命令会将该文件或目录的时间修改为当前系统时间,如果不存在该文件或目录则会创建同名文件。通过ls -l可查看文件的时间属性。
cat(查看文件)
cat:concatenate,命令用于连接文件并打印到标准输出设备上。直观效果就是查看文件的内容,命令格式:
cat [选项] 目标文件
常用选项:
- -n 或 --number:由 1 开始对所有输出的行数编号。
- -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
- -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
- -E 或 --show-ends : 在每行结束处显示 $。(显示回车
- -T 或 --show-tabs: 将 TAB 字符显示为 ^I。
vim(vim编辑器)
vim是Linux中强大的程序编辑软件,单初学者基本就将其作为记事本使用,用于编辑文件。命令格式:
vim 文件

进入VIM编辑器后,为默认的命令模式,使用i命令可进入编辑模式,使用esc :wq,可以保存编辑内容并退出VIM编辑器。使用:q!可以强制退出不保存
对于VIM的使用。可以通过vimtutor获取VIM的训练模式。(建议系统环境使用中文,训练模式中的对应教程即可变为中文)

磁盘管理
fdisk(磁盘分区)
fdisk,是linux中一款磁盘分区工具,当添加新磁盘后,可通过该命令对新磁盘进行分区,并使用。命令格式:
fdisk 设备 [选项]
该命令的具体使用可看该链接学习使用。
硬盘分区
lsblk(查看硬盘分区信息)
lsblk命令可以用于查看硬盘的分区信息、大小挂载点等信息。

mkfs(文件系统格式化)
mkfs:make file system,用于在特定的磁盘分区上建立Linux系统的文件系统,命令格式:
mkfs.文件格式 磁盘分区
使用指令mkfs.<TAB><TAB>可以查看该指令所支持的所有文件系统格式。

mount与umount(挂载与解挂载)
使用挂载可以将完成格式化的磁盘分区挂载在Linux目录下进行使用,Linux系统中的数据是记录在硬盘当中的,也就是说,当接触挂载后,目录下的储存数据也随之消失,当再次挂载后将重新出现.命令格式:
mount 磁盘分区 挂载点
umount 挂载点或磁盘分区
mount指令可以通过选项控制挂载后的磁盘为只读或读写状态(默认可读可写)
- -o ro:用只读模式挂上。
- -o rw:用可读写模式挂上。
LVM(逻辑卷管理)
Logical Volume Manager,中文名为逻辑卷管理,是一种方便的磁盘分区管理机制。与一般的磁盘分区管理区别在于,LVM可以方便在不停机的状况下,对各个分区调整大小。同时也可以通过将多个小物理磁盘整合成为一个大的逻辑分区,从而突破物理磁盘的大小限制,储存更大的数据块。
具体创建逻辑卷的方式可看下述文章:
逻辑卷创建的相关命令如下。
| 功能 | pv(物理卷) | vg(卷组) | lv(逻辑卷) |
|---|---|---|---|
| scan | pvscan | vgscan | lvscan |
| create | pvcreate | vgcreate | lvcreate |
| display | pvdisplay | vgdisplay | lvdisplay |
| remove | pvremove | vgremove | lvremove |
| extend | vgextend | lvextend | |
| reduce | vgreduce | lvreduce |
逻辑卷的创建顺序为:
要删除一个物理卷,首先需要将相应的逻辑卷和卷组删除才可以删除。但是这样操作会导致储存在逻辑卷中的数据丢失,所以在进行删除逻辑卷操作时应该谨慎。
du(显示目录或文件的大小)
du:disk usage,会显示指定的目录或文件所占用的磁盘空间。du选项显示的不是所占的实际大小。而是所占的块大小,一块为4KB,当文件所占大小小于4KB时,du命令所显示的大小4KB,既du所显示大小均为4KB的倍数。

du命令格式如下:
du -[选项] [目标文件或目录]
常见选项:
- -a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
- -h:以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
- -s(--summarize):只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
- --max-depth=n (-d 1):最大显示到第n层
- --exclude 不计入统计
其中a与s选项不能同时使用。
用户与组管理
用户管理是Linux系统管理中的重要一环,初学Linux系统时,为方便操作,往往都是通过root用户进行相关操作,但是在实际生产环境中,由于root用户权限过大,往往给普通员工使用的往往不是root用户,而是具有一定权限的普通用户。通过用户的权限配置与目录的权限配置,可以使得Linux系统与文件安全得到保证。这里仅列出相关的操作方式,具体的用户权限管理配置需要长久的工作经验才能具体掌握。
useradd(添加用户)
useradd,即添加用户,是用户管理的基础命令。命令格式:
useradd [选项] 用户名
常用选项:
- -u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
- -d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
- -e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
- -g:指定用户的基本组名(或使用 GID 号)。
- -G:指定用户的附加组名(或使用 GID 号)。
- -M:不建立家目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
- -s:指定用户的shell环境 Shell
需要注意的是-s选项,当指定的家目录为/sbin/nologin,代表用户不可以登陆,这个常见于程序用户的创建,当在Linux系统的使用中,常常会安装各种程序,比如mysql、bind(dns解析服务)这些程序在安装的过程当中,会创建一个不登录的程序用户,用于管理应用。
用户的配置文件在文件 /etc/passwd中,该文件储存了所有用户的配置文件。查看该文件的内容。

该文件中的每条记录共有7段,并用冒号隔开。以named用户记录为例
- named:用户名称
- x:密码占位符
- 25:用户uid
- 25:用户组id
- named:备注信息描述
- /var/named:家目录
- /sbin/nologin:该用户的登陆shell。(nologin代表该用户无法登录,普通用户使用/bin/bash,一般的shell环境)
passwd(设置密码)
passwd:password,该命令可以为用户添加密码。命令格式:
passwd [选项] 用户名
常用选项:
- -d:清空指定用户的密码,仅使用用户名即可登录系统。
- -l:锁定用户账户。
- -S:查看用户账户的状态(是否被锁定)。
- -u:解锁用户账户。
usermod (修改用户账号属性)
usermod,用于修改已有账户的属性。命令格式:
usermod [选项] 用户名
常用选项:
- -l 更改用户账号的登录名称(Login Name)
- -L 锁定用户账户
- -u 修改用户的 UID 号
- -U 解锁锁用户账户
- -d:修改用户的宿主目录位置。
- -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
- -g:修改用户的基本组名(或使用 GID 号)
- -G:修改用户的附加组名(或使用 GID 号)
- -s:指定用户的登录 Shell
userdel(删除用户)
userdel:user delete,删除用户。 命令格式:
userdel [选项] 用户
该命令所需要知道一个选项是-r,该选项会同时删除该用户的加目录文件,即删除该用户的时候同时删除该用户的对应配置文件。
groupadd(添加组)
groupadd 命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
相关文件:
/etc/group 组账户信息。
/etc/gshadow 安全组账户信息。
/etc/login.defs Shadow密码套件配置。
命令格式:
groupadd [选项] 组名
常用选项:
- -g:指定新建工作组的 id;
- -r:创建系统工作组,系统工作组的组ID小于 500;
- -K:覆盖配置文件 "/ect/login.defs";
- -o:允许添加组 ID 号不唯一的工作组。
groupdel(删除组)
Linux groupdel命令用于删除群组。
需要从系统上删除群组时,可用groupdel(group delete)指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
命令格式:
groupdel [群组名称]
权限控制
chown(更改文件所有用户与关联组)
chown::change owner,改变拥有者,只有超级用户和属于组的文件所有者才能变更文件关联组。该命令支持通配符,命令格式:
chown [选项] 用户[:组名] 文件
常用选项:
- -R : 处理指定目录以及其子目录下的所有文件
chomod(更改文件的权限)
chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。
文件的权限分为三类,对拥有者,对组和对其他用户,有三种基本权限,读(R:read)写(W:write)执行(X:Execute)。


图源:菜鸟教程
对权限的设置最常使用的是八进制语法。
| 二进制 | 十进制 | 权限(rwx表示) | 权限 |
|---|---|---|---|
| 111 | 7 | rwx | 读 + 写 + 执行 |
| 110 | 6 | rw- | 读 + 写 |
| 101 | 5 | r-x | 读 + 执行 |
| 100 | 4 | r-- | 只读 |
| 011 | 3 | -wx | 写 + 执行 |
| 010 | 2 | -w- | 只写 |
| 001 | 1 | --x | 只执行 |
| 000 | 0 | --- | 无 |
例如,765 将这样解释:
所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。即所有者对该文件有读写执行权限。
用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。该用户组对该文件具有读写权限。
其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。其他用户对该文件具有读和执行权限。
命令格式:
chmod -权限 文件
常用选项:
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
该命令还可以指定修改对应用户与组的权限,但用的不多,所以在这里就不介绍了。

浙公网安备 33010602011771号