好好一个前端,开发了后端,干起了运维的活,马上全栈了呵呵呵呵

这里我也不分类了,直接往下列了,主要列常用的吧,也记不住

lsb_release

lsb_release -a

当你在终端中输入 lsb_release -a 并执行时,该命令会显示关于你当前使用的Linux发行版的详细信息。这通常包括发行版的ID、描述、发布版本号以及代号等信息。这对于需要确认系统版本来安装特定软件或进行系统配置调整时非常有用。 

pwd

pwd

当你在终端中输入 pwd 并按回车键后,系统会输出你当前所在的目录的绝对路径。例如,输出可能是 /home/username/var/www/html 等。 

ls、ll

ls
ls -a
ls -al
ll

ls:  这是最基本的使用方式,用于列出指定目录(如果未指定目录,则默认为当前目录)中的文件和目录。仅显示非隐藏文件和目录

ls -a:使用 -a 选项会列出所有文件,包括以.(点)开头的隐藏文件和目录。在Linux系统中,以.开头的文件或目录默认是隐藏的。

ls -al或 ls -a -l:结合 -a 和 -l 选项,不仅会列出所有文件(包括隐藏的),还会以长格式显示文件的详细信息。长格式显示的信息包括文件类型、权限、链接数、所有者、组、大小、最后修改时间以及文件名。

ll:ll实际上不是一个独立的命令,而是一个别名(alias),通常在许多Linux发行版中预配置为 ls -l 或ls -la或类似的选项组合。它的作用是以长格式列出当前目录下的文件(有时也包含隐藏文件,取决于具体的别名定义)。如果你尝试使用 ll 而它不起作用,可能是因为你的shell环境没有为此命令设置别名。 

clear 

clear

clear是一个在Linux和Unix系统中用于清除终端屏幕内容的命令。 也可以按 【Ctrl + L】相当于clear命令

sudo su 

sudo su

sudo su是一个在 Linux 系统中用于获取超级用户(root)权限的命令组合。

当你在终端输入sudo su并按下回车键后:系统会提示你输入当前用户的密码(假设你的用户被授予了使用 sudo 的权限)。这是为了确保是授权用户请求提升权限。功验证密码后,命令行提示符通常会改变,显示为 # 而不是 $,表示你现在拥有超级用户权限,并可以执行需要这些权限的操作。

touch

touch a.txt

touch用于创建新的空文件或者更新已有文件的时间戳(包括访问时间和修改时间)。

如果不存在则会创建,存在则会更新该文件的时间戳为当前系统时间,而不更改文件内容

vim 

vim a.txt

vim编辑文件,按【a】或者【i】进入编辑模式,按【Esc】退出编辑模式,vim 是一个在 Unix 和 Linux 系统中广泛使用的文本编辑器,它是 vi 编辑器的增强版本。vim 是 "Vi IMproved" 的缩写,提供了比原始 vi 更多的功能,包括语法高亮、多级撤销、可视选择、插件支持等。 

vim也可以创建文件:当你使用 vim 命令打开一个不存在的文件时,vim 会自动创建这个文件。一旦你保存(在 vim 的命令模式下输入 :w:wq),这个新文件就会被真正地写入到磁盘上

cat 

cat a.txt

 cat 一般主要用于查看文件内容

less

less a.txt

less 是一个在 Unix 和 Linux 系统中用于查看文本文件内容的命令行工具。与 cat 不同,less 允许用户以分页的形式查看文件,这意味着它非常适合用来浏览大文件,因为它不会一次性将整个文件加载到屏幕中,而是根据需要逐页显示内容。

cp 

cp a.txt ./aa.txt

cp -r dist /usr/app/

cp是 Linux 和 Unix 系统中用于复制文件或目录的命令。-r 选项表示递归复制,意味着不仅复制指定目录下的文件,还会复制其下的所有子目录和文件。

mv 

// 将my_folder 文件夹 移动到/backup 下
mv my_folder /backup/

mv是 Linux 和 Unix 系统中用于移动文件或目录以及重命名文件或目录的命令。

  • 当“源”和“目标”位于同一个目录下时,mv 命令的作用是重命名
  • mv oldname.txt newname.txt会将 oldname.txt 重命名为newname.txt

