Linux基本介绍,shell和基础命令

linux的哲学思想(优点)

1.一切皆是一个文件

2.系统小型,轻量级

3.避免令人困惑的用户界面,没有复杂的图形界面

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

5.免费


linux用户

分为 root用户和普通用户

root用户:超级管理员,使用权限不受限制,拥有近乎于完整的权限,对系统的损害几乎有无限的能力。除非必要,不要登录root

普通用户:权限有限,造成的伤害有限


[root@localhost~]#

root: 当前用户

localhost:当前主机的名字

~:当前所在文件夹       波浪号:当前用户的家目录

#:代表超级管理员  

$:普通用户


文件夹

linux中一切皆文件

linux需要记住文件路径

/ 根是linux系统的起点,最开始的文件夹

文件夹的作用:文件和文件夹

如何使用一个文件

描述路径的方式去打开文件

路径:描述一个文件在系统中的位置

/  根下的文件夹

挑重点介绍

bin:里面存放二进制文件

          二进制文件:系统可以直接运行的文件,并且是普通用户使用的二进制文件

etc:里面存放配置文件

         配置文件:系统的用户信息,密码等信息,软件配置等

lib:被调用的库 32位操作系统使用(里面存放 一些功能代码)

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

            *现在基本上不可能出现32位操作系统,32位最大支持4G内存

dev:存放硬件设备。 典型:磁盘,光驱, 输入(键盘,鼠标)输出(显示器)设备

proc:内存环境的程序现状

boot:开机启动需要的文件,操作系统 最重要的文件是 内核文件,内核在boot文件夹中

mnt:挂载点 空文件夹,经常用到mnt

opt: 空文件夹,存放后天安装的软件

tmp: 存放临时文件

var:子目录  /var/log 日志

home: 普通用户存放家目录的地方,可以称为家目录的上级目录

                家目录:每一个用户都有一个家目录,存放用户的基本配置信息及个性化设置,存放用户自己的文档使用一旦你建立了一个用户,会有一个同名的 家目录在home下诞生

root: root用户的家目录存放在root中

usr: 小根  存放一些根里不好存放的东西


Shell

Shell是Linux系统中运行的一种特殊程序

        程序:执行特定任意的一串代码

        操作系统也是程序,他的作用是管理调度硬件

Shell执行什么任务?翻译

将人类使用的高级语言(人话,Java,c++等)翻译成二进制交给内核,内核交给硬件执行

        内核:约等于操作系统

无论是 windows用户还是linux用户,一旦登录系统必须加载一个翻译官

linux用户一旦登录系统必须加载一个shell程序,这个程序在/bin/bash(bash是二进制文件)

centos7 默认的shell就是/bin/bash 因为他功能全,tab补全就是bash功能


命令

命令的本质是什么?

ls命令为例:ls命令 是由代码构成 ,其执行的任务就是寻找你当前文件夹的所有文件

ls就是一个程序

所有的命令都是程序

用一个程序必须先安装这个程序

linux中的命令分为 内部 和 外部

内部是自带的命令

外部是后加的命令

type+命令 可以查看命令是内部还是外部命令

enable可以查看所有的内部命令

内部命令是shell(/bin/bash)一部分,只要登录系统,就会自动载入内存,内部命令就可以运行

外部命令是Linux能执行的特定任务的程序,每一个外部命令对应了系统的一个文件,必须知道其位置,由shell加载才能运行

系统中由5个特殊文件夹,你和系统之间由个约定,如果外部命令也在这5个特殊文件夹,就可以直接写程序的名字调用,不用关注文件具体在什么位置

以冒号为分隔符,分别是

/usr/local/sbin        /usr/local/bin        /usr/sbin        /user/bin        /root/bin

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

echo这个命令比较特殊,即属于内部又属于外部

命令的执行过程

首先判断是内部命令还是外部命令,如果是内部命令直接执行。

如果是外部命令,先看缓存空间是否有,如果有按照缓存空间中的位置执行,如果缓存位置中没有,直接报错。如果是第一次执行,去看看那5个文件夹是否有,有直接执行,没有报错。

我打了一个命令,提示不存在?

1.命令打错了

2.命令没有安装

3.命令不在规定的路径

4.运行过命令,但命令的位置发生改变了

命令的格式

