面向开发人员的 Linux 命令

2025-05-26

面向开发人员的 Linux 命令

替代文本


促销:以标签形式整理您的 Gmail 标签

GitHub 徽标 tuladhar / gmail-标签作为选项卡

一个开源的 chrome 扩展程序,用于将您的 Gmail 标签组织为标签。


面向开发人员的基本 Linux 命令介绍

Linux是一个开源操作系统,为Android 手机公共云、智能电视、物联网设备、卫星提供支持——它无处不在;从智能手机到大型强子对撞机(LHC)。

Linus Torvalds 是 Linux 内核的创建者,他还创建了开发人员日常使用的分布式版本控制系统“Git”。

了解如何使用 Linux 命令是开发人员必须具备的一项基本技能。

目录

  1. 设置游乐场

  2. 评论

  3. 包管理器

  4. 目录导航

  5. 系统信息

  6. 硬件信息

  7. 系统监控、统计和调试

  8. 文件和目录

  9. 流程管理

  10. 文件权限

  11. 联网

  12. 文本搜索

  13. 磁盘使用情况

  14. 管道和重定向

  15. 环境变量


设置游乐场

要学习和尝试 Linux 命令,可以安全地在 Linux 容器中运行它。Docker 是运行容器的热门选择,如果您尚未安装,请从下面的链接安装。

获取 Docker

一旦 Docker 安装并运行,请继续运行以下命令来启动Ubuntu docker容器:

$ docker pull ubuntu

$ docker run --rm -it ubuntu bash
root@e4675284d809:/#
Enter fullscreen mode Exit fullscreen mode

在容器内部,运行以下命令来恢复在默认 Ubuntu 上找到的内容和包,以使其更适合交互和学习使用。

# Type 'y' when prompted
root@e4675284d809:/# unminimize
Enter fullscreen mode Exit fullscreen mode

现在,安装一个名为tmux的程序,用于在单个终端窗口中运行多个 shell 会话。

$ apt update
$ apt install tmux
Enter fullscreen mode Exit fullscreen mode

通过运行 tmux 命令启动 tmux

$ tmux
Enter fullscreen mode Exit fullscreen mode

TMUX 简介

  • 启动新的选项卡式窗口:按下Ctrl+b,释放,然后按c

  • 水平启动新窗口:按下Ctrl+b,释放,然后按下"

  • 垂直启动新窗口:按下Ctrl+b,释放,然后按下%

  • 在选项卡式窗口之间切换:按下Ctrl+b,释放并按下pn

  • 在水平或垂直窗口之间切换:按下Ctrl+b,释放,然后按下;

  • 关闭窗口:按下Ctrl+b,释放,然后按下x

  • 重命名选项卡式窗口:按下Ctrl+b,释放,然后按下,

  • 滚动窗口控制台输出:按下Ctrl+b,释放,然后使用箭头移动


评论

Linux 命令行中的注释以 # 开头

$ # This is a comment
Enter fullscreen mode Exit fullscreen mode

包管理器

apt 是一个包管理器,用于管理 Ubuntu Linux 中的包。

更新软件包存储库

$ apt update
Enter fullscreen mode Exit fullscreen mode

批量升级包

$ apt
Enter fullscreen mode Exit fullscreen mode

搜索名为 htop 的包

$ apt search htop
Enter fullscreen mode Exit fullscreen mode

显示有关包的信息

$ apt show htop
Enter fullscreen mode Exit fullscreen mode

安装名为 htop 的包

$ apt install htop
Enter fullscreen mode Exit fullscreen mode

删除名为 htop 的包

$ apt remove htop
Enter fullscreen mode Exit fullscreen mode

安装多个包

$ apt install htop less
Enter fullscreen mode Exit fullscreen mode

apt-file是一个用于搜索包含文件的软件包的程序。如果你不记得软件包的名称,但知道命令,那么这个程序会非常有帮助。

使用 apt 安装 apt-file

$ apt install apt-file
Enter fullscreen mode Exit fullscreen mode

更新 apt-file 缓存

$ apt-file update
Enter fullscreen mode Exit fullscreen mode

搜索提供 postgres 命令的包

$ apt-file search bin/psql
Enter fullscreen mode Exit fullscreen mode

目录导航

切换到 /home 目录

$ cd /home
Enter fullscreen mode Exit fullscreen mode

切换到上一个目录

$ cd -
Enter fullscreen mode Exit fullscreen mode

进入目录树的上一级

$ cd ..
Enter fullscreen mode Exit fullscreen mode

打印您所在的当前目录

$ pwd
Enter fullscreen mode Exit fullscreen mode

系统信息

显示Linux内核信息

