加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux 文件与bash基础

发布时间:2020-12-14 00:40:34 所属栏目:Linux 来源:网络整理
导读:Table of Contents 程序编译方式: Linux 文件系统 操作系统的组成 文件系统:层级结构 Linux 文件类型 基本命令 别名 获取所有命名定义: 定义别名: 撤销别名: which whereis who w bash 的基础特性 命令历史 history 用法 history 功能的环境变量 调用历史上

Table of Contents

  1. 程序编译方式:
  2. Linux 文件系统
    1. 操作系统的组成
    2. 文件系统:层级结构
  3. Linux 文件类型
  4. 基本命令
    1. 别名
      1. 获取所有命名定义:
      2. 定义别名:
      3. 撤销别名:
    2. which
    3. whereis
    4. who
    5. w
  5. bash 的基础特性 命令历史
    1. history 用法
    2. history 功能的环境变量
    3. 调用历史上用过的命令
    4. 调用上一个命令的最后一个参数
  6. bash 特性
    1. 命令补全
    2. 路径补全
    3. 目录管理命令
      1. mkdir: make directory
      2. rmdir: remove empty directory
      3. tree
    4. 命令行展开
    5. 命令执行的状态结果
    6. 引用命令的执行结果
  7. 文件查看
    1. 分屏查看 more 与 less
    2. head 和 tail
    3. stat
    4. touch
      1. OPTION
  8. 文件管理
    1. cp
      1. 用法
      2. 选项
    2. mv
      1. 用法
      2. 选项
    3. rm
      1. 用法
      2. 选项

程序编译方式:

  • 动态链接:
    多个程序使用同一个动态库。
  • 静态编译
    程序使用独立的库,将库文件复制到程序内部。

Linux 文件系统

操作系统的组成

  • 静态:kernel,application

文件系统:层级结构

FHS:Filesystem Hierachy Standard

  • /bin:所有用户可用的基本命令程序
  • /sbin:供系统管理员使用的工具
  • /boot:引导加载器要用到的文件
  • /dev:特殊文件与设备文件:
    • 设备类型: 字符设备(实时),块设备(打包发送)
  • /etc:存放静态配置文件
  • /lib:存放共享库:
    为系统启动,/bin,/sbin 提供共享库;
    libc.so*:动态链接的 C 库;
    ld*:运行时链接器/加载器;
    modules:用于存储内核模块
  • /home(可选):存放用户家目录
  • /media:便携式设备挂载路径
  • /mnt:其它文件系统的临时挂载点
  • /opt:第三方应用
  • /root:管理员家目录
  • /srv:当前主机为服务提供的数据
  • /tmp:临时文件目录
  • /usr:全局共享的只读数据路径:
    bin,sbin
    lib,lib64
    include:c 的头文件
    share:用于存程序特有数据
    local:目前用于安装第三方程序的目录
  • /var:用于存储经常变化的数据的目录
  • proc:基于内存的文件系统,用于存放内核和进和存储其相关信息;多为内核参数。
  • sys:sysfs 虚拟文件系统为 proc 的改进版。主要为 linux 管理设备提供统一接口。

Linux 文件类型

  • -:常规文件,f;
  • d:directory 目录文件;
  • b:block device 块设备;
  • c:character device 字符设备;
    major number:主设备号,标识设备类型,确定要加载的驱动。
    minor number:次设备号,标识同一类型中的不同设备。
    8 进制
  • l:symbolic link,符号链接文件。
  • p:pipe,命名管道。
  • s:socket,套接字文件

基本命令

别名

可用 type <COMMAND> 来查看。

获取所有命名定义:

alias

定义别名:

alias <NAME>='<COMMAND>'

撤销别名:

unalias <NAME>

which

显示命令的完整路径
which [OPTIONS] PROGRAMNAME [...]
–skip-alias:忽略别名

whereis

显示命令二进制文件,手册,源文件的位置。
whereis [OPTIONS] NAME

  • -b:只显示二进制文件位置。
  • -m:只显示手册位置。

who

显示当前系统登录的用户
who [OPTION]...

  • -b:此次登录时间
  • -r:运行级别
  • -d:显示死亡进程
  • -l:显示登录进程

w

显示当前系统登录的用户,并显示正在做什么。

bash 的基础特性 命令历史

shell 会在会话中保存此前用户提交执行过程的命令。

