Linux基础操作:常用命令、文件权限与Vim编辑器
各位同学,今天我们来聊聊Linux基础操作。说实话,做验证工程师这几年,我每天打交道最多的就是Linux终端。你想想看,从EDA工具的启动到仿真脚本的运行,再到日志分析,哪一步离得开命令行?所以这部分内容,我建议你当成吃饭喝水一样,练成本能。
一、常用命令:ls, cd, mkdir, rm, cp, mv
这些命令是Linux的“手脚”,每天都要用。我刚开始学的时候,总觉得记不住,后来发现多用几次就刻在肌肉记忆里了。
1. ls —— 看看目录里有什么
ls就是列出当前目录下的文件和文件夹。我个人习惯用 ls -l 看详细信息,用 ls -a 看隐藏文件。有一次我在项目中找配置文件,死活找不到,后来才发现文件名前面有个点,是隐藏文件。嗯,从那以后我每次ls都加个-a。
ls # 列出文件名
ls -l # 列出详细信息(权限、大小、修改时间)
ls -a # 列出所有文件(包括隐藏文件)
ls -lh # 以人类可读的方式显示大小(K、M、G)
2. cd —— 切换目录
cd就是“change directory”。我常用的几个技巧:
cd ..回到上一级目录cd ~回到用户主目录cd -回到上一次所在的目录(这个我经常用,来回切换两个目录时特别方便)
我曾经在调试一个复杂的仿真环境时,需要在三个不同目录之间来回切换。用 cd - 配合 pwd,效率提升不少。
3. mkdir —— 创建目录
创建目录很简单,但有个参数我特别推荐:-p。它可以一次性创建多级目录。
mkdir test_dir # 创建单级目录
mkdir -p project/src/tb # 创建多级目录,如果父目录不存在会自动创建
我在搭建仿真环境时,经常用 mkdir -p 一次性把整个目录结构建好,省时省力。
4. rm —— 删除文件或目录
这个命令要小心。rm删除的文件不会进回收站,直接没了。
rm file.txt # 删除文件
rm -r dir_name # 递归删除目录及其内容
rm -f file.txt # 强制删除,不提示确认
rm -rf *,结果整个系统都崩了。所以,永远不要在不确定的情况下使用 rm -rf。建议先 ls 确认一下再删。
5. cp —— 复制文件或目录
复制文件时,我习惯用 -i 参数,防止覆盖重要文件。
cp file1.txt file2.txt # 复制文件
cp -r dir1 dir2 # 递归复制目录
cp -i file1.txt file2.txt # 复制时如果目标存在,会提示确认
6. mv —— 移动或重命名
mv既可以移动文件,也可以重命名。说白了,就是“剪切+粘贴”。
mv file.txt /tmp/ # 移动文件到 /tmp 目录
mv old_name.txt new_name.txt # 重命名文件
二、文件权限管理
Linux的文件权限,说白了就是“谁能读、谁能写、谁能执行”。我刚开始做验证时,经常遇到“Permission denied”的错误,后来才搞明白是权限没设对。
1. 查看权限
用 ls -l 查看,输出像这样:
-rwxr-xr-- 1 user group 1024 Jan 1 12:00 script.sh
这串字符分成四部分:
- 第一个字符:文件类型(
-普通文件,d目录) - 第2-4位:文件所有者的权限(rwx)
- 第5-7位:所属组的权限(r-x)
- 第8-10位:其他人的权限(r--)
r=读(4),w=写(2),x=执行(1)。
2. 修改权限:chmod
我常用数字法,简单直接:
chmod 755 script.sh # 所有者:rwx,组:r-x,其他人:r-x
chmod +x script.sh # 给所有用户添加执行权限
chmod -w file.txt # 移除所有用户的写权限
755 权限。这样自己可以读写执行,其他人只能读和执行,防止误修改。
3. 修改所有者:chown
有时候需要把文件的所有权转给另一个用户:
sudo chown user:group file.txt # 修改文件所有者和所属组
我曾经在团队协作时,因为文件所有者不对,导致其他同事无法修改仿真配置文件。后来统一用 chown 调整了一下,问题就解决了。
三、Vim编辑器基本使用
Vim是Linux下的“神器”。说实话,刚开始用的时候我觉得它反人类,但用顺手之后,真香。我写脚本、改配置文件,基本都在Vim里完成。
1. 三种模式
Vim有三种模式,搞懂这个就入门了:
| 模式 | 作用 | 如何进入 |
|---|---|---|
| 普通模式 | 移动光标、复制粘贴、删除 | 启动Vim时默认进入 |
| 插入模式 | 输入文本 | 按 i 进入 |
| 命令行模式 | 保存退出、搜索替换 | 按 : 进入 |
2. 常用操作
我整理了一份“生存指南”,记住这些就够了:
- 移动光标:
h左,j下,k上,l右 - 进入插入模式:
i(当前光标前),a(当前光标后),o(下一行) - 保存退出:
:wq(保存并退出),:q!(不保存强制退出) - 删除:
dd删除一行,dw删除一个单词 - 复制粘贴:
yy复制一行,p粘贴 - 撤销:
u撤销,Ctrl+r重做
# 一个典型的Vim操作流程
vim testbench.sv # 打开文件
i # 进入插入模式,开始编辑
... 输入代码 ...
Esc # 回到普通模式
:wq # 保存并退出
Ctrl+s 锁住了终端,以为Vim卡死了。后来才知道 Ctrl+s 是锁定屏幕,按 Ctrl+q 解锁。嗯,这个小坑我踩过一次就记住了。
知识体系总览
下面这张图,是我自己总结的Linux基础操作知识框架。你可以把它当成一张“地图”,学完这部分内容后,对照着检查自己掌握了多少。
好了,这部分内容就到这里。Linux命令这东西,光看是记不住的,得多敲。我建议你打开终端,把今天讲的命令每个都试一遍。遇到问题别怕,多查查 man 手册,或者直接上网搜。慢慢来,熟能生巧。