linux 基本知识与命令

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: linux 基本知识与命令

一,liunx 优势

1,一切都是一个文件。容易看(包括硬件,文本,二进制,源代码)

2,系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)

3,当遇到复杂任务,通过不同功能用途的程序组合起来完成。    轻量级,一台服务 dhcp ip  数据库服务  网页

4,避免令人困惑的用户界面就是没有复杂的图形界面。

5,不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。

二,基础知识

                    用户名                                     主机名                  当前所在文件夹       $   普通用户  

                                                                                                                                 #   管理员用户

三, /  下的常用文件夹

文件夹名 解释
etc 放配置文件的 (用户信息,密码信息,软件配置)
dev 放硬件设备 (磁盘,光驱,输入设备 输出设备 )
boot 开机启动需要的文件 操作系统作重要的是内核文件,内核在boot文件夹中
opt 空文件夹  存放后天安装的软件
mnt 挂载点  空文件夹
home

存放家目录的地方,家目录的上级目录

家目录:每一个用户都会有一个家目录,及个性化配置存放用户的基本信息,存放用户自己的文档使用

注意:①一旦你建立了一个用户,会有用户名字的家目录诞生

②超级管理员的家目录在/下的root里

lib/lib64

lib :被调佣的库 32位操作系统使用

lib64 :被调佣的库64位操作系统使用

注意:现在操作系统基本不会出现32位,因为32位最大只支持4G内存

bin 存放二进制文件的地方,二进制文件电脑可以直接运行
proc 内存环境中的 程序状态 (像windos的进程表)
usr 小根 /
tmp 临时文件
var 子目录

四,shell 介绍

(一)shell 是什么

shell 是程序 程序是执行特定任务的一串代码

(二)shell 干什么

shell 执行 翻译的任务。

因为电脑只知道0 1 ,shell 将人类使用的高级语言翻译成二进制交给操作系统的核心(内核)

操作系统也是程序,管理调用硬件。

(三)shell 种类

linux 用户 一旦登录系统必须加载一个翻译官,即shell程序。

centos7 默认的shell 是 /bin/bash, 因为功能比较齐全,下面都是shell

(四)shell 常用命令

1,[root@localhost ~]# echo $SHELL                         显示当前shell

2,[root@localhost ~]# cat /etc/shells                         显示当前系统所有使用的shell

3,[root@localhost mnt]# sh                                        切换shell环境

4,[root@localhost mnt]# pstree                                  查看使用过的shell环境

五,命令

(一)命令含义

比如 ls   命令,是由代码构成的,执行的任务是   显示当前文件夹的所有文件

即ls 就是一个程序

命令的本质就是程序,所有的命令都是程序。

(二)linux  命令的分类

内部命令:内部命令是 /bin/bash 一部分,只要登录系统,内部命令就直接运行在内存中了

外部命令 :是后装的

type 命令 :查看是内部还是外部命令

(三)为什么外部命令 ls 不需要写完全部路径

1,你和系统做了一个约定,有5个特殊文件夹。如果外部命令在这5个特殊文件夹里,就可以直接写程序的名字,不用关注文件的具体位置

以上为5个特殊文件夹

2,如果程序不在这规定的5个文件夹,就需要将程序的位置写完整(从根  开始描述程序的位置)

3,有些命令既是内部命令又是外部命令:

因为shell种类不同,内部命令不一样。便把重要的又可能漏的命令变成外部命令

(四)命令的执行过程

1,首先判断内部还是外部,

2,如果是内部,直接执行

3,如果是外部命令,先看hash缓存空间是否有,如果有,按照缓存空间中的位置执行,如果缓存位置中没有找到,直接报错

4,如果第一次执行,去看那5个文件夹是否有,有直接执行,没有,报错命令不存在

注意:

我打一个命令,提示命令不存在是什么原因?

1,命令打错了

2,命令没有安装

3,命令不在规定的路径下

4,运行过命令,但是命令的位置发生改变了  (不在缓存表)

(五)命令的格式

命令 空格【选项】 空格 【对象】

选项 就是 修饰命令 (添加额外命令)

对象 就是 对谁做(文件 文件夹 用户名)    【】可省略 省略对象 就是当前对象

1,选项格式

①一个短 - 加字母

②两个短-- 加单词

③命令+子命令+子命令。。。。。。

2,对象格式

对象 就是 对谁做(文件 文件夹 用户名)

3,特殊情况