$ uname -a
Enter fullscreen mode Exit fullscreen mode

显示内核发布信息

$ uname -r
Enter fullscreen mode Exit fullscreen mode

显示系统运行时间+负载

$ uptime
Enter fullscreen mode Exit fullscreen mode

显示系统主机名

$ hostname
Enter fullscreen mode Exit fullscreen mode

显示主机的IP地址

$ hostname -I
Enter fullscreen mode Exit fullscreen mode

显示系统重启历史记录

$ last reboot
Enter fullscreen mode Exit fullscreen mode

显示当前日期和时间

$ date
Enter fullscreen mode Exit fullscreen mode

显示本月的日历

$ cal
Enter fullscreen mode Exit fullscreen mode

显示谁在线

$ w
Enter fullscreen mode Exit fullscreen mode

您以谁的身份登录

$ whoami
$ id
Enter fullscreen mode Exit fullscreen mode

硬件信息

显示CPU信息

$ cat /proc/cpuinfo
Enter fullscreen mode Exit fullscreen mode

显示 CPU 核心数

$ nproc
Enter fullscreen mode Exit fullscreen mode

显示内存信息

$ cat /proc/meminfo
Enter fullscreen mode Exit fullscreen mode

显示进程的环境变量,例如:PID 1

$ cat /proc/1/environ
Enter fullscreen mode Exit fullscreen mode

显示可用和已用内存(-h 表示人类可读,-m 表示 MB,-g 表示 GB。)

$ free -h
Enter fullscreen mode Exit fullscreen mode

系统监控、统计、调试

显示和管理正在运行的进程

$ top
Enter fullscreen mode Exit fullscreen mode

安装并使用友好的交互式进程查看器(顶部的替代)

$ apt install htop
$ htop
Enter fullscreen mode Exit fullscreen mode

显示处理器相关统计信息(每1秒刷新一次)

$ mpstat 1
Enter fullscreen mode Exit fullscreen mode

注意:如果遇到以下错误:/usr/bin/mpstat:没有此文件或目录。请搜索并安装提供 mpstat 工具的软件包。*

$ apt-file search bin/mpstat
sysstat: /usr/bin/mpstat

$ apt install sysstat
Enter fullscreen mode Exit fullscreen mode

显示虚拟内存统计信息(每1秒刷新一次)

$ vmstat 1
Enter fullscreen mode Exit fullscreen mode

显示磁盘 I/O 统计信息(每 1 秒刷新一次)

$ iostat 1
Enter fullscreen mode Exit fullscreen mode

列出系统上所有打开的文件

$ lsof
Enter fullscreen mode Exit fullscreen mode

列出用户打开的文件(例如:root)

$ lsof -u USER
Enter fullscreen mode Exit fullscreen mode

列出由某个进程 PID 打开的文件(例如:1)

$ lsof -p PID
Enter fullscreen mode Exit fullscreen mode

显示当前目录占用的磁盘空间(-h 为人类可读,-s 为总结)

$ du -sh
Enter fullscreen mode Exit fullscreen mode

执行“df -h”,每 1 秒显示一次定期更新(专业提示:-d 标志显示视觉更新)

$ watch -n1 df -h
Enter fullscreen mode Exit fullscreen mode

文件和目录

以长列表人类可读的格式列出当前目录中的所有文件(包括隐藏文件)(指定.是可选的)。

$ ls -hal .
Enter fullscreen mode Exit fullscreen mode

显示当前工作目录

$ pwd
Enter fullscreen mode Exit fullscreen mode

创建一个或多个新的空文件

$ touch file1 file2
Enter fullscreen mode Exit fullscreen mode

创建新目录

$ mkdir dir1
Enter fullscreen mode Exit fullscreen mode

使用 -p 选项创建目录树

$ mkdir -p dir1/dir2/dir3
Enter fullscreen mode Exit fullscreen mode

使用 tree 命令列出目录树

$ tree dir1
Enter fullscreen mode Exit fullscreen mode

注意:安装 tree 包,如果遇到以下错误:
bash: tree: command not found*

$ apt install tree
Enter fullscreen mode Exit fullscreen mode

将文件从一个目录复制(重复)到另一个目录(-v 选项用于启用详细模式)

$ cp -v file1 dir1/file1-copy
Enter fullscreen mode Exit fullscreen mode

将目录及其所有内容复制到新目录

$ cp -vr dir1 dir1-copy
Enter fullscreen mode Exit fullscreen mode

重命名或移动文件。如果 file2 是目录,则 file1 会移动到该目录。

$ mv -v file1 file1-rename
$ mv -v file1-rename dir1
Enter fullscreen mode Exit fullscreen mode