命令 空格 [选项] 空格 [对象] (空格必须有,有几个无所谓)

命令: 你要干什么 cp cd。。。(linux区分大小写)

选项: 修饰命令,添加额外的功能(长格式 --单词  短格式 -字母)

            选项一般是没有顺序要求,选项可以叠加使用,选项放在对象后面也可以

对象: 对谁做  文件 文件夹 用户名  不写则默认当前文件或文件夹

;    用于分隔命令,一次执行多条命令

编辑Linux命令行的辅助操作

全是/bin/bash的功能

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

ctrl+a:光标跳至行首

ctrl+k:从光标处清空到行尾

ctrl+l:清屏 将光标移动到顶行

上下键:回看命令

ctrl+r:输入关键字查询命令,回车再次执行,左键显示在屏幕上

\:强制换行,调整格式

帮助

man  info help

man:

man 1(可以省略) 命令  显示命令的用法

man 5 passwd 代表passwd文件的格式

上下 键 一行

空格键 1页

q 退出

/ 关键字 查找关键字 找到以后 n 向下匹配 N 向上匹配

help:

help命令

内部命令使用:

例:help cp

外部命令使用:

例:ls --help

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

cd:切换目录(文件夹)

        cd ~  代表的意思是 当前用户的家目录

        cd     什么也不加,也是当前用户的家目录

        cd -   返回上一次目录的所在位置   (只能返回最近的一次,如电视遥控器的返回键)

路径的表示

路径:描述文件在系统的所在位置

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

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

相对路径的表项形式:

1.直接使用目录名或文件名:表示当前工作目录的子目录,文件的位置

2.以一个  .  开头:表示以当前目录作为起点

3.以两个 ..  开头:表示以当前目录的上一级目录(父目录)作为起点

4.以  ~用户名  形式开头:表示以指定用户的宿主目录作为起点

挂载:将系统中的文件夹和磁盘做上关联,使用文件夹就等于使用磁盘

linux  唯一使用外来设备的方式


基本命令 

1.ls  

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

 -l 长格式显示(显示文件属性,详细信息) 等价于 ll  

Linux基本介绍,shell和基础命令_第1张图片

d 文件属性     rwxr-xr-x 权限      2硬链接个数        root 文件的主人        root 属组        6 文件大小

12月 19 14.56  文件的创建/最近一次打开时间          2 文件名 

linux 的七大属性:

d 目录        - 普通文件,文本        c 字符设备,一次只能录入一个设备 键盘

b 块设备  硬盘 读写文件的时候,是一整块一整块的读和写

s 套接字  ip 端口号   传递信息   主机A---主机B  系统程序之间

p 管道符   单向   数据只能沿一个方向传输   | 管道

l  软连接         快捷方式  类似于win桌面图标快捷方式

-d        只显示文件夹    ls -ld    只显示目录  不显示 目录下的文件

-a   显示隐藏文件    带 .  的是隐藏文件

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

-R 递归显示  递归:从第一层到最后一层

-r  倒序显示

-t  时间显示     ls - tr 按照时间排序倒序显示(组合选项)

-S  文件大小排序

-i    显示文件的inode号(类似于身份证号码)

-h   人性化显示  加个单位

ls 最好不要直接使用 生产环境中文件可能很庞大,容易死机

2.通配符

通配符的作用:去匹配文件的名字

       1. *   :代表任意字符的长度 不能显示隐藏文件

              例:匹配以p开头的  :p*

                     匹配以conf结尾 :*conf

                     包含conf            :*conf*

                     数字开头            :[0-9]*

                     字母开头            :[a-z]*
       

       2.  ?:代表任意一个字符

       3.{1..10}:1-10

       4.{a-z}:a b c ....z   (大写同理)

       5.[123](括号里值代表一个字符)   取其中之一有就显示,没有就不显示

       6. \  转义符         表示原来的意思   

       7.[ a-z] 单个小写字母        范围需要注意

       8.[0-9]单个数字                匹配数字范围(0123456789)

       9. [[:lower:]]                    小写字母表示a-z

      10.[[:upper:]]                    大写字母表示A-Z

      11.[^zhou]                         匹配列表中的所有字符以外的字符

      12.[[:digit:]]                        任意数字,相当于0-9

      13.[[:alpha:]]                      任意字母