①一个命令可以跟多个选项,一般来说选项没有顺序要求

②  选项 放在对象后面也可以

③ 如果想并行执行多条命令 用;隔开

以上就有三个命令

(六)编辑linux 命令的辅助操作

tab:如果唯一 自动补全 如果不唯一,按两次显示所有可能

Ctrl+u: 清空这一行

Ctrl+a 光标跳到第一个

Ctrl+k 删除光标之后

Ctrl+c 停止

Ctrl+l 清屏

上下键:回看命令

Ctrl+r 输入关键字查询命令,回车执行,左键显示出来

\    调整格式   强制换行

备注: \  的作用:用在很长的代码上,让你看的更清楚

cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DSYSCONFIDIR=/etc -DMYSQL_DATADIR=/home/mysql/ -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock

可以写成

cmake  \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DSYSCONFIDIR=/etc \

-DMYSQL_DATADIR=/home/mysql/ \

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock

(七)获得命令帮助的方法

1,内部命令用  help

    格式:help 命令

2,外部命令用   --help

    格式:命令 --help    

     适用于大多数linux外部命令

3,使用man 命令   阅读手册页

①man 区段

man分九个章节默认打开第一章节

②使用方法

man 5 passwd    :显示passwd文件的结构

③使用man 命令后,如何阅读手册

六,基础命令

(一)pwd

pwd 显示当前所在目录的完整路径

(二)cd

cd 切换目录(文件夹)

1,路径分类(路径:描述文件在系统中的位置 )

绝对路径 从/开始 描述文件的位置 有且唯一   无论在哪里都可以准确找到某一个文件

相对路径 从当前的位置开始 描述文件的位置 有可能不唯一    如果参照物变了,就找不到文件

所以,处理文件(复制 移动 改名)之前,先清楚文件在那个位置(pwd)

2,相对路径的表现形式

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

3,cd  格式

cd ~ 切换到当前用户的家目录

cd 什么也不加 也是切换到当前用户的家目录

cd - 只能切到上次的文件夹(切换一次,来回切换)

(三)  ls  列表

显示当前文件夹下的所有文件

生产环境中慎重直接使用,文件量过大会直接死机(有的服务器上的文件是千万级别)

1,ls 格式

①   ls -l       (ll)

长格式显示,显示详细信息

 我们拆开来看

d              rwxr-xr-x.         2               root          root           6             12月 19 14:56          3

文件属性    权限       硬连接个数    文件主人     属组     文件大小           文件时间        文件名

②     ls -d    

只显示文件夹,不显示文件夹(目录)下的文件

③      ls -a      

显示隐藏文件    

              .开头都是隐藏文件 heip 里面ls-a 显示所有 包括隐藏文件

④       ls -A      

显示隐藏文件    不包括. 和..

⑤       ls -R      

递归显示        显示该目录及该目录的子目录下的所有内容

⑥       ls -r      

倒序显示

⑦        ls -t      

时间排序

          例如,ls -rt    倒序显示,时间最近在最前面

⑧      ls -S      

文件大小排序

⑨       ls -i        

显示文件的inode号   (可以理解为文件的身份证号,唯一)

stat  也可以

⑩       ls -h      

人性化显示加单位    就是加单位

⑪         ls --color  

显示颜色

     

颜色 文件类型
数据文件  普通文件
绿 可执行文件
块设备文件   硬件设备(硬盘)
压缩包
文件夹
天蓝 连接方式(快捷方式)

2,liunx 7大文件属性 (ls-l  看的)

①d       目录

②-        普通文件  文本    包括纯文本文件、二进制文件、各种压缩文件等。

③c       字符设备  一次只能录入一个字符  (键盘)

④b       块设备    (硬盘)读写文件的时候  是一整块一整块的读和写,就是保存大块数据的设备,比如最常见的硬盘。

⑤s       套接字      (IP  端口号)  传递消息

           套接字作用:

                              1,两台主机通讯

                              2,系统程序交换信息

通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。

⑥p       管道符     数据只能沿着一个方向传输    linux命令中  丨  (这是竖)代表管道符

           管道符作用:

           系统程序交换信息,但是管道符单向

其主要作用是解决多个程序同时存取一个文件所造成的错误。

⑦l  (这是L)   软连接     (快捷方式)

(四)  通配符

1,通配符定义:

有些符号不表示原来的意思 ,它代表了一类字符

2,通配符作用:

通配符匹配文件的名字

正则表达式匹配 文件里面的内容

