Linux基本知识与命令(一)

97 阅读6分钟

一、什么是shell?

  • shell是Linux中运行的一种特殊程序(程序为执行任务的一串代码)
  • shell在用户和内核之间充当“翻译官”(内核属于操作系统的一部分,用于调度cpu,程序占用多少内存)
  • 用户登录Linux系统时会自动加载一个Shell程序
  • shell是一类软件的总称(比如bash、sh、tsh都属于分类)
  • Linux中默认的shell程序时bash

二、Linux命令的分类

Linux命令主要分为以下两类:

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

内部命令(系统自带):

  1. 没有单独对应的系统文件:系统自带的,没有系统文件去打开
  2. 内部命令的程序一直处于开启状态
  3. 没有独立的文件
  4. 程序会自动载入内存,可以直接使用

外部命令(需要自己额外安装):

  1. 外部命令存放在硬盘上
  2. 每个外部命令都有相对应的文件
  3. 每个外部命令都要知道对应文件的位置,才可以经过shell加载后使用

执行命令的顺序:内部>哈希>外部

执行ls命令,判断他是内部还是外部命令,如果是内部命令,直接执行;如果是外部命令在指定文件夹中寻找后,使用shell执行,所有文件夹未找到即报错没有此命令。

哈希(hash):内部命令执行不会存在在哈希表中,外部命令会存在哈希表中

哈希判断:

1.先判断是内部命令还是外部命令

2.如果是内部命令,直接在bash中执行

3.如果是外部命令,先看hash表,表中存在,先找表,表中路径不存在直接报错

4.表中没有去找对应文件夹(挨个查找)

5.找到执行找不到报错

type 命令用于区分内部命令还是外部命令

三、Linux的哲学思想

  1. 一切都是一个文件。(包括硬件,文本,二进制,源代码)
  2. 系统中拥有小型,单一用途的软件(一个程序只负责做好自己的工作,互不干涉)
  3. 当遇到复杂任务,通过不同功能用途的程序组合起来完成。
  4. 避免令人困惑的用户界面就是没有复杂的图形界面。()我想怎么使用程序,win程序
  5. 连配置文件都存储在文本中,方便增删改查
  6. 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。

四、Linux命令格式

通用的命令行使用格式 命令字 +[选项]+[参数](之间一定要空格隔开) 命令字(区分字母大小写) 1.是整条命令中最关键的一部分

2.唯一确定一条命令(一定是确定的)

  1. 选项(程序不加选项只有默认的基础作用,加入选项可以让程序功能更强大)(默认功能)

  2. 参数(需要有选择对象):如果不加参数,默认是当前文件夹的所有参数(默认当前文件夹)

  3. 以 . 开头的都属于隐藏文件

1.1 ls命令

1.格式:ls -a(显示隐藏文件,包括. 与 ..开头的文件) image.png

image.png 2.格式:ls-l(显示文件属性)#ls -l长格式显示,文件属性比较详细等同于 ll image.png 3.格式:ls -A(显示文件,不包含.和..开头的隐藏文件) image.png 4.格式:ls- d(只显示当前目录的属性) image.png 5.格式:ls -h 人性化显示(加入了文件大小的单位)

image.png 6.格式:ls -R 递归显示

image.png 7.格式:ls --color显示颜色

image.png

补充:

ls会结合通配符去过滤需要的文件

通配符:

?代表任意单个字符

*是代表任意长度

举例以p开头的文件:p*

以.conf结尾的文件:*.conf

{1..10}:1到10 10个数

{a..z}:小写字母a-z

[123] :[123]只代表一个数值,从123中任取一个,只表示一个数,如果寻找345名字的文件夹或文件夹则找不到;[0-9]指的是0-9的单个数字一共9个数字

[a-c]:a A b B c共五个数值

[^a-c]:反向匹配:除了上列的五个数值以外的内容即[C-Z]

1.2 man命令(man手册)

man手册分为9章,我们可以通过man手册可以查询一些命令的基本用法 格式:man 1 passwd image.png

1.3 cd命令(切换目录或文件夹,无法进入文件)

1.1格式:cd 文件夹名称

image.png 1.2格式:cd -(回到上一次的文件夹即上一条命令的文件夹) image.png 1.2格式:cd ../(返回到上1级的目录)

image.png 补充:

  1. 绝对路径:从根目录开始写路径为绝对路径

参数前面以/开头就是绝对路径

举例:以./data开头就不是绝对路径

  1. 相对路径:相对于你当前文件夹的路径

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

家目录:对当前用户的个性化设置的文件夹(存放配置文件)

root(超级管理员)与普通用户的家目录不一样

root的家目录在根目录下即/root(根目录下有一个root文件夹)

普通用户在根目录下/home和用户名同名的文件夹

~ 代表当前用户的家目录

一个 . 代表当前目录

两个 .. 代表上一级目录

1.4du(disk use)

别名

别名是将常用的一些比较复杂的命令,简单化,通俗点就是用简单的单词或者字符去定义一串语言的命令。

1.格式:alias 自行定义的命令='常用的复杂命令'(如下图)

image.png

2.单独使用alias,会显示所有的别名命令

3.别名>内部>哈希>外部

4.删除别名:unalias 别名命令(查看文件或目录 占用磁盘空间的大小)

1.1 du -a(分开显示每个文件的大小)

image.png

1.2 du -s(显示当前文件夹的总大小)

image.png

1.3 du -h(人性化显示)

image.png

补充:

a与s不能同时使用,ah可以

image.png

du不统计文件的大小,只统计文件占用磁盘空间的大小,磁盘空间为块储存,最小一块为4k

举例:统计 /etc目录下第一层文件夹占用多少磁盘空间

du -d1 /etc: etc第一层目录的占用磁盘空间

image.png