Skip to main content

Linux 学习笔记 - 基础知识

连接远程主机

使用 ssh:

ssh user@IP

根目录结构

目录目录放置的内容
binbinary 二进制文件,存放系统命令,如 cat,cp,mkdir
boot存放开机启动过程所需的内容,如开机管理程序 grub2
dev所有设备文件的目录(如声卡、硬盘、光驱)
etcetcetera,存放系统的主要配置文件
home用户家目录数据的存放目录
liblibrary,存放 sbin 和 bin 目录下命令所需的库文件,避免重复
lib32/lib64存放二进制函数库,支持 32/64 位
lost+found在 EXT3/4 系统中,当系统意外崩溃或意外关机时,会产生一些碎片文件在这个目录下面,系统启动 fcsk 工具会检查这个目录,并修复已损坏的文件。
media用于挂载光盘,软盘和 DVD 等设备
mntmount,同 media 作用一样,用于临时挂载存储设备
opt第三方软件安装存放目录。
proc进程及内核信息存放目录,不占用硬盘空间。
rootroot 用户的家目录
run是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
sbinsystem bin,存放 root 用户使用的命令,如格式化命令 mkfs
srv一些网络服务所需要的数据文件
sys同 proc 目录,用于记录 CPU 与系统硬件的相关信息
tmp存放程序运行时产生的临时文件
usr系统存放程序的目录,类似于在 windows 下的文件夹 programefiles
var存放内容常变动的文件目录,如系统日志文件

文件类型

在 Linux 下,一切皆文件。

常见的文件拓展名如下:

  • 后缀.tar、.tar.gz、.tgz、.zip、.tar.bz 表示压缩文件,创建命令一般为 tar,gzip,zip 等。在压缩文件中的后缀名来通常表示自身由什么压缩格式打包的,以便解压时方便选择要使用的命令。
  • .sh 表示 shell 脚本文件,通过 shell 语言开发的程序。
  • .pl 表示 perl 语言文件,通过 perl 语言开发的程序。
  • .py 表示 python 语言文件,通过 python 语言开发的程序。
  • .html、.htm、.php、.jsp、.do 表示网页语言的文件。
  • .conf 表示系统服务的配置文件。
  • .rpm 表示 rpm 安装包文件。

文件主要有以下类型:

普通文件

文本文件,bin 文件等。

可执行文件

包括脚本和应用程序,这些文件可被系统加载运行,类似 Windows 下的 bat 脚本、exe 程序文件等。

链接文件

链接文件分为硬链接和软链接:

  • 硬链接是指同一个文件的不同别名。
  • 软链接类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

目录文件

在 Linux 下,目录也是文件。

设备文件

硬件设备也是文件,通过打开对应的设备文件可以初始化设备,部分设备还可以通过读写设备文件实现对硬件的控制。

用户与文件权限

用户权限

Linux 是多用户操作系统,其中具有管理其他用户和计算机的全部资源的用户,称为 root 账户。在 Linux 中,每个用户都有一个特定的编号 —— UID,用于标识一个系统用户。root 账户的 UID 是标号 0。我们可以用命令 id 以查看当前用户的 UID 值。一个用户可以归属于多个 GID(组),以获得不同的文件权限。

文件权限

Linux 的文件属性,分为读权限、写权限、执行权限(可以加载到内存中,并由操作系统加载程序执行的文件)。

可以通过 chmod 命令修改文件权限。

命令行

终端提示符

当我们打开终端的时候,会出现一串提示符如:

power@Linuxbook:~$

这代表当前的用户是 power,运行的主机名称是 Linuxbook~ 表示当前的目录是家目录(即 /home/power),而 $ 为命令提示符,代表这是个普通用户,如果是超级用户则为 #

命令

命令的基本格式(其中后两项代表非必须):

command [-options] [argument]

可使用 Tab 键进行自动补全,在命令行执行中可以用 Ctrl + C 终止运行。

  • command:命令名,如 cdls 等。
  • -options:命令的附加选项,如 ls -l。命令会根据具体的选项执行不同的操作。
  • argument:命令参数,比如 cd /home 中,/home 作为参数名。

常用的命令有:

  • ls:列出目录及文件名
    • -a:显示隐藏文件(文件名前带 .
    • -l:将文件型态、权限、拥有者、文件大小等信息详细列出
    • -t:将文件依建立时间之先后次序列出
    • -A:同 -a,但不列出 ...(当前目录与父目录)
    • -R:若目录下有文件,则该目录下的文件也会列出,即递归显示
  • cd:切换目录
    • 特殊路径
      • ~:当前用户的 home 目录
      • /:根目录
      • .:当前目录
      • ..:上层目录
      • -:切换上一次 cd 的目录
  • pwd:显示目前的目录
  • mkdir:创建目录
    • -p 可创建不存在的目录下的目录
  • rmdir:删除一个空的目录
  • touch:创建文件
  • cp:复制文件或目录
  • rm:移除文件或目录
    • -r:将目录包含的子目录和文件全部删除
    • -f:强制删除
  • mv:移动文件与目录,或修改文件与目录的名称
  • cat:查看文件
  • echo:将内容输出到终端
  • 输出重定向到文件:将命令执行结果保存到文件
    • 命令 > 文件名 ,如文件不存在则会创建,如重复则覆盖
    • 命令 >> 文件名 ,如文件不存在则会创建,如重复则追加到末尾
  • sudo:switch user do,在需要 root 权限的命令前添加 sudo,从而使当前用户获得 root 权限, 并执行其后的命令。如果在普通用户下没权限执行失败,那么可以用 sudo !! 重新加权执行上一条命令。
  • clear:清屏
  • reboot/poweroff:重启 / 关机

包管理

包管理简单来说就是使用命令来安装软件。在 Linux 操作系统中,最常见的两种包分别是 deb 和 rpm。

参考与致谢

本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。