Linux 基础修炼手册

Go 程序员的 Linux 修炼手册

一、基础命令:牢固的基础才是进阶的基石

1. cd 进入某个目录

bash 复制代码
# 进入我的项目目录
cd home/user/workspace/my-project
# 返回上一级目录
cd ..
# 切换到上一次所在的目录
cd -
# 切换到当前用户的主目录
cd
或者
cd ~

2. ls 列出文件

bash 复制代码
# 列出所有的文件(只显示文件名)
ls
# 以长格式列出文件
ls -l
# 以长格式列出文件,并显示人类能看懂的文件大小
ls -lh
# 显示所有文件,包括隐藏文件(以 . 开头的文件)
ls -a
  • ls -lh示例:
bash 复制代码
drwxrwxr-x  9 user user 4.0K  7月 17 15:50 my-project1
drwxrwxr-x 17 user user 4.0K  7月 18 10:08 my-project2

每个字段分别对应:权限、硬链接数、所有者、所有组、文件大小、最后修改日期和时间、文件/目录名

3.pwd 列出当前所在路径

bash 复制代码
pwd
  • 示例:
arduino 复制代码
/home/user/workspace

4.mkdir 创建目录

bash 复制代码
mkdir new_folder

5.rmdir 删除空目录

bash 复制代码
rmdir empty_folder

6.rm 删除目录/文件

bash 复制代码
# 删除 file.txt
rm file.txt
# 强制删除文件,不提示确认
rm -f file.txt
# 强制递归删除目录(不可撤销恢复,谨慎使用)
rm -rf folder/

7.mv移动或重命名文件/目录

bash 复制代码
# 移动file.txt文件至/tmp/file目录下
mv file.txt /tmp/file
# 将file.txt文件重命名为newfile.txt
mv file.txt newfile.txt

二、文件内容查看:一个绅士要学会优雅地阅读

1.cat 查看整个文件内容

  • 主要用于查看像配置文件之类的较小的文件,或者将多个文件连接成一个文件
bash 复制代码
# 查看配置文件内容
cat config.yml
# 合并文件
cat file1.txt file2.txt > file3.txt
# 显示行号
cat -n filename.txt
# 显示非打印字符(例如 Tab 键)
cat -v filename.txt

2.less分页查看大型文件

  • 它允许您在不将整个文件加载到内存的情况下查看文件 。它比 cat 更强大,特别适合查看大文件,因为它支持前进、后退、搜索等功能。
bash 复制代码
less filename.log

**空格键 ** 或 f:向下翻一页。

b:向上翻一页。

j:向下滚动一行。

k:向上滚动一行。

g:跳转到文件开头。

G:跳转到文件末尾。

/ :向下搜索,输入关键词后按 Enter,然后按 n 查找下一个匹配项,N 查找上一个匹配项。

? :向上搜索(用法同 /)。

q :退出 less

3.tail查看文件末尾内容

它在查看日志文件或监控文件实时更新时非常有用

bash 复制代码
# 正常使用,显示文件最后10行(可以通过设置 -n 属性来设置最后行数,例如-n 50)
tail filename.log
# 实时监控文件(最常用)
tail -f filename.log
# 可以配合grep来查看特定的内容,例如:查看日志中的ERROR标签信息
tail -n 100 -f filename.log | grep "ERROR"

head同理,默认显示文件前10行内容,由于不常使用,不多赘述

三、文本编辑器:看多了,偶尔也要试试手

在编辑一些重要的配置文件时,会出现没有权限更新的情况,这时要在命令前加上sudo

1. nano

nano 编辑器对新手更友好,可以正常使用ctrl+s的方式来保存编辑

bash 复制代码
nano file.txt

2. vim

vim编辑器功能强大但学习曲线较陡峭

  • 一般进入后按i键进行插入修改,按esc键退出修改,输入:wq进行保存退出
  • :w意为保存
  • :q意为退出,:q!强制退出
bash 复制代码
vim file.txt

四、进程资源管理:想要进一步了解系统的秘密吗?快去探寻吧

1.ps 显示当前运行的进程

bash 复制代码
# 显示所有用户的所有进程的详细信息
ps aux
# 同理 ps 也可以配合 grep 来查看指定进程的信息
ps aux | grep "user"

2. top

实时显示系统进程状态和资源使用情况(CPU、内存等)

bash 复制代码
top
  • top进入交互页面,按q退出

3.df 显示磁盘空间使用情况

bash 复制代码
# 以人类可读的格式显示磁盘分区使用情况
df -h

4.du 显示文件或目录的磁盘使用情况