mkdir 

mkdir test

mkdir -p test/aaa/bbb/ccc

mkdir是 Linux 和 Unix 系统中用于创建新目录(文件夹)的命令,-p选项可以递归创建目录,不加-p只能创建单目录



rm 

rm -rf my_folder

rm是 Linux 和 Unix 系统中用于删除文件或目录的命令。它是一个非常强大但也非常危险的命令,因为删除的文件通常很难恢复(不像回收站) 

-r 表示递归删除(删除文件夹必须 -r) -f为强制删除

过滤grep 

cat aa.txt | grep hello

grep 是一个强大的文本搜索工具,用于在文件中查找包含特定模式(pattern)的行。这里的模式就是 "hello"。会从其标准输入(这里是从 cat aa.txt 接收到的文件内容)中搜索含有 "hello" 字符串的行,并将这些行输出到标准输出。 

tail -f 

tail -f error.log

tail -f 是它最强大的功能之一,实时跟踪文件的更新。tail -f 会持续监听文件的变化,当有新内容被追加到文件末尾时(例如日志文件被写入新记录),tail 会立即将这些新内容输出到终端。一般查看日志文件较多

后台执行(&)

tail -f error.log &

正常我们在终端启动一个进程时,通常它会在前台运行,占据你的终端,直到完成或被中断。你可以使用 & 符号将命令放到后台运行,这样你就可以在同一个终端中继续执行其他命令

jobs

jobs

提示:ps、kill 命令在下面有说到

jobs是一个在 Unix 和 Linux shell(如 bash)中使用的命令,用于列出当前 shell 会话中所有在后台运行的作业(jobs) 

注意: jobs 和 ps -ef 都是用于查看系统中进程状态的命令,但它们的作用范围和使用场景有所不同。jobs 命令主要用于显示当前 shell 会话中正在运行或已停止的后台作业(jobs);而 ps -ef 是一个更广泛的工具,用于显示整个系统中所有进程的详细信息,而不仅仅限于当前 shell 会话中的作业。

跟jobs相关的其他命令:

1. 当我们在前台正在运行一个进程,例如 tail -ef error.log,我们按下【Ctrl + Z】,这会将当前前台进程暂停并放到后台。

2. fg %作业号:将指定的后台作业带回前台,例如,如果作业号是1,可以 fg %1。注意:fg %1 和 fg 1 其实是等价的,这里的%用来明确指示你指的是作业号(job ID),而不是进程ID(PID)

3. bg %作业号:如果你之前暂停了某个后台作业(例如通过 Ctrl+Z),现在想要让它在后台继续运行,例如作业号是1,可以使用 bg %1 让其在后台继续运行。注意:bg %1 和 bg 1 其实是等价的,这里的%用来明确指示你指的是作业号(job ID),而不是进程ID(PID)

4. kill %作业号:这条命令是直接终止作业

5. kill -9 【pid】:这条是直接杀死进程,可以通过ps -ef查看pid

df 

df -h

df 是 Disk Free 的缩写,是一个用于显示 Linux 和 Unix 系统上磁盘空间使用情况的命令。它能够展示每个已挂载文件系统的磁盘使用情况和可用空间。 

df -h 是一个常用的变体,它使得输出更加易读,通过 -h--human-readable 选项,df 会自动将大小调整为最适合阅读的单位(如 KB、MB、GB),而不是默认的仅以 KB 显示。

ps 

ps -ef | grep nginx

 ps是 Linux 和 Unix 系统中一个用于显示当前进程状态的命令。ps 是 "process status" 的缩写,它能够提供系统中运行的进程的快照信息。

-e 显示所有进程

-f 全格式显示(包含 UID、PPID、C 等)

输出示例:

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 10:00 ?        00:00:01 /sbin/init
john      1234  1230  1 10:05 pts/0    00:00:10 vim document.txt

pstree 

pstree

 pstree可以将进程以树状的形式展示

kill 

// 可以先通过ps 查看当前的进程
ps -ef | grep xxx