正则表达式的作用:匹配文章中的内容

3.alias

   alias   别名

   通式:alias  自定义命令='原始命令'(单引号,双引号无所谓)

  显示所有别名:alias

  取消别名:unalias+自定义命令

  别名的优先级:别名---->内部---->hash---->外部

  使用alisa建立的别名是临时的,重启之后就没有了

Linux基本介绍,shell和基础命令_第2张图片

  4.du

      du :磁盘使用情况

      磁盘      块设备     4k

      du 默认是全显示

        -s  总大小

        -a  每个文件的大小

        -h  显示文件格式

        --max-depth=n(-d 1)        最大显示到第n层

        --exclude                不计入统计

        a和s不能同时使用

       ll看的是文件的 真实大小,du看到的是 文件占了磁盘多少块(4k)一个文件不足4k ,按4k算

        5.mkdir

        mkdir        创建文件夹

        mkdir aa   创建名为aa文件夹

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

       mkdir  -p     递归建立

       mkdir  -p   aa/bb/cc    建立aa文件夹再aa文件夹下建立bb文件夹,再bb文件夹下建立cc文件夹

       mkdir  -pv  一次建立多个文件 

        Linux基本介绍,shell和基础命令_第3张图片

        

5.touch

    touch  建立  空文件

    touch的作用:1.建立空文件,touch后面跟的文件名不存在

                            2.刷新文件时间 后面跟的文件已存在

6.硬连接和软连接

   硬连接原理

Linux基本介绍,shell和基础命令_第4张图片

语法: ln  源文件  目的位置

源文件:一定使用绝对路径

软连接:

    语法:ln  -s  源文件  目的位置

硬连接和软连接的区别:

Linux基本介绍,shell和基础命令_第5张图片

注意:删除连接文件夹的时候一定不能 加 /

7.cp

 cp 复制

 语法:cp  源文件  目标地址

 如果要复制文件夹要加  -r

cp  -r 源文件夹 目标位置

cp  /etc/passwd /opt/123

复制并改名

保留属性: -p   -a(更厉害)

-u:增备  备份每天新增的量

8.mv

mv:移动或改名

源文件和目标文件路径位置一样,是改名

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

只能一个一个改名

9.rm

rm:删除

语法: rm  要删除的文件和目录

      -f  强制

      -i  交互

      -r  递归 (删除目录需要)

如果删除目录空间不释放,有人在使用

10.查找文件

查找外部命令: which  命令  或  whereis 命令

                      which ls   

which是在那5个特殊文件夹内找(each$PATH)

查普通文件:locate

                  优点:快

                  缺点:1.找的是系统的数据库文件,不具备实时性

                             2.模糊查找不够精确

                             3.不是去磁盘上找

                  locate多用于查找一些 老旧文件

11.find

       find:查找

     缺点:,但真的去磁盘上一块一块的给你查找

     优点:精确查找

                选项多,查找的功能多

命令的使用格式:find   范围        查找条件        处理动作

查找类型:

1.按照名称查找:-name        

根据目标文件的名称进行查找,允许使用“*”及“?”通配符 -iname "文件名称" 不区分大小写

2.按照文件大小查找:-size        

根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB

3.按照用户名查找:-user

根据文件是否属于目标用户进行查找

4.按照文件类型查找:-type

根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等

5.按inode号查找:-inum        根据文件inode号查找

6.按照权限查找:-perm        按照文件权限查找

7.最大搜索目录深度: -maxdepthlevel        将你的文件以分级的形式查找

8.最小搜索目录深度: -mindepthlevel         将你的文件以分级的形式查找

find /etc -maxdepth 2 -mindepth 2

 查找 最大为2 最小为2的文件

find实现多个查找条件

     1. -a    表示 而且(and)

     2. -o    表示  或者(or)

示例:

find /boot -size +1024k -a -name 'vmlinuz'

find /boot -size +1024k -o -name 'vmlinuz'

根据时间戳

找到30天以上, 以log结尾的普通文件 移动到opt目录

find / -name '*log' -type f -mtime +30 -ok mv {} /  opt \ ;

                                                          -exec mv {} / opt \;

处理动作

-ls 显示详细信息

-delete 删除

-ok 询问是否要操作

-exec 不询问直接操作

                                

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