linux常用命令精讲 理论

一、Shell

1、Linux系统中运行的—种特殊程序
2、在用户和内核之间充当"翻译官"
3、用户登录Linux系统时,自动加载一个Shell程序
4、Bash是Linux系统中默认使用的Shell程序
文件位于/bin/bash
在这里插入图片描述

二、Linux命令的分类

(一)、内部命令与外部命令的区别

内部命令 外部命令
集成于Shel解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分 属于Shel1解释器程序之外的命令
没有单独对应的系统文件 每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用 必须知道其对应的文件位置,由Shel1加载后才能执行 /bin,/usr/bin,/usr/local/bin等

三、Linux命令行

(一)、通用的命令行使用格式

命令字 [选项] [ 参数 ] (英文字符区分大小写)
操作 功能 要执行的对象

1、命令字
是整条命令中最关键的一部分
唯一确定一条命令

2、选项

短格式选项:使用 “-” 符号引导 (多个单字符选项可以组合在一起使用)
长格式选项:使用 “–” 符号引导
3、参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个

(二)、编辑Linux命令行

编辑Linux命令行的辅助操作

Tab键:自动补齐 (按两下可以查询所有相同字母的命令)
反斜杠"\":强制换行
Ctrl+ U组合键:清空至行首
Ctrl+K组合键:清空至行尾
Ctrl+ L组合键:清屏
Ctrl+ C组合键:取消本次命令编辑
Ctrl + a组合键:切换到行首
Ctrl+ e组合键:切换到行尾
Ctrl+w组合键:撤回至空格前

(三)、获得命令帮助的方法

1、内部命令help
查看Shell内部命令的帮助信息
2、命令的"–help"选项
适用于大多数Linux外部命令
3、使用man命令阅读手册页
使用“上、下”(ENTER)方向键滚动一行文本
使用Page Up和 Page Down (空格) 键翻页
按Q或q键退出阅读环境
按"/"键查找内容, n键向下查找, N键向上查找

四、基础命令

(一)、查看当前的工作目录:pwd

显示用户当前所在的工作目录位置

(二)、切换工作目录:cd

将用户的工作目录更改到其他位置

格式 说明
cd目标位置 切换到目标位置
cd~ 若不指定目标位置,切换到当前用户的宿主目录
cd 若不指定目标位置,切换到当前用户的宿主目录
cd - 切换到上一次执行cd命令之前所在的目录

(三)、相对路径的表现形式

表现形式 说明 示例
直接使用目录名或文件名 表示当前工作目录中的子目录、文件的位置 rub.conf
以一个点号"."开头 表示以当前的工作目录作为起点 ./grub.conf
以两个点号". ."开头 表示以当前目录的上一级目录(父目录)作为起点 . . /mlinuz
以“~用户名”形式开头 表示以指定用户的宿主目录作为起点 ~teacher
以"~" 形式开头 表示以当前用户的宿主目录作为起点 ~

举例:假如你当前所在位置为zhangsan 的家目录,请用绝对路径和相对路径两种方式切换到 /opt 目录中。
绝对路径:cd  /opt
相对路径:cd  /…/…/opt

(四)、列表显示目录内容-ls

1、显示目录中内容,包括子目录和文件相关属性信息
ls [选项] [文件或目录 ]

2、常用选项
== -l、-a、-A、-d、 -h、-R、 --color==

3、结合通配符
“?”:代表任意一个字符,且至少1个
“*”:代表任意数个字符,可以是0个或者1个或者多个
“[]”:表示可以匹配字符组中的任意一个字符[abc]、[a-f]

4、ls的常用选项:
-l:以长格式(Long)显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。ll命令与ls -l功能相同

-a:显示所有(All)子目录和文件的信息,包括名称以点号"."开头的隐藏目录和隐藏文件。

-A:与-a选项的作用基本类似,但有两个特殊隐藏目录不会显示,即表示当前目录的".“和表示父目录的”…"

-d:显示目录(Directory)本身的属性,而不是显示目录中的内容。

-h:以更人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节(B),使用-h选项后将显示为KB,MB等单位。此选项需要结合-l选项一起使用。

-R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容

–color:在字符模式中以颜色区分不同的文件。默认已开启
通常情况下,深蓝色表示目录, 白色表示一般文件,绿色表示可执行的文件,黄色表示设备文件,红色表示压缩文件,淡蓝色表示软连接文件。