history 用法

  • history [-c] [-d offset] [n]
    • -c 清空
    • -d 删除特定行
    • -r 从文件中读出到内存中
    • -w 从内存中写入到文件中
    • n:显示 n 条命令
  • history -anrw [filename]
  • history -ps arg [arg...]

history 功能的环境变量

  • HISTSIZE:shell 可保留的命令最大条数;
  • HISTFILESIZE:文件中保存命令的最大条数
  • HISTFILE:持久保存命令历史的文件;
    .bashhistory
  • HISTCONTROL:是不不记录命令
    ignoredups:不记录重复的命令
    ignorespace:忽略以空格开头的命令
    ignoreboth:上两者同时生效

调用历史上用过的命令

  • !#:执行第#条命令
  • !!:执行上条命令
  • !STRING:执行最近一次以 STRING 开头的命令

调用上一个命令的最后一个参数

快捷键 ESC .
字符串 !$

bash 特性

命令补全

shell 在接收到用户执行命令的请求,最左侧的连续字符作为命令。

  1. 命令的查找机制:
    • 查找内部命令
    • 根据 PATH 设定的目录,自左向右搜索目录下的文件名。

如果打头字符串只有唯一命令,则直接补全;如有多个命令名字开头与该字符串同名,两次 TAB 则全
部列出。

路径补全

根据给定的起始路径,以对应路径下的打头字符串来匹配起始路径下的每个路径。

目录管理命令

mkdir: make directory

  1. 形式

    mkdir [OPTION]... DIRECTORY...

  2. OPTION

    • -p:递归的创建目录
    • -v:verbose 显示详细过程
    • -m:设置对应目录的权限

rmdir: remove empty directory

  1. 形式

    rmdir [OPTION]... DIRECTORY...

  2. OPTION

    • -p:递归的删除目录,直到目录不为空
    • -v:verbose 显示详细过程

tree

  1. 形式

    tree [OPTIONS] [DIRECTORY]

  2. OPTION

    • -L:level 显示的层级数

命令行展开

~:展开为用户的家目录
{}:可承载以逗号分隔的列表,并展开为多个
如:/tmp/{a/{a1,a2},b}相当于/tmp/a/a1 /tmp/a/a2 /tmp/b

命令执行的状态结果

通过状态返回值来输出此结果:

  • 成功:0
  • 失败:1-255

值存在于 $?

引用命令的执行结果

$(COMMAND)

`COMMAND`

文件查看

分屏查看 more 与 less

more <FILE>
翻屏至文件最后自动退出。
less <FILE>

head 和 tail

head [OPTIONS] <FILE>
-n # 或 -# 代表前#行
tail [OPTIONS] <FILE>
-n # 或 -# 代表后#行
-f 代表不退出,紧接着显示新增的行。

stat

stat <FILE>
显示文件的元数据
包含了最近的访问 access,更改 modify,改动 change 时间。

touch

touch [OPTION]... FILE...
修改文件的时间戳。

OPTION

  • -c:文件不存在时不创建文件
  • -a:修改 access time
  • -m:修改 modify time
  • -t:指定要改为的时间
    [[CC]YY]MMDDhhmm[.ss]

文件管理

cp

用法

# 单源复制
cp [OPTION]... [-T] SOURCE DEST
# 多源复制
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

单源复制:

  • 如果 DEST 不存在:
    则创建文件,并复制文件;
  • 如果 DEST 存在:
    • 如 DEST 非目录:则覆盖目标文件;
    • 如 DEST 是目录:则复制到目录;

多源复制:

  • 如果 DEST 不存在:
    则出错
  • 如果 DEST 存在:
    • 如 DEST 是目录:则多个文件分别复制到目标目录;
    • 如 DEST 非目不:则出错;

选项

  • -i:交互式确认;
  • -f:强制覆盖目录;
  • -r,-R:recursive,递归复制目录
  • -d:如源文件为符号链接则只复制链接;
  • -a: -dR –preserve=all
  • –preserve=
    • mode
    • ownership
    • timestamps
    • context:安全标签
    • xattr:扩展属性
    • links
    • all

mv

用法

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

选项

  • -i:交互式
  • -f:强制

rm

用法

rm [OPTION]... FILE...

选项

  • -i:交互式
  • -f:强制
  • -r:递归

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读