3,常用通配符

①     ?   指任意一个字符

②   *  代表任意长度的字符,不能显示隐藏文件

{1..10} 从1到10

字母也可以{a..z} 从a 到z

[123] 代表 1, 2,3 里面任意一个

[0-9] 代表单个数字

           比如列出数字开头的文件:

[0-9] [0-9] 代表两位数

[a-c]  指  a  A  b   B  c  任意一个

[A-c]  指  A  b  B  c       任意一个

因为字母顺序 a A b B c C

⑤  ^  非选   固定格式加框

\    转义,   表示原来的意思

\ * 就是* 序号     不是任意长度的字符

4,通配符用法

(五)设置别名  alias

1, 别名 格式

alias     自定义的命令=‘原始命令’

2,只打别名:  

显示所有别名

3,取消别名:  

unalias   自定义命令

4,别名执行过程

绝对路径>别名>内部命令>hash>外部命令

注意:使用命令alias  建立的别名是临时的,重启就没有了

(六) du  查看磁盘使用量

默认递归,默认隐藏文件也统计,一般用于找大文件夹

1,du  格式

du   选项  文件或目录

2,常用选项

du -a  统计磁盘空间占用时, 包括所有的文件

②  du -h   显示kb

③  du -s   只统计所占空间总的大小,不统计子目录,子文件

注意;a   和    s  不能同时使用

3,du 和ls -l (ll) 都可以看文件大小 有什么区别

du 磁盘使用量 ,看到的是文件占了磁盘多少块(像停车一样,不满一小时按一小时收费 磁盘一块是4k(4096字节) ) 一个文件不足4k按4k算 du一定是4的倍数

ls -l 看到的是文件的真实的大小

问:磁盘空间不够了,如何排查那些文件夹下有那些比较大的文件

答: du -a 一个一个排查,看文件有没有用

问:如何预防磁盘空间

答:建一个空文件,占百分之20,阈值到达80,就会报警。

4,只想看前两层文件夹的磁盘使用量

du  -d2  /etc        (etc不算   etc 下面的子集文件夹,子集文件夹下的子集文件夹)

5,du   --exclude   不计入统计

统计opt文件夹里     除了文件格式是TXT    的所有的文件的计磁盘空间占用

(七)mkdir   创建目录(文件夹)

1,mkdir  格式

mkdir  选项  目录位置及名称

2,mkdir -p  递归建立文件夹

     mkdir  aa  bb  cc   一次性建立三个文件夹

     mkdir  -p  /aa/bb/cc      aa是bb的父系文件夹 bb是cc父系文件夹

3,多建立递归文件夹

(八)touch 建空文件

两种情况

1,文件不存在,创建一个新的 空的 文件

2,文件已存在, 刷新文件时间  

(九)硬连接与软连接

1,软连接

理解为快捷方式,软连接的大小就是路径的大小

软连接注意:删软连接时 文件后不能加 /  会删文件,软连接没删掉

2,硬连接

理解为:文件有多少中叫法 有多少种找到这个文件的办法

硬连接具体含义

首先我们理解一下liunx 是怎么找文件的。文件夹是一个表,类似下面

inode号 文件名 属组 文件主人 格式 权限 大小 时间 硬连接个数
1234 aa
1235 aaa

当用户访问aa时,先进文件夹,通过表,找到inode号,相当于一个指针, inode会指向磁盘上的aa的具体位置,再把aa调出来,加载在内存中。如下图所示

硬连接: 就是多了一条在磁盘中找到他的指针, 即多了一种找到inode号为1234文件的方法。如下图所示:

做硬链接 文件只有一个,多一条找到文件的办法 inode永远不会变,其他也不会变,因为这是一个文件。

硬连接注意事项

A想删除一个文件,硬连接必须为0

B文件夹不能做硬链接(文件夹里面东西很多)但是文件夹的详细信息里,硬连接次数基本都是不止1,因为这个文件夹下面有子文件 子文件用. .. 找文件 子文件越多,硬链接越多

3,硬连接语法

ln  源文件  目的位置    源文件要用绝对路径

硬连接注意 文件夹不能做硬链接

4,软连接语法

ln   -s    源文件  目的位置      源文件要用绝对路径

软连接注意:删软连接时 文件后不能加 /  会删文件,软连接没删掉

5,软连接 硬连接区别

6,软连接现实生活的应用

app 更新为app1 app 之前的软连接叫vx 不会改变用户的使用习惯,还把APP1做软连接叫vx

