Linux 基础

基础

目录结构

Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中又可以有任意多个文件和子目录

http://markdown-1303167219.cos.ap-shanghai.myqcloud.com/d0c50-linux2bfile2bsystem2bhierarchy.jpg

  • bin:存放二进制可执行文件 (ls,cat,mkdir 等)
  • boot:存放用于系统引导时使用的各种文件
  • dev:用于存放设备文件
  • etc:存放系统配置文件
  • home:存放所有用户文件的根目录
  • lib:存放跟文件系统中的程序运行所需要的共享库及内核模块
  • mnt: 系统管理员安装临时文件系统的安装点
  • opt: 额外安装的可选应用程序包所放置的位置
  • proc: 虚拟文件系统,存放当前内存的映射
  • root:超级用户目录
  • sbin:存放二进制可执行文件,只有 root 才能访问
  • tmp:用于存放各种临时文件
  • usr:用于存放系统应用程序,比较重要的目录 /usr/local——本地管理员软件安装目录
  • var:用于存放运行时需要改变数据的文件

文件类型

  • 普通文件 -
  • 目录 d
  • 符号链接 l
    • 硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块
    • 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径 (可理解为快捷方式)。
  • 字符设备文件 c
  • 块设备文件 b
  • 套接字 s
  • 命名管道 p

命令

格式

cmd [options] [arguments]

命令名称 [- 选项] [参数]

  • 命令名:描述命令功能的英文单词或缩写,必不可少;
  • [- 选项]:执行该命令的限定参数或功能参数;
  • [参数]:执行该命令的所必需对象,如文件、目录等;

选项和参数都作为 Shell 命令执行时的输入,它们之间用空格分隔开

一般来说,后面跟的选项如果单字符选项前使用一个减号 -;单词选项前使用两个减号 --

[ ] 表示语法上可有可无

可执行文件的分类

内置命令:出于效率的考虑,将一些常用命令的解释程序构造在 Shell 内部。

外置命令:存放在 /bin、/sbin 目录下的命令

实用程序:存放在 /usr/bin、/usr/sbin、/usr/share、/usr/local/bin 等目录下的实用程序

用户程序:用户程序经过编译生成可执行文件后,可作为 Shell 命令运行

Shell 脚本:由 Shell 语言编写的批处理文件,可作为 Shell 命令运行

登陆操作

登陆提示信息的意义

1
[root@localhost~ ]#
  • root:当前用户的账号
  • localhost:主机名
  • ~ :用户当前所在的目录。 如果现在要创建一个文件的话,会被保存在这个目录下。
    • ~ 为用户的主目录,即专属于该用户的目录
    • root 用户的主目录为:/root
    • Linux 系统每创建一个普通用户,就会在 /home 这个目录下创建一个对应的 目录,并且是以用户名命名的。
      • 比如:普通用户 user 的主目录是:/home/user ;普通用户 test 的主目录为:/home/test
  • #:root 用户的命令提示符
  • $:普通用户的命令提示符

命令

pwd

(print working dirctory)

  • 功能:显示用户当前所处的工作目录(当前工作目录)
  • 格式:pwd [选项]

man

(manual)

  • 功能:显示命令的使用说明手册。
  • 格式:man 命令名

通常 man 显示的命令帮助格式包含以下 4 部分:

  • NAME : 命令名称;
  • SYNOPSIS : 语法大纲;
  • DESCRIPTION : 描述说明;
  • OPTIONS : 选项

man 命令查询控制手册时,给出了一些功能键设置:

  • 空格键 :显示手册页的下一屏
  • 回车键 :一次滚动手册页的一行
  • q 键 :退出 man 命令

cat

(concatenate)

功能一
  • 功能:显示文件信息,可与输入输出重定向配合使用。
  • 格式:cat [选项] fileName
  • 常用选项
    • -n:由 1 开始对所有输出行进行编号显示。
  • 实例
    • 查看刚刚的 record 文件
      • $ cat record
    • /etc/passwd 文件进行编号显示
      • $ cat –n /etc/passwd
