跳到主要内容

LINUX 基础操作(基于UBUNTU)

· 阅读需 8 分钟
Jason Lee

前言

跟随全栈学习路线之 linux 系统熟悉。由于 linux 的命令很多,且有些命令很长,很难记住,但是借助 gpt,无需强调记住命令,而是重点学习 linux 系统的工作原理,以及和 win 系统不同的操作逻辑。

如何定义“常见”的命令呢?我认为,看到那些习以为常的 windows 操作在 linux 中的实现,就可以认为是常见命令加以记忆。

directory

删除某一个文件夹时,如果文件夹下有文件,是不能直接删除的,得用rm -r <directory>. -r 表示递归的删除,即将所有存在的文件全部删除。

文件操作

因为 linux 内万物皆文件,所以下面的命令适用于 linux 内任何实体。

复制粘贴/移动

复制粘贴文件时,并不是像 win 下有分为 copy&paste 两个动作,而是一个命令完成:cp <src> <target>. 如果要将整个文件夹下的文件复制到另一个地方,要分两种情况,要么是所有文件的转移:cp -r . <target> 或者以文件夹的形式复制:cp -r <dirname> <target>.

mv 命令从字面上是移动(剪切粘贴),也可作为重命名文件的命令使用

linux 目录结构

win 的所有文件都存在 C 盘(假如不分区),而 linux 的根目录则是朴实无华的/,类似于 C 盘。用 xshell 等工具登录后的着陆目录可能是你的用户文件夹,比如/root

文件的增删改查

创建空文件用touch,但是好像没什么必要。绝大部分场景是创建文本文件,最好是vi

  1. 删:rm

  2. 改:vi

查有两个层面:一是查看文件属性,用ls -lh filename。二是查看文件内容。小文件直接用 vi,大文件(一般是日志),要么查看尾部几条tail -n 200 filename,要么用less进入文件,熟练运用space/b进行上下翻页。

vi 的详细命令本文后面会说。

system info

最主要的三个状态:cpu,内存和磁盘。

cpu 和内存

可以通过top或者htop(需要另外安装)

top 的输出:

htop 的输出:

htop 的信息更清晰一些。在进入 top 界面后,可以输入下列快捷键改变实时显示:

  • q:退出 top

  • P:按 CPU 使用率排序(默认)。

  • M:按内存使用率排序。

  • k:结束一个进程(输入进程 ID)。

磁盘

磁盘大概不必查看实时状态。命令为df -h.

用centos的截图代替了

package manager

windows 下所有的软件安装都是走可视化窗口,而 ubuntu 一般都是通过命令行。搜索软件:sudo apt search <name>, 安装:sudo apt install <name>, 卸载:sudo apt remove <name>

或者,也有的软件是通过下载压缩包,并解压后得到 deb 后缀的安装包,运行sudo dpkg -i <name>.

注意:软件安装都需要 sudo 的权限,因为安装过程都是对系统文件的修改。

text editor

值得说明的是,用 vscode 连接远程的,可以直接用图形页面编辑文本,也是优先选择。可选工具:vi, vim, nano 等。

~~nano 在我心中取代了 vim,因为它的操作逻辑更简单直观。~~Nano 不是自带的,使用还得安装;而大部分系统(ubuntu/centos)都自带 vi。所以,还是掌握 vi 为好。

vi 常用命令

  • 搜索文本

    • /pattern:向下搜索 pattern

    • ?pattern:向上搜索 pattern

    • n:重复上一次搜索(相同方向)。

    • N:反向重复上一次搜索。

  • 显示/隐藏行号: :set nu/set nonu

  • 跳转到某一行: :n

  • 翻页Ctrl + f向下翻页;Ctrl + b向上翻页;G移动到文件末尾;gg移动到文件开头。

打包压缩

Linux 的打包和压缩实际上是两个独立的过程,不同于 windows 的默认集中在一起完成。

  • 打包(Archive) : 仅将多个文件合并成一个文件,并不压缩大小,常用 tar 命令。

  • 压缩(Compression) : 通过算法减少文件大小,常用 gzipbzip2xz 命令。

  • 打包和压缩结合使用 通常情况下,打包和压缩结合使用可以将多个文件合并为一个文件,同时减少其总大小。在 Linux 中,最常用的组合是 tar 命令和 gzipbzip2 压缩工具的组合。

  • 打包并压缩 :

tar -cvzf archive.tar.gz file1.txt file2.txt  # 打包并使用 gzip 压缩
tar -cvjf archive.tar.bz2 file1.txt file2.txt # 打包并使用 bzip2 压缩
tar -cvJf archive.tar.xz file1.txt file2.txt # 打包并使用 xz 压缩
  • 解压并解包 :
tar -xvzf archive.tar.gz  # 解压并解包 gzip 压缩的 tar 文件
tar -xvjf archive.tar.bz2 # 解压并解包 bzip2 压缩的 tar 文件
tar -xvJf archive.tar.xz # 解压并解包 xz 压缩的 tar 文件

选项解释:

  • -c:创建新的打包文件(create)。

  • -v:显示打包过程的详细信息(verbose)。

  • -f:指定输出文件名(file)。

  • -t:查看打包文件的内容(list)。

  • -x:解包(extract)。

  • -z:使用 gzip 压缩。

  • -j:使用 bzip2 压缩。

  • -J:使用 xz 压缩。

软硬连接对标 windows 的快捷方式。区别如下:

比较项软连接(Symbolic Link)硬连接(Hard Link)
创建命令ln -s <目标> <链接名> ln <目标> <链接名>
是否可以跨文件系统
是否可以指向目录否(通常不能指向目录)
是否依赖目标路径是(依赖目标路径)否(与目标文件共享相同的 inode)
目标删除的影响目标被删除,链接失效(断链)目标被删除,硬链接仍可访问文件内容
是否共享 inode否(独立的 inode)是(共享相同的 inode)
用途用于创建目录快捷方式或跨分区引用用于在同一分区内创建文件的多个引用