// 然后杀死进程
kill -9  [pid]

kill 是一个在 Unix 和 Linux 系统中用于向进程发送信号的命令。默认情况下,kill 发送的是 TERM 信号(终止信号),用于请求进程正常退出。然而,kill 命令实际上可以用来发送多种不同的信号给进程,这使得它非常灵活和强大。

  • SIGTERM (15):默认信号,请求进程正常终止。通常,程序会执行清理工作后退出。
  • SIGHUP (1):挂起信号,通常用于通知进程重新加载配置文件。
  • SIGINT (2):中断信号,类似于按下 Ctrl+C,请求进程中断当前操作。
  • SIGKILL (9):强制杀死进程信号,不能被捕获或忽略,是最强硬的终止方式。
  • SIGSTOP (19 / 17 / 18):暂停进程信号,不能被捕获或忽略。
  • SIGCONT (18 / 19):继续运行已停止的进程信号。

 kill -9 [pid] 是一个在 Linux 和 Unix 系统中用于强制终止指定进程的命令。

rz 

rz

命令是 lrzsz 软件包中的一个组件,用于在 Linux 和 Unix 系统中通过 ZMODEM 协议上传文件。它提供了一种简便的方式,让用户可以通过终端直接上传文件到服务器。通常情况下,rzsz 命令一起使用,后者用于从服务器下载文件到本地。

当你需要将本地计算机上的文件上传到远程服务器时,如果服务器支持 ZMODEM 协议并且安装了 lrzsz 包,你可以使用 rz 命令来实现这一操作。这在没有图形界面的服务器管理或通过 SSH 连接服务器时特别有用。

在使用 rz 命令之前,确保你的系统上已经安装了 lrzsz 软件包。如果尚未安装,可以使用如下命令进行安装:

  • 在基于 Debian/Ubuntu 的系统上:
sudo apt-get install lrzsz
  • 在基于 Red Hat/CentOS 的系统上:
sudo yum install lrzsz

sz

sz filename

sz是 lrzsz 软件包中的一个命令,用于通过 ZMODEM 协议从远程服务器下载文件到本地计算机。它是 "send ZMODEM" 的缩写。

当你在支持 ZMODEM 协议的终端软件(如 SecureCRT, Xshell, PuTTY (配合额外工具) 等)中使用 sz 时,它会启动文件传输过程,让你选择要下载的文件,并将其发送到你的本地机器。

在使用 sz 命令之前,确保你的系统上已经安装了 lrzsz 软件包。如果尚未安装,可以使用如下命令进行安装:

  • 在基于 Debian/Ubuntu 的系统上:
sudo apt-get install lrzsz
  • 在基于 Red Hat/CentOS 的系统上:
sudo yum install lrzsz 或 sudo dnf install lrzsz

wget 

wget https://unpkg.com/vue@3/dist/vue.global.js

wget 是一个在 Linux、Unix 和类 Unix 系统中广泛使用的命令行工具,用于从网络上下载文件。它支持 HTTP、HTTPS 和 FTP 协议,并且可以在不稳定或慢速的网络连接下可靠地工作。wget 的名字来源于 "World Wide Web" 和 "get" 的组合。