功能二
  • 功能:建立小型文件
  • 格式
    • 1
      2
      3
      
        cat > fileName
        …            // 输入信息
        Ctrl+d       // 存盘并退出 
      
  • 实例
    • 建立一个名为 m1 的文件,内容为:echo cat is not a cat!
    • 1
      2
      3
      4
      
        $ cat > m1    //创建文件 
        echo cat is not a cat! 
        Ctrl+d
        $ cat m1      //显示文件
      
功能三
  • 功能:合并文件。
  • 格式:cat file1 file2 > newFileName
  • 实例:将 m1,m2 合并为 m3
    • 建立一个名为 m1 的文件,内容为:echo cat is not a cat!
    • 建立一个名为 m2 的文件,内容为:date 的结果。
    • 1
      2
      3
      4
      5
      6
      7
      
        $ date > m2     //创建文件 
      
        $ cat m2        //显示文件 
      
        $ cat m1 m2 >m3 //合并文件 
      
        $ cat m3        //显示文件
      

more

  • 功能:分屏显示文件内容。首先显示一屏后若还有内容,按 Enter 键再显示下 一行,按 Space 键显示下一屏,按 Q 退出。
  • 格式:more 文件路径

通配符与特殊符号

通配符

*:匹配任何字符和任何数目的字符

?:匹配单一数目的任何字符

[]:匹配 [] 之内的任意一个字符,[] 指定一个符号的取值范围

[!]:匹配除了 [!] 之外的任意一个字符,! 表示非的意思

  • 列出 /etc 目录下的所有扩展名为 conf 的配置文件
1
$ ls /etc/*.conf
  • 列出 /etc 目录下所有文件名由 3 个字母构成的配置文件
1
$ ls /etc/???.conf
  • 列出 /etc 目录下所有以 a、b 或者 c 开头的配置文件
1
2
3
4
5
$ ls /etc/[abc]*.conf

$ ls /etc/[a-c]*.conf

$ ls /etc/[!d-z]*.conf

特殊符号

分号 ;

用于隔开多条命令并使它们能够连续执行。 输出的结果是多个命令连续执行后的输出结果

符号 &

用于指定当前命令在后台执行

实例

拷贝一个大文件 file 时需要占用较长的时间,将拷贝工作放到后台执行

执行时返回的显示结果是该命令的作业号和进程 PID 号

执行完毕会在前台提示

1
$ cp file /tmp/filetmp & 

转移符号 \

通配符和特殊符号在 shell 中被解释为某种含义和功能,当要表示这些符号的本身时,需要使用转义符号 \

实例

1
2
3
$ echo \\
$ echo \&
$ echo \*\&

管道 |

1
$ 命令1 | 命令2 | 命令3 || 命令n

将多个简单的命令集合在一起,用以完成较复杂的功能

实例

1
2
$ cal | wc -l           // 对当前月的日历输出结果进行行数的统计 
$ ls -al /etc | more    //由于/etc目录下的文件和子目录的数目很多,将 结果传送给more分页显示。

重定向

概念

Shell 中不使用系统的标准输入、标准输出或者标准错误输出端口,重新进行指定的情况称为输入输出重定向

http://markdown-1303167219.cos.ap-shanghai.myqcloud.com/image-20210620204426450.png

输出重定向、附加输出重定向

目的:保存命令输出的结果

格式

  • 输出重定向:命令 > 重定向文件(覆盖原文件的内容)
  • 附加输出重定向:命令 » 重定向文件(在指定文件的末尾追加命令结果)

date > record #将 date 的结果重定向输出到 record 文件中

who >>record #将 who 的结果附加重定向输出到 record 中

输入重定向

目的:把命令的标准输入重新定向到指定文件中

格式:命令 < 重定向文件

用输入重定向的方式查看 record 的内容。

cat < record // 与 cat record 命令完全相同

错误输出重定向

目的:保存错误内容

格式:命令 2> 重定向文件

敲一个错误的命令,ls lsm,通过错误输出重定向,将错误信息保存到文件 err 中

1
2
3
4
5
ls lsm        //输入错误的命令 

ls lsm 2> err  //错误输出重定向 

cat err       //查看err内容