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

linux 基本知识与命令_第1张图片

(四)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 基本知识与命令_第2张图片

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

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

以上就有三个命令

(六)编辑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分九个章节默认打开第一章节

linux 基本知识与命令_第3张图片

②使用方法

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

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

linux 基本知识与命令_第4张图片

六,基础命令

(一)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)

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

linux 基本知识与命令_第5张图片

  我们拆开来看

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

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

②     ls -d     

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

linux 基本知识与命令_第6张图片

③      ls -a       

显示隐藏文件    

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

④       ls -A       

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

⑤       ls -R       

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

 linux 基本知识与命令_第7张图片

⑥       ls -r       

 倒序显示

⑦        ls -t       

 时间排序

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

linux 基本知识与命令_第8张图片

⑧      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,常用通配符

①     ?   指任意一个字符

linux 基本知识与命令_第9张图片

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

③ {1..10} 从1到10

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

linux 基本知识与命令_第10张图片

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

linux 基本知识与命令_第11张图片[0-9] 代表单个数字

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

linux 基本知识与命令_第12张图片

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

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

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

linux 基本知识与命令_第13张图片

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

⑤  ^  非选   固定格式加框

\    转义,   表示原来的意思

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

4,通配符用法

linux 基本知识与命令_第14张图片

(五)设置别名  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   不计入统计

linux 基本知识与命令_第15张图片

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

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

1,mkdir  格式

mkdir  选项  目录位置及名称

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

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

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

3,多建立递归文件夹

linux 基本知识与命令_第16张图片

(八)touch 建空文件

两种情况

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

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

(九)硬连接与软连接

1,软连接

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

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

2,硬连接

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

硬连接具体含义

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

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

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

linux 基本知识与命令_第17张图片

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

linux 基本知识与命令_第18张图片

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

硬连接注意事项

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

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

3,硬连接语法

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

linux 基本知识与命令_第19张图片

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

4,软连接语法

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

linux 基本知识与命令_第20张图片

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

5,软连接 硬连接区别

linux 基本知识与命令_第21张图片

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

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

(十)cp复制   

复制文件或目录

1,cp 格式

cp 源文件 目标位置

2  cp  语法

①    cp  /etc/passwd    /opt/123

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

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

linux 基本知识与命令_第22张图片

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

linux 基本知识与命令_第23张图片④  -f

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

⑤ -u   增备

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

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

linux 基本知识与命令_第24张图片

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

  linux 基本知识与命令_第25张图片

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

(十一)mv 移动或改名

1,改名:

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

2,移动:

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

linux 基本知识与命令_第26张图片

3,mv  和rename

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

(十二) rm-rf 删除

r 递归 f强制

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

(十三)shred  安全删除数据

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

(十三)fls  保存

linux 基本知识与命令_第27张图片

七,查找文件位置

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

比如  ls mkdir cp  等

1,用 which 在5个文件找

2, whereis 找的更多

(二)查找普通文件

1,locate

①优缺点

用locate     优点:快

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

​                                模糊查找,不够精确

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

②一般用在 查找老旧文件

2,find(自带递归属性)

①优缺点

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

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

②find 通式

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

A     查找范围

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

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

linux 基本知识与命令_第28张图片

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

处理动作有 print ls delet 等

b    按文件大小查找 -size

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

linux 基本知识与命令_第29张图片

不加+ -              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     根据属主,属组查找

linux 基本知识与命令_第30张图片

uid 用户的身份证号 用户ID

gid 组ID

h     找空文件    -empty

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

i    根据时间戳

linux 基本知识与命令_第31张图片

例子1

linux 基本知识与命令_第32张图片

例子2

注意:  \;   为固定格式

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

常见处理动作有:

-ls  显示详细信息

-delete   删除

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

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

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

-a 表示  and 而且

-o 表示   or  或者

④find批量改名

linux 基本知识与命令_第33张图片

⑤重点

linux 基本知识与命令_第34张图片

八,管道符 丨

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

(一)生成管道文件

(二)把456 导过去

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

linux 基本知识与命令_第35张图片(四)一个命令不能完成我想要的,我需要一个命令接力

| 可以无限加

linux 基本知识与命令_第36张图片

你可能感兴趣的:(linux,运维,服务器)