文章目录
👉本文思想是按实际需求给出例子。
快速入门
linux 的文件以文件树的形式保存,所以 linux 入门需要会切换目录,并查看目录的内容。 如下:
命令 | 描述 | 示例 |
---|---|---|
cd | 切换目录,注意绝对路径和相对路径 | 1)cd ~/shares/proj/vip/ :通过绝对路径的方式,切换到/shares/proj/vip/文件夹;2) cd ../sim/ :过相对路径的方式,切换到上一级目录下的sim文件夹; |
ls | 常看路径下的文件和文件夹目录 | 1)ls :显示当前目录下的文件和文件夹目录 ;2) ls *.sv :显示当前目录下后缀为 .sv 的文件 ; |
pwd | 显示当前的路径 | 1)pwd : 若此时在vip文件夹,则打印~/shares/proj/vip/ ; |
tree | 显示文件树 | 1)tree :显示当前路径下的文件树;2) tree ~/shares/proj/vip/ :显示vip目录下的文件树 |
注:
- 按Tab键可以自动补全;
./
表示当前路径 ;../
表示上一级路径 ;~
表示根目录;
一、修改、移动、复制和删除文件与文件夹
1.1 创建文件和文件夹
创建文件夹:
命令 | 描述 |
---|---|
mkdir verifier | 在当前目录下,创建一个新的文件夹,命名为 verifier |
mkdir verifier/apb/apb_master | 在当前目录下,创建一个名为 ahb_master 的文件夹 |
创建新文件:
命令 | 描述 |
---|---|
touch ahb_master.sv | 在当前目录下,创建一个名为 ahb_master.sv 的文件 |
1.2 批量修改文件名和文件内容
修改文件夹或文件名:
命令 | 描述 |
---|---|
mv template.sv apb.sv | 在当前目录下,将文件名为 template.sv的文件 ,改为 apb.sv |
rename 'template' 'apb' * | 将当前目录下,所有文件名中带“template”的改为“apb”。例如:template_xx.sv改为apb_xx.sv |
修改文件内容:
命令 | 描述 |
---|---|
sed -i 's/template/apb/g' config.sv | 修改单个文件中的内容,将当前目录下的 config.sv 的文件内的字符串“template” 改为 “apb”。 |
sed -i 's/template/apb/g' *.sv | 批量修改文件内容,将当前目录下所有.sv的文件内的 字符串“template” 改为 “apb” |
:%s/template/apb/g | 在vim中输入命令,修改文件内容也可以在vim中修改文件中所有的字符串“template”为 “apb” 。 |
1.3 移动、复制文件和文件夹
复制文件夹:
命令 | 描述 |
---|---|
cp -r ~/home/project/11 ~/home/project/zz | 当前在根目录/下,把 home/project 下的 11 文件夹,复制到 home/project /zz路径下。 -r 表示递归调用,不然无法复制文件夹中内容 |
移动文件夹:
命令 | 描述 |
---|---|
mv ~/home/project/11 ~/home/project/zz | 当前在根目录/下,把 home/project 下的 11 文件夹,移动到 home/project /zz路径下。 |
复制文件:
命令 | 描述 |
---|---|
cp uart.sv ../ | 把当前路径下的文件 uart.sv,复制到上一级目录中。 |
cp uart.sv ../uart_driver.sv | 把当前路径下的文件 uart.sv,复制到上一级目录中,并重命名为uart_driver 。 |
1.4 删除文件夹和文件
1️⃣ 删除前询问是否删除
👉需求:删除当前目录下的 apb_master.v 文件
rm -i apb_master.v
//rm: remove regular empty file ‘apb_master.v’? y
2️⃣ 直接删除,删除前不询问
👉需求:删除当前目录下的 apb_master.v 文件
rm -f apb_master.v
3️⃣ 删除当前目录及目录下所有文件,且不会询问
👉需求:删除apb目录,及其一下所有的文件和子文件夹。
rm -r apb
4️⃣ 删除当前目录及目录下所有文件,且每个文件夹在删除前均询问
👉需求:删除apb目录,及其一下所有的文件和子文件夹。删除前均询问。
rm -r -i apb
注意:linux下没有回收站,请谨慎建议删除。
二、搜索文件和文件内容
2.1 搜索文件夹和文件
命令 | 描述 |
---|---|
find -name "*.sv" | 查找当前目录下所有以.sv为后缀的文件 |
find ../vip/ -name "*env" | 查找当前目录下所有带有“env”的文件和文件夹 |
find -size +1M | 查找当前目录下所有内存大于10M的文件 |
2.3 搜索文件中的内容
我们一般都是使用 vim 看代码,比如你在看别人环境时,会经常性的要去看某一个类的实现或者是找某一个变量,那就可以在terminal 或者 vim 中搜索文件内容(在 VIM 中也可以使用 / 在指定的文件中查找。 )。如下:
命令 | 描述 |
---|---|
grep -n -i "i2c" top_env.sv 或者 grep -ni "i2c" top_env.sv | 在 top_env.sv 中搜索 i2c 字符串; -n 表示显示行号 ; -i 表示忽略大小写; |
grep -n "i2c" *.sv | 在所有 .sv 文件中中搜索 i2c 字符串; |
grep -n -r -w "i2c" ./vip/ 或者 grep -nrw "i2c" ./vip/ | 递归搜索 vip 目录以及子目录下的所有文件; -r 表示递归调用; -w 表示获取与整个搜索字符匹配的内容也就是只搜索i2c,类似i2c_vif都不会被检索到; |
三、打开文件
除了使用vim打开一些文本和代码,比如有的时候需要在terminal 用命令打开excel 、pdf之类的文件,可以使用如下:
<~> xdg-open filename.后缀
<~> xdg-open uvm_reg.pdf
<~> xdg-open top.ods
...
【😊持续更新中…】