删除文件或空目录(-f 选项强制删除而不询问)

$ rm file1
Enter fullscreen mode Exit fullscreen mode

递归删除目录及其内容(-v 选项用于启用详细模式)

$ rm -vr dir1
Enter fullscreen mode Exit fullscreen mode

创建指向文件或目录的符号链接(指针)

$ ln -s file1 file1-link
Enter fullscreen mode Exit fullscreen mode

将简单文本写入文件

echo "hello, world!" > hello.txt
Enter fullscreen mode Exit fullscreen mode

查看文件的内容

$ cat hello.txt
Enter fullscreen mode Exit fullscreen mode

对大型文件进行分页

$ less hello.txt
Enter fullscreen mode Exit fullscreen mode

显示文件的前20行

$ head -n 20 hello.txt
Enter fullscreen mode Exit fullscreen mode

显示文件的最后 20 行

$ tail -n 20 hello.txt
Enter fullscreen mode Exit fullscreen mode

显示文件的最后 10 行并跟踪文件的更新情况。

$ tail -f hello.txt
Enter fullscreen mode Exit fullscreen mode

流程管理

进程是程序的运行实例

显示当前正在运行的进程

$ ps
Enter fullscreen mode Exit fullscreen mode

显示系统上的每个进程。

$ ps auxf
Enter fullscreen mode Exit fullscreen mode

显示进程名称的进程信息

$ ps uf -C processname
Enter fullscreen mode Exit fullscreen mode

显示正在运行的进程的交互式实时视图

$ top
$ htop
Enter fullscreen mode Exit fullscreen mode

根据名称查找进程 ID

pgrep nginx
Enter fullscreen mode Exit fullscreen mode

终止指定进程 ID 的进程。默认情况下,发送 TERM 信号

$ kill PID
Enter fullscreen mode Exit fullscreen mode

向具有给定进程 ID 的进程发送自定义信号

$ kill -s SIGNAL_NUMBER pid
Enter fullscreen mode Exit fullscreen mode

列出所有可用信号

$ kill -l
Enter fullscreen mode Exit fullscreen mode

根据名称终止进程

$ pkill nginx
Enter fullscreen mode Exit fullscreen mode

将命令作为后台作业运行

$ (sleep 30; echo "woke up after 30 seconds") &
Enter fullscreen mode Exit fullscreen mode

列出后台作业

$ jobs
Enter fullscreen mode Exit fullscreen mode

显示已停止或后台作业

$ bg
Enter fullscreen mode Exit fullscreen mode

将最新的后台作业带到前台

$ fg
Enter fullscreen mode Exit fullscreen mode

将作业 N 置于前台

$ fg N
Enter fullscreen mode Exit fullscreen mode

终止作业 N

$ kill %N
Enter fullscreen mode Exit fullscreen mode

文件权限

授予所有者所有权限,授予组读取执行权限,不授予其他权限

# Create a file
$ touch file1

# Set permission using either of the method
$ chmod 750 file1
$ chmod u=rwx,g=rx,o= file1

# List the file permission
$ ls -lh file1
Enter fullscreen mode Exit fullscreen mode

将文件或目录的所有权更改为给定的用户和组

$ chown user:group file1
Enter fullscreen mode Exit fullscreen mode

联网

显示所有可用网络接口的信息

$ ip addr
$ ifconfig -a          # deprecated
Enter fullscreen mode Exit fullscreen mode

显示eth0接口的信息

$ ip addr show eth0
$ ifconfig eth0        # deprecated
Enter fullscreen mode Exit fullscreen mode

显示 IP 路由表

$ ip route
$ route                # deprecated
Enter fullscreen mode Exit fullscreen mode

Ping 主机名或 IP 地址

$ ping google.com
$ ping 8.8.8.8
Enter fullscreen mode Exit fullscreen mode

显示域名的注册信息

$ whois medium.com
Enter fullscreen mode Exit fullscreen mode

DNS 查找域

$ dig medium.com A     # IPv4 addresses
$ dig medium.com AAAA  # IPv6 addresses
$ dig medium.com NX    # Nameservers

$ host medium.com     # IPv4 addresses
Enter fullscreen mode Exit fullscreen mode

显示本地机器的主机名和IP地址

$ hostname
$ hostname -i
Enter fullscreen mode Exit fullscreen mode

从远程 HTTP 服务器下载文件