-i:显示文件和目录的inode号。

5、用ls -l命令查看某一个目录会得到一个7个字段的列表

-rwxrwxr--   1 root root 762 07-29 18:19 exit

第一个字符代表文件的型:
"-"表示该文件是一个普通文件
"a"表示该文件是一个目录
"l"表示该文件是一个软链接文件。类似于windows下的快捷方式

第1字符的后面9个字母表示该文件或目录的权限位:
r表是读(查看、下载)、w表示写(添加、更改、删除、上传)、x表示执行(运行文件、切换目录)
其中前三个表示文件拥有者(属主)的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。
第2字段:文件硬链接数
如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数
如果是一个目录,则第2字段表示该目录所含子目录的个数。
如果新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录。
第3字段:文件\目录拥有者
第4字段:文件\目录拥有者所在的组
第5字段:文件所占用的空间(默认以字节为单位如果是一个目录,则表示该目录的大小,而不是目录以及它下面的文件的总大小。Linux系统中一切皆文件,因此目录也是一种文件
第6字段:文件\目录最近访问或修改时间
第7字段:文件名
如果是一个符号链接(软链接文件) ,那么会有一个“->"箭头符号,后面根一个它指向的文件名

(五)、设置别名-alias

1、通过别名机制简化常用的、比较长的命令
alias 命令别名=‘命令’ ( "="两边不能有空格)
通过别名机制简化常用的、比较长的命令

alias + 命令别名=‘命令’ (“=”两边不能有空格)

例如alias viens=‘vim /etc/sysconfig/network-scripts/ifcfg-ens33’

输完上面的命令后,每次改ens33网卡配置的时候就可以直接输入viens
如果不想使用了,要取消别名就需要unalias,别名取消后,用type也找不到了
示例:
设置myls为ls-alh的别名

alias myls='ls-alh'     #别名是myls

2、取消别名

 unalias  命令别名

(六)、统计目录及文件空间占用情况-du

1、统计指定目录(或文件)所占用磁盘空间的大小
du [选项] [文件或目录…]
2、常用选项

选项 说明
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s 只统计所占用空间总的大小,而不是统计每个子目录、文件的大小
- -max-depth=n 统计所有小于等于第n层的目录的总大小

选项-a和-s不可同时使用

-a和-s不能同时使用是因为都统计本目录的大小,同时使用会有冲突。

3、统计出/var/log目录中子目录的大小

du  -h --max-depth=1 /var/log

(七)、创建新目录-mkdir

1、创建新的空目录

mkdir  选项  目录位置及名称     #-p:一次性创建嵌套的多层目录

2、示例
在当前目录下创建名为public-html的子目录

  mkdir  public_html

创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc

mkdir -p /aa/bb/cc

举例:

在这里插入图片描述

(八)、创建空文件-touch命令

1、更新文件的时间标记
2、经常用于创建多个新的空文件

touch  文件

示例
创建两个空文件,文件名分别为aa.txt和bb.txt

touch aa.txt bb.txt
或
touch  {aa,bb}.txt

{aa,bb}的作用是同时创建两个文件aa和bb,如果{,cc}表示的是创建一个空文件和一个cc文件
在这里插入图片描述

(九)、创建链接文件 -ln

1、为文件或目录建立链接文件,类似于Windows系统的快捷方式
2、链接文件类型
软链接(又称为符号链接)
硬链接

ln  -s  源文件或目录   链接文件或目标位置    #创建软链接

示例:
在这里插入图片描述

注意:创建源文件一定要用绝对路径,否则在目录中找不到
在这里插入图片描述

将BB文件移动到 /tmp文件下
在这里插入图片描述

3、软硬链接的区别:
在Linux中,文件名文件的数据 是分开存储的
提示:
在Linux中,只有文件的硬链接数==0才会被删除。
使用 ls -l 可以查看一个文件的硬链接的数量
在日常工作中,几乎不会建立文件的硬链接,知道即可
在这里插入图片描述

当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有文件名;但是删除一个文件名,不影响别的文件名的访问。删除一个文件名,只会使得"硬链接数"减1。
需要注意的是不能对目录做硬链接。在日常工作中几乎不会建立文件的硬链接。

(十)、复制文件或目录-cp

1、将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录

cp 选项  源文件或目录   目标文件或目录

2、常用选项
** -f、-i、 -p、 -r**

cp的常用选项:
-f:覆盖目标同名文件或目录时不进行提醒,而直接强制复制。
-i:覆盖目标同名文件或目录时提醒用户确认。
-p:复制时保持源文件的权限、属主及时间标记等属性不变。
-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录。

注:复制多个文件或目录时, 目标位置必须是目录,且目标目录必须已存在

文件备份:
方法一:cp /etc/host.conf /etc/host.conf.bak (其中的 .conf 是配置文件)
方法二:cp host.conf{,.bak}

mkdir yum bak.
cp -r /etc/yum.repos.d/ /etc/yum.conf yum bak/

(十一)、删除文件或目录-rm 谨慎使用此命令!

1、删除指定的文件或目录

rm  选项  要删除的文件或目录

2、常用选项
-f、-i、 -r
3、示例

rm  -rf  abc01
rm  -i   abc01

rm的常用选项:
-f:删除文件或目录时不进行提醒,而直接强制删除。
-i:删除文件或目录时提醒用户确认。(y表示删除, n表示不删除)
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)

注:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。

rm -rf /etc/yum.repos.d/*
建议进入目录后再删除,如下:
cd /etc/yum. repos.d/
rm -rf ./*
删除目录下文件时建议最好先切换到目录下再执行rm -rf 命令

(十二)、移动文件或目录 -mv

1、将指定的文件或目录转移位置
2、如果目标位置与源位置相同,则相当于执行重命名操作

mv  选项  源文件或目录  目标文件或目录

示例:
在这里插入图片描述

mv命令只能对单个文件重命名,可使用rename命令批量修改文件名
rename 旧字符 新字符 目标文件

例:
在这里插入图片描述

(十三)、查找命令文件存放目录 -which

1、搜索范围由环境变量PATH决定(echo $PATH)

which  命令或程序名      #默认当找到第一个目标后不再继续查找

which -a 命令或程序名    #在所有搜索路径中查找

2、示例

which  ls
which  history

使用which查找内部命令时,将找不到对应的程序
type和which都可以用来查找文件存放目录
在这里插入图片描述

(十四)、查找文件或目录 -find

1、采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找

find  查找范围   查找条件表达式

2、常用查找条件类型

查找类型 关键字 说明
按名称查找 -name 根据目标文件的名称进行查找,允许使用"*“及”?"通配符
按文件大小查找 -size 根据目标文件的大小进行查找;一般使用"+"、"-"号设置超过或小于指定的大小作为查找条件;常用的容量单位包括kB (注意k是小写) 、MB,GB
按文件属主查找 -user 根据文件是否属于目标用户进行查找
按文件类型查找 -type 根据文件类型进行查找;文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件©等;块设备文件(b) :成块读取数据的设备(硬盘,内存,光驱);字符设备文件© :按单个字符读取数据的设备(键盘,鼠标)

3、使用find命令实现多个查找条件
各表达式之间使用逻辑运算符
"-a"表示而且(and)
"-o"表示或者(or)
示例:

find  /boot -size +1024k -a  name  "*.repo"
find /boot -size +1024k -o -name "*.repo"

在这里插入图片描述

4、find之-exec用法
-exec参数后面跟的是Linux命令,它是以分号";“为结束标志,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符”"。
{}代表前面find查找出来的文件名。

find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用 Is-l 命令将它们列出

find ./ -type f -exec Is -l {} \;

五、总结起来就是下面增、删、改、查 四步

1、查看及切换目录(pwd,cd,Is,du)
2、创建目录和文件(mkdir, touch, In)
3、复制、删除、移动目录和文件(cp,rm,mv)
4、查找目录和文件(which、 find)

六、Linux基本操作命令补充

命令行提示字符

[root@localhost ~]#
[当前登录系统的用户@主机名称 当前所在的目录]#
 # 表示为管理员登录
 $ 表示为普通用户登录

切换用户

su 用户名		#切换后所在目录不变
su - 用户名		#切换后所在目录变成用户目录

查看当前主机的完整名称

hostname

临时设置主机名

hostname 主机名

永久设置主机名

hostnamectl set-hostname 主机名

vim  /etc/hostname(设置完后需重启系统才生效)
按i键先删除旧主机名,再输入新主机名(只有第一行有效)
按ESC键,再按SHIFT + “:” 组合键,输入 wq ,再按回车键退出

查看当前系统版本信息

cat /etc/redhat-release
或
cat /etc/*release

查看当前内核版本

uname  -r

临时修改网卡IP

ifconfig ens33 192.168.80.3/24
或
ifconfig ens33 192.168.80.3 netmask 255.255.255.0

永久修改网卡IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet			#设置网卡类型,“Ethernet”表示以太网
DEVICE=ens33			#设置网卡的名称
ONBOOT=yes				#设置网卡是否在 Linux 操作系统启动时激活
BOOTPROTO=static		#设置网卡的配置方式,“static”表示使用静态IP地址,“dhcp”时表示动态获取地址
IPADDR=192.168.80.3		#设置网卡的 IP 地址
NETMASK=255.255.255.0	#设置网卡的子网掩码
GATEWAY=192.168.80.2	#设置网卡的默认网关地址
DNS1=192.168.80.2		#设置DNS服务器的 IP 地址

重启网卡

systemctl restart network		#重启所有的网卡
ifdown ens33 ; ifup ens33
ifdown ens33					#关闭某个网卡
ifup ens33						#启动某个网卡
ifconfig ens33 down				#临时禁用某个网卡
ifconfig ens33 up				#重新激活某个网卡(不会更新IP地址)

查看网卡地址

ifconfig
或
ip a

添加静态路由条目
临时添加路由(重启network服务失效)
方法一:

route add -net 192.168.3.0/24 gw 192.168.8.2 [dev ens33]
-net:指定目标网段的地址
gw:指定下一跳路由器的 IP 地址

查看路由表条目

route -n

删除静态路由条目

route del -net 192.168.3.0/24

方法二:

ip route add 192.168.15.0/24 via 192.168.80.2 [dev ens33]

永久添加路由(重启network服务生效)
方法一:

vim  /etc/sysconfig/static-routes
any net any gw 192.168.80.2
any net 192.168.3.0/24 gw 192.168.80.2
any net 10.0.0.0 netmask 255.0.0.0 gw 192.168.80.2
any host 192.168.100.100 gw 192.168.80.2

systemctl restart network

方法二:

vim /etc/sysconfig/network-scripts/route-ens33
default via 192.168.80.2 dev ens33		#默认路由,另一种格式 0.0.0.0/0 192.168.14.254 dev ens33
10.211.6.0/24 via 192.168.80.2 dev ens33
192.168.100.200  via 192.168.14.254 dev ens33

systemctl restart network

测试网络连接

ping 
traceroute	(静态跟踪)
mtr			(动态跟踪)

重启系统

reboot		
init 6
shutdown -r now

关机

poweroff
shutdown -h now
init 0

小知识:
给命令行提示字符加颜色

PS1="\[\e[1;36m\][\u@\h \W]\\$\[\e[0m\]"
/etc/resolv.conf

是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名。最多可以指定3个不同的DNS服务器地址,优先使用第一个 DNS 服务器。对该文件所做的修改将会立刻生效。
nameserver 192.168.80.2 #定义DNS服务器的IP地址

注意:此配置文件与网卡配置文件的DNS1参数作用相同,哪个最后修改或重启,系统就使用哪个配置。

查看内部命令:

help
enable
type      命令

禁用内部命令:

enable -n   命令

获得命令帮助的方法
1、内部命令help
查看Shell内部命令的帮助信息
2、命令的"–help"选项
适用于大多数Linux外部命令
3、使用man命令阅读手册页
使用“上、下”(ENTER)方向键滚动一行文本
使用Page Up和 Page Down (空格) 键翻页
按Q或q键退出阅读环境
按"/"键查找内容, n键向下查找, N键向上查找

文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区" (sector) ,每个扇区存储512字节。
一般连续八个扇区组成一个"块" (block) ,一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。
文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。因此,一个文件必须占用一个inode,并且至少占用一个block.
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode
号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode
号码对应一个文件名。
所以, 当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode,看该用户是否具有访问这个文件的权限。如果有,就指向相对应的数据block.

猜你喜欢

转载自blog.csdn.net/Gengchenchen/article/details/109765867