Linux基础命令

作为工作当中所需要大量接触的Linux系统,网上相关教程已不计其数,但从未系统学习过,仅仅作为会使用,遇到相关问题可通过百度搜索解决的地步。本篇文章将作为个人学习笔记,使用Xshell连接虚拟机,基于刘瑞老师的《Linux就该这么学》与菜鸟教程的Linux篇进行学习与巩固,以达温顾知新之效。
菜鸟教程Linux篇
Linux就该这么学

Linux基础命令

Linux系统通过shell这一命令行工具,充当用户与系统内核之间翻译官,帮助系统执行用户所需完成的命令。常见的Linux命令的格式如下,灵活使用TAB键可大幅提升敲命令的速度:

命令名称 [命令参数] [命令对象]

帮助

在工作当中,数量庞大的Linux命令,总是令人头疼,在日常的学习工作当中,遇到不会不懂的东西,可以方便的使用百度解决。但是在客户现场时,特别是当着客户面的时候,当面百度不免显得不专业,此时能够熟练运用Linux系统中自带的小抄(帮助文档),便可以化险为夷。这是在英语能力过关的情况下,如果英语水平不佳,就别死要面子活受罪了,能百度就百度吧,能解决问题要紧。

man命令

man:Manual,使用手册,在命令终端中输入:

man [需要查询的命令]

在终端中使用man查询man本身的帮助文档效果如下:

[root@localhost ~]# man man

image
如图所示,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

image

自然也是英文的。

TAB键

在Linux系统中TAB键是相当重要的键位,它是Bash解释器中补全键位。使用TAB键后,能够实现对命令、参数或文件的内容补全。如输入mkdi后使用TAB键,它会列出所有mkdi开头的指令(如果符合条件命令仅有一个,它会在已输入的指令后补全):

点击查看代码
[root@localhost ~]# mkdi <TAB> <TAB>
mkdict  mkdir   
熟练使用TAB键位,即节省了时间,也可以避免由于指令过长导致的输入错误。

目录与文件

cd(打开目录)

cd:Change directory,改变目录。该指令用于打开指定目录,相当于Windows系统中的双击文件夹,其指令格式如下:

cd [路径]

该命令本身并没有多少需要说的,需要了解的是路径的书写,Linux系统中的路径分为两种绝对路径与相对路径,绝对路径是基于根目录的地址,相对路径是基于当前路径的地址。
用现实地址来比喻:加入你的左边有个肯德基,对另一个人描述这个肯德基的位置,这个"肯德基的位置在我的左边",这个就是肯德基的相对位置,当你离开当前位置时,在往左边找就不是肯德基了。但通过经纬度描述这个肯德基的位置,无论你本人如何移动,始终可以通过经纬度定位到当时你左边的肯德基,经纬度就是这个肯德基的绝对位置。

常用的cd命令效果如下:

命令 效果
cd 切换到当前用户家目录
cd ~ 切换到当前用户家目录
cd - 到前一次目录
cd ./ 当前目录
cd ../ 到上一级目录(通过复用可到达上上级目录)
cd ~用户名 到指定用户家目录

pwd(打印当前路径)

pwd:print work directory,打印当前目录。显示出当前工作目录的绝对路径。
使用效果如下:

image

ls(展示指定路径下的所有文件)

ls:List files,对文件列表。该指令用于展示对应路径下的文件,路径即可以使用相对路径,也可以使用绝对路径。
该指令使用方法:

ls [选项] [路径]

该指令可用选项如下:

选项 文件或目录
-l 以长格式显示文件和目录列表
-a 显示全部包括隐藏文件
-A 显示全部问价或隐藏文件,但不包括当前文件夹和
-d 仅列出目录本身,不列目录内的文件
-h 人性化显示(显示文件大小)
-R 递归显示目录和该目录下的所有文件
-color 显示颜色
-S 以文件容量大小排序
-i 显示indoe号

ls命令使用后,不同的文件呈现的颜色不同,如图

image

由于linux系统中万物皆文件的特性,ls后不同颜色的文件代表着不同类型的文件,常见颜色与文件类型对应关系如下:

颜色 文件类型
黑色 普通文件
绿色 可执行文件
黄色 块设备文件
红色 压缩包
蓝色 文件夹
天蓝色 软连接

mkdir (创建目录)

mkdir:Make directory,创建目录,与windows右键新建文件夹功能类似,命令格式如下:

mkdir [选项] [目录位置与名称]

目录位置可用绝对路径,也可用相对路径。
可以同时创建多个目录。

image

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

image

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 文件

image

进入VIM编辑器后,为默认的命令模式,使用i命令可进入编辑模式,使用esc :wq,可以保存编辑内容并退出VIM编辑器。使用:q!可以强制退出不保存

对于VIM的使用。可以通过vimtutor获取VIM的训练模式。(建议系统环境使用中文,训练模式中的对应教程即可变为中文)

image

磁盘管理

fdisk(磁盘分区)

fdisk,是linux中一款磁盘分区工具,当添加新磁盘后,可通过该命令对新磁盘进行分区,并使用。命令格式:

fdisk 设备 [选项]

该命令的具体使用可看该链接学习使用。
硬盘分区

lsblk(查看硬盘分区信息)

lsblk命令可以用于查看硬盘的分区信息、大小挂载点等信息。

image

mkfs(文件系统格式化)

mkfs:make file system,用于在特定的磁盘分区上建立Linux系统的文件系统,命令格式:

mkfs.文件格式 磁盘分区

使用指令mkfs.<TAB><TAB>可以查看该指令所支持的所有文件系统格式。

image

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

逻辑卷的创建顺序为:

graph TD A[创建物理卷] --> B[创建卷组] B --> C[创建逻辑卷]

要删除一个物理卷,首先需要将相应的逻辑卷和卷组删除才可以删除。但是这样操作会导致储存在逻辑卷中的数据丢失,所以在进行删除逻辑卷操作时应该谨慎。

du(显示目录或文件的大小)

du:disk usage,会显示指定的目录或文件所占用的磁盘空间。du选项显示的不是所占的实际大小。而是所占的块大小,一块为4KB,当文件所占大小小于4KB时,du命令所显示的大小4KB,既du所显示大小均为4KB的倍数。

image

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中,该文件储存了所有用户的配置文件。查看该文件的内容。

image

该文件中的每条记录共有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)。
image

image

图源:菜鸟教程

对权限的设置最常使用的是八进制语法。

二进制 十进制 权限(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 : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

该命令还可以指定修改对应用户与组的权限,但用的不多,所以在这里就不介绍了。

posted @ 2022-03-13 10:55  残-云  阅读(155)  评论(0)    收藏  举报