bash 复制代码
# 显示目录的总大小
du -sh folder/

5. free 显示内存使用情况

bash 复制代码
# 以人类可读的格式显示内存使用情况
free -h

6.whoami 显示当前用户的用户名

bash 复制代码
whoami
# 示例输出:
user

7.uname 显示系统信息

bash 复制代码
# 显示所有系统信息,包括内核版本、操作系统等
uname -a

五、权限管理:有些事情做不了,不是他的错

1. chmod 改变文件或目录的权限

bash 复制代码
# 设置 script.sh 为所有者可读写执行,组和其他用户只读执行
chmod 755 script.sh
# 为 script.sh 添加执行权限
chmod +x script.sh

通过ls -lh命令,我们可以看到类似这样的内容:drwxrwxr-x

  • d:该文件为目录,没有则是文件
  • r:读权限
  • w:写权限
  • x:执行权限
  • -:无权限

这一串一共10个字符,第一位是判断是文件还是目录,后面每3位为一组

第一组:所有者(owner)的权限

第二组:所属组(group)的权限

第三组:其他人(others)的权限

2.chown 改变文件或目录的所有者

bash 复制代码
# 将 file.txt 的所有者改为 user,所属组改为 user
chown user:user file.txt

六、网络命令:不是你代码错了,是你网卡断了

1.ping 测试网络连通性

bash 复制代码
# 测试连接
ping google.com

2.ip addr

bash 复制代码
# 显示所有网络接口的 IP 地址、MAC 地址等信息
ip addr

3.netstat/ss查看端口监听情况

bash 复制代码
# 查看端口监听情况,确认服务有没有正常启动,在不添加sudo的情况下,Process的信息会隐藏
netstat -nptl
sudo ss -nptl

4.curl/wget检查接口

bash 复制代码
# 用命令行替代浏览器
curl http://localhost:8080/helloworld
wget http://localhost:8080/demo

七、帮助命令:你最好的助手,他一直都在

当您忘记某个命令的用法或者参数的意义时,你可以使用

man/--help

bash 复制代码
# 查看命令的详细帮助文档
man ls
man ss
man chown
# 显示简短的帮助信息
ls --help
ss --help

八、服务管理:别在为关闭终端就关闭项目而苦恼了,快把他配成服务

建议线上服务都注册为 systemd 服务,这样你就能更优雅地管理它

管理服务主要使用 systemctl 命令,操作时通常需要 sudo 权限

假设服务名为 my-app

  • 启动服务:
bash 复制代码
sudo systemctl start my-app
  • 停止服务:
bash 复制代码
sudo systemctl stop my-app
  • 重启服务:
bash 复制代码
sudo systemctl restart my-app
  • 查看服务状态: 这是最重要的调试命令,可以查看服务是否正在运行、PID、内存占用以及最近的日志。
bash 复制代码
sudo systemctl status my-app
  • 设置开机自启:
bash 复制代码
sudo systemctl enable my-app
  • 取消开机自启:
bash 复制代码
sudo systemctl disable my-app
  • 查看服务日志: systemd 通过 journald 管理日志。您可以使用 journalctl 查看服务的完整日志。
bash 复制代码
# 查看指定服务的所有日志
sudo journalctl -u my-app

# 实时查看最新的日志(类似于 tail -f)
sudo journalctl -u my-app -f

# 查看最近 100 行日志
sudo journalctl -u my-app -n 100

相关推荐
huangyuchi.41 分钟前
【Linux】进程切换与优先级
linux·运维·笔记·进程切换·进程优先级·寄存器·linux调度算法
努力一点9482 小时前
linux系统底层逻辑 开机顺序 ubuntu22.04系统
linux·运维·服务器·ubuntu·ai·gpu算力
Kendra9193 小时前
Linux文件系统权限
linux·运维
猫头虎5 小时前
[精选] 2025最新生成 SSH 密钥和 SSL 证书的标准流程(Linux/macOS/Windows系统服务器通用方案)
linux·服务器·开发语言·macos·ssh·ssl·ai编程
kfepiza5 小时前
Linux网络管理工具NetworkManager笔记250726
linux·网络协议
贺贺丿5 小时前
Docker2-容器应用工具及docker命令
linux·运维·docker·容器·自动化·云计算
花下的晚风7 小时前
如何搭建Linux环境下的flink本地集群
linux·flink
RainbowSea7 小时前
用户中心项目部署上线03
linux·服务器·spring boot
Gss7777 小时前
Vim 编辑器全模式操作指南
linux·编辑器·vim
sagima_sdu7 小时前
银河麒麟安装软件商店方法
linux·运维·服务器