-o 将下载的内容保存为指定的文件名(wget vg.js https://unpkg.com/vue@3/dist/vue.global.js)

yum 

/** 安装软件包 */
sudo yum install git
sudo yum install nginx

/** 更新所有可更新的包 */
sudo yum update

/** 只更新指定的包 */
sudo yum update nginx

/** 卸载软件包 */
sudo yum remove nginx

yum(Yellowdog Updater, Modified)是基于 RPM 包管理系统的 Linux 发行版(如 CentOS、RHEL、Fedora 的早期版本)中使用的高级包管理器。它能够自动从指定的软件仓库下载、安装、更新、删除和管理软件包,并自动处理依赖关系。 

tar 

tar [选项] [归档文件名] [文件或目录...]

// 例如:
tar -cf test.tar ./test

tar 是 Linux 和 Unix 系统中一个非常重要的归档工具,名字来源于 "Tape ARchive"(磁带归档)。它最初用于将文件写入磁带等顺序存储设备,但现在主要用于将多个文件和目录打包成一个单独的归档文件(通常称为 "tarball"),并且常常结合压缩程序(如 gzip, bzip2, xz)来减小文件体积。

一些其他选项,可自行查询。

zip 

zip [选项] 压缩包名.zip 文件或目录...

// 例如:
zip -r test.zip ./test

zip是一个广泛使用的命令行工具,用于在 Linux、Unix 和 Windows 系统中压缩文件和目录。它能够将一个或多个文件和目录打包成一个 .zip 文件,并提供不同的压缩级别以满足不同的需求。.zip 文件格式也是跨平台的,因此生成的压缩文件可以在几乎任何操作系统上打开。 

 -r 表示递归处理目录,包括子目录中的所有文件

ssh

ssh [选项] 用户名@主机地址
  • 用户名:你在远程主机上的用户名。
  • 主机地址:远程主机的 IP 地址或域名。

常用选项

  • -p 端口号:指定 SSH 服务监听的端口(默认为 22)。
ssh -p 2222 user@hostname
  • -i 私钥文件:使用指定的私钥文件进行身份验证(通常用于密钥对认证)。
ssh -i ~/.ssh/id_rsa user@hostname
  • -L:设置本地端口转发(隧道)。
ssh -L 8080:localhost:80 user@hostname

这会将本地的 8080 端口转发到远程主机的 80 端口。

  • -X-Y:启用 X11 转发,允许在本地显示远程主机的图形界面程序。
ssh -X user@hostname

使用示例

  1. 基本连接
ssh user@192.168.1.100

使用用户名 user 连接到 IP 地址为 192.168.1.100 的远程主机。

  1. 指定端口
ssh -p 2222 user@hostname

连接到远程主机的 2222 端口。

  1. 使用密钥认证
ssh -i ~/.ssh/mykey user@hostname

使用位于 ~/.ssh/mykey 的私钥文件进行身份验证。

  1. 免密码登录设置: 为了实现免密码登录,你可以生成一对 SSH 密钥,并将公钥复制到远程主机的 ~/.ssh/authorized_keys 文件中。可以使用 ssh-copy-id 命令简化这一过程:
ssh-copy-id user@hostname

安全性

  • 加密通信:SSH 使用强加密算法保护数据传输。
  • 身份验证:支持多种身份验证方式,包括密码、公钥认证、双因素认证等。
  • 防止中间人攻击:首次连接时,SSH 会提示你确认远程主机的指纹,以防止中间人攻击。

其他相关命令

  • scp:基于 SSH 的安全文件复制命令
scp file.txt user@hostname:/path/to/destination
  • sftp:基于 SSH 的安全文件传输协议客户端。
sftp user@hostname
  • ssh-keygen:生成 SSH 密钥对。
ssh-keygen -t rsa -b 4096

chmod 

chmod 777 dist

chmod 是一个用于修改文件或目录权限的 Linux 命令 ,将权限设置为 777 通常意味着“完全开放”,任何用户都可以读取、修改和执行该文件或目录。这在某些情况下可能是必要的

4 - 读取权限  2 - 写权限  1 - 执行权限

排序sort 

cat a.txt | sort

按行对文本进行排序,默认按字典序(ASCII 码值)进行升序排列。 

history 

history

history命令在 Linux 和 Unix 系统中用于显示已执行命令的历史记录。它对于回顾之前的操作、快速重复使用命令或者进行脚本编写非常有用。 



type

type cd

type ls

type history

type 可以帮助用户了解某个命令是作为 shell 内置命令、别名、文件还是函数存在,并指出其具体路径(如果适用)。这对于理解系统如何定位和执行命令非常有用。 

locate 

locate filename

 是一个在 Linux 和 Unix 系统中用于快速查找文件和目录的命令。它通过搜索一个预先构建好的数据库(通常是 mlocate.dblocatedb)来定位文件,这个数据库包含了系统中大部分文件和目录的路径。由于 locate 是在数据库中进行搜索,而不是实时扫描整个文件系统,因此它的速度非常快。

ip a

ip a

ip a 是 ip addrip address 命令的简写形式,用于显示网络接口的配置信息。该命令是现代 Linux 系统中用于网络配置和查询的主要工具之一,取代了旧的 ifconfig 命令 

whoami

whoami

whoami 是一个简单的命令行工具,用于打印当前登录用户的用户名。它在 Unix、Linux 以及 macOS 等系统中非常常用,可以帮助用户快速确认自己当前以哪个用户身份登录。

which 

which yum

which cd

which 是一个在 Unix 和 Linux 系统中用于查找可执行文件位置的命令。当你输入一个命令名时,which 会搜索环境变量 $PATH 中列出的目录,找到第一个匹配的可执行文件并显示其完整路径。 

alias 

alias [别名]='[实际命令]'

alias ll='ls -al'

alias 是一个在 Unix 和 Linux 系统中用于创建命令别名的 shell 内置命令。通过 alias,你可以为长命令或常用命令序列定义一个简短的名称,从而提高工作效率和命令行体验。 

wc 

wc -l a.txt

wc -w a.txt

wc 是 Linux 和 Unix 系统中一个用于统计文件信息的命令,其名称是 "word count"(字数统计)的缩写。但它不仅能统计字数,还能统计行数、字符数和字节数 

-l 只显示行数

-w 只显示字数

head 

head a.txt

head 是一个在 Linux 和 Unix 系统中用于查看文件开头部分内容的命令。默认情况下,它会显示文件的前 10 行内容。 

chown 

chown shark a.txt

chwon 是 Linux 和 Unix 系统中用于更改文件或目录的所有者和组的命令。它允许系统管理员改变文件或目录的用户所有者和/或组所有者,这对于管理文件权限非常有用。

使用命令 chown shark a.txt 的目的是将文件 a.txt 的所有者更改为用户 shark。这意味着,如果操作成功,a.txt 文件的所有权将从当前所有者转移到用户 shark。 

adduser

// 添加一个名为 john 的用户
sudo adduser john

adduser 是在 Linux 系统中用于创建新用户的命令行工具,它提供了一种交互式的、用户友好的方式来添加用户。尽管不同发行版可能有一些差异,但大多数情况下 adduser 实际上是 useradd 命令的一个符号链接或一个更友好的前端,它简化了用户创建的过程,并自动处理一些默认设置。 

passwd 

sudo passwd john

是一个用于设置或更改用户 john 的密码的 Linux 命令。

sudo:以超级用户(root)权限执行接下来的命令。更改其他用户的密码需要管理员权限

当你运行 sudo passwd john 时,系统会执行以下步骤 :

  1. 验证你的权限:系统会检查你是否有权使用 sudo。如果需要,它会提示你输入你自己的密码(即当前登录用户的密码,而不是 john 的密码)。
  2. 输入新密码:一旦 sudo 权限验证通过,passwd 命令会提示你为用户 john 输入新的密码
  3. 确认新密码:系统会要求你再次输入一次新密码以进行确认。
  4. 密码更新:如果两次输入的新密码一致,系统会成功更新用户 john 的密码。

printenv 

printenv

printenv | grep PATH

printenv 是一个在 Unix、Linux 和 macOS 系统中用来显示全部或指定环境变量的命令。当你在终端直接输入 printenv 并执行时,它会列出当前 shell 会话中的所有环境变量及其值。如果你希望查看特定的环境变量,可以在 printenv 命令后面直接加上环境变量的名字,例如 printenv PATH 将只显示 PATH 环境变量的值。 

sleep

sleep 100 &

// 后面可以带单位  s-秒(默认) m-分钟  h-小时  d-天
sleep 100s &

sleep 100 是一个在 Unix 和 Linux 系统中的命令,用于让调用它的进程暂停或休眠指定的时间。在这个例子中,sleep 100 命令会让当前的 shell 或脚本暂停执行 100 秒(即1分40秒) 

  • sleep 100:这是一个命令,它会让运行它的进程暂停 100 秒(1分40秒)。
  • &:这是一个 shell 操作符,放在命令的末尾,表示将该命令放到后台(background)执行