(十)cp复制  

复制文件或目录

1,cp 格式

cp 源文件 目标位置

2  cp  语法

①    cp  /etc/passwd    /opt/123

复制/下的etc下的passwd     到/下的opt  并改名123

②  复制文件夹一定要加  -r

③  -p -a 保留属性 文件的7个属性  -a 更强大

④  -f

覆盖目标同名文件或者目录时不提醒,直接强制复制

⑤ -u   增备

比如:A文件夹有 1 2 3         B文件夹有1 2

cp -u 跳过1 2 直接复制3

3,cp 相同三次命令,结果不一样

 

4,复制多个文件 目标只能是文件夹

(十一)mv 移动或改名

1,改名:

源文件和目标文件路径位置一样

2,移动:

源文件和目标文件路径位置不一样 ,也可以移动并改名

3,mv  和rename

mv只能一个一个改名字    rename 可以批量改名 有局限 (必须统一后缀的)

(十二) rm-rf 删除

r 递归 f强制

删除文件后空间不释放,是因为别人在用

(十三)shred  安全删除数据

原理:0硬连接的情况下 数据还在磁盘里面 给硬盘不停写0  覆盖整个磁盘

(十三)fls  保存

七,查找文件位置

(一)查找命令文件(外部命令)

比如  ls mkdir cp  等

1,用 which 在5个文件找

2, whereis 找的更多

(二)查找普通文件

1,locate

①优缺点

用locate     优点:快

                   缺点: 偷懒,不是去磁盘上找的,找的数据库,不具备实时性

                               模糊查找,不够精确

不具备实时性:用updatedb 更新一下数据库(最好不用,非常占用性能)

②一般用在 查找老旧文件

2,find(自带递归属性)

①优缺点

缺: 慢 真的去磁盘一块一块的找

优:精确查找,选项多,查找的功能多

②find 通式

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

A     查找范围

不指定范围就是 当前文件夹

B查找条件
a     按名称查找 -name

注意:此处ls 不是命令ls 是处理动作 找到之后干嘛干嘛,默认print 显示

处理动作有 print ls delet 等

b    按文件大小查找 -size

注意:-size  大小 只能表示一个范围  例如:

不加+ -              1024M    M先不看 1024-1 所以在1023M 到1024M 找

                          1G        G 先不看   1-1=0   所以在0到1G找

小于 也是同理

所以查找的单位越小越好 k M G

c      -user   按文件属主查找

      -nouser 无主用户(作用就是清理用户删了,残留的文件)

d     -type   按文件类型查找

注意:   找普通文件 - 变成f

e    -inum   按inode号查找
f   -maxdepth   数字       将你的文件已分级的形式查找

只找第二层

g     根据属主,属组查找

uid 用户的身份证号 用户ID

gid 组ID

h     找空文件    -empty

   作用:inode号有限,inode号用完无法在建文件。找到占用inode号的空文件删除

i    根据时间戳

例子1

例子2

注意:  \;   为固定格式

此处  -ok  为处理动作,指连接前后两个命令

常见处理动作有:

-ls  显示详细信息

-delete   删除

-ok 连接前后两个命令,每次会询问

-exec 连接前后两个命令  ,不会询问

③使用 find 实现多个查找条件

-a 表示  and 而且

-o 表示   or  或者

④find批量改名

⑤重点

八,管道符 丨

文件属性是p  单向传输数据

(一)生成管道文件

(二)把456 导过去

(三)我想知道mnt下面有多少文件 不想数

(四)一个命令不能完成我想要的,我需要一个命令接力

| 可以无限加

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
1
0
0
39
分享
相关文章
|
19天前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
56 23
Linux系统之whereis命令的基本使用
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
389 8
|
4月前
|
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
1211 6
|
4月前
|
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
235 3
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
155 2
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
60 25
|
5天前
|
Linux查看内存命令
1. free free命令是最常用的查看内存使用情况的命令。它显示系统的总内存、已使用内存、空闲内存和交换内存的总量。 free -h • -h 选项:以易读的格式(如GB、MB)显示内存大小。 输出示例: total used free shared buff/cache available Mem: 15Gi 4.7Gi 4.1Gi 288Mi 6.6Gi 9.9Gi Swap: 2.0Gi 0B 2.0Gi • to
15 2
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
45 11
|
3月前
|
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
118 14
Linux 10 个“who”命令示例
|
3月前
|
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
249 20
目录
目录