$ wget [http://ipv4.download.thinkbroadband.com/5MB.zip](http://ipv4.download.thinkbroadband.com/5MB.zip)
$ curl --output 5MB.zip [http://ipv4.download.thinkbroadband.com/5MB.zip](http://ipv4.download.thinkbroadband.com/5MB.zip)
Enter fullscreen mode Exit fullscreen mode

显示所有监听 TCP 或 UDP 端口的进程

$ netstat -plunt
$ lsof -i
$ lsof -i tcp     # only TCP ports
Enter fullscreen mode Exit fullscreen mode

文本搜索

在文本文件中搜索模式

$ grep pattern file

# For example:
$ grep root /etc/passwd
Enter fullscreen mode Exit fullscreen mode

在目录内的文本文件中递归搜索模式

$ grep -R "/bin/bash" /etc
Enter fullscreen mode Exit fullscreen mode

搜索模式并输出模式匹配之前(B)或之后(A)的 N 行

$ grep -B 5 root /etc/passwd
$ grep -A 3 root /etc/passwd
Enter fullscreen mode Exit fullscreen mode

在目录中查找具有匹配文件名的文件

find /etc -iname 'passwd'
find /etc -iname 'pass*'  # glob pattern
Enter fullscreen mode Exit fullscreen mode

根据文件大小查找文件

find / -size +1M #  larger than 1MB
find / -size -1M # smaller than 1MB
Enter fullscreen mode Exit fullscreen mode

磁盘使用情况

显示磁盘存储的可用空间和已用空间

df -h
Enter fullscreen mode Exit fullscreen mode

显示目录或文件消耗的磁盘空间

du -sh /var/log
du -h 5MB.zip
Enter fullscreen mode Exit fullscreen mode

交互式磁盘使用情况浏览器

apt install ncdu
ncdu
Enter fullscreen mode Exit fullscreen mode

管道和重定向


重定向

将命令的正常输出(stdout)重定向到文件

echo "hello" > hello.stdout.txt
echo "world" > hello.stdout.txt
Enter fullscreen mode Exit fullscreen mode

将错误输出(stderr)从命令重定向到文件

cat somefile 2> cat.stderr.txt
Enter fullscreen mode Exit fullscreen mode

将命令的正常输出和错误输出重定向到文件。这对于日志记录很有用。

ps auxf >& processes.txt
Enter fullscreen mode Exit fullscreen mode

将命令的正常输出(stdout)附加到文件,不同于>会覆盖文件

echo "hello" >> hello2.stdout.txt
echo "world! >> hello2.stdout.txt
Enter fullscreen mode Exit fullscreen mode

将命令中的错误输出(stderr)附加到文件

cat some-unknown-file 2>> cat2.stderr.txt
Enter fullscreen mode Exit fullscreen mode

将命令的正常输出和错误输出(stderr)附加到文件

ps auxf &>> processes.txt
Enter fullscreen mode Exit fullscreen mode

管道

shell管道**是一种在命令之间进行通信的方式。

创建一个虚拟文件来学习管道

mkdir pipes-example
cd pipes-example
touch {1..10}.txt
Enter fullscreen mode Exit fullscreen mode

示例 1:使用 sort 命令

ls -1 *.txt | sort -n    # sorts the output in ASC order
ls -1 *.txt | sort -nr   # sorts the output in DESC order
Enter fullscreen mode Exit fullscreen mode

示例 2:使用 head & tail 命令

ls -1 *.txt | sort -n | head -n 5  # show the first 5 lines
ls -1 *.txt | sort -n | tail -n 5  # show the last 5 lines
Enter fullscreen mode Exit fullscreen mode

示例 3:在文本文件中搜索模式

cat /etc/passwd | grep root    # show lines containing string 'root'
Enter fullscreen mode Exit fullscreen mode

环境变量

列出所有环境变量

$ env
Enter fullscreen mode Exit fullscreen mode

显示环境变量的值

echo $HOME
echo $SHELL
Enter fullscreen mode Exit fullscreen mode

创建环境变量

export PORT=80
export PLATFORM=medium.com
Enter fullscreen mode Exit fullscreen mode

删除环境变量

unset PORT
Enter fullscreen mode Exit fullscreen mode

PATH是常见且重要的环境变量之一。如果取消设置它,认为会发生什么?

$ echo $PATH
$ unset PATH
Enter fullscreen mode Exit fullscreen mode

…就是这样!

每个 Linux 命令本身都可以成为一本选项百科全书。如果你想深入了解所有可用选项、作者和示例,可以使用 man 命令,例如:man htop或者man man直接了解 man 命令本身。

文章来源:https://dev.to/ptuladhar3/linux-commands-for-developers-17j
PREV
令人兴奋🤯 TypeScript 技巧一个小注释...内置类型🥱有趣的东西😋
NEXT
console.log 语句的最佳替代方案 🦒 漂亮的 Node.js 日志记录器 ❤️ 谢谢!欢迎留下反馈!