目录
目录显示 cd
✅ tab 键可以补全命令和路径等
根目录 | / |
当前用户的默认工作目录 | ~/ |
当前目录 | ./ |
上一级目录 | ../ |
切换目录 cd
cd / #切换到根目录下
cd ../ #切换到上一级目录中
cd ./min/ #切换到当前目录下的min文件夹下
查看路径 ps pwd
ps #列出当前的进程
pwd #列出当前的路径
显示当前目录文件列表 ls
ls #列出当前路径下的文件夹和文件
ls -a #列出当前路径下的文件夹和文件包括隐藏文件
ls -l #列出当前路径下的文件夹和文件包括文件的属性和权限等数据
创建文件夹 mkdir
mkdir -p /a/b/c #在根目录下创建a,a文件夹下创建b,b文件夹下创建c
mkdir -p a/b/c #在当前目录下创建a,a文件夹下创建b,b文件夹下创建c
mkdir -p shiren{libai,dufu,baijuyi} #在当前目录下创建三个文件夹 名字分别为 shirenlibai shirendufu shirenbaijuyi
创建文件 touch
touch tb.sv #在当前目录下创建名为 tb.sv 的文件
复制 cp
cp -i ~/.bashrc /tmp/bashrc #把用户目录下的.bashrc文件复制到根目录下的tmp文件夹下并改名为 bashrc, 并询问是否覆盖
cp -ir sourceDir/ home/targetDir/ #把当前路径下的sourceDir文件夹复制到home目录下,取名为targetDir, 且询问是否覆盖,且把其子文件一起复制,复制文件夹的时候一定要加这个参数
移动或者修改文件名字 mv
mv -i sourceFile /home/targetFile #把当前目录下的sourceFile剪切到/home目录下并命名为 targetFile,并询问是否覆盖
mv source.sv target.sv #在当前目录下,将文件名为source.sv 修改名为 target.sv
删除 rm
rm -r dir/ #删除dir文件夹及其子文件(默认强制删除)
rm -ri dir/ #删除文件夹并询问
rm -rf dir/ #强制删除文件夹及其子文件,不询问, 慎用 -f
rm -i apb_master.v #删除文件apb_master.v 并询问
rm -f apb.v #强制删除文件apb.v,不询问,慎用 -f
查找文件 find
find -name "*.sv" #查找当前目录下所有 以 .sv 为后缀的文件
find ../vip/ -name "*env" #上一级目录下的vip文件夹下的所有带有 env 的文件和文件夹
find -name "*.v" > file.list #找到当前目录下的 以.v 为后缀的文件,把它们的相对路径放到 file.list文件内容中
find /home -size +100M #在/home目录下查找大于100MB的文件,注意c表示byte
查找文件内容 grep
grep -n 100 pass #在文件pass中查找100,并显示行号
grep -ni "i2c" top_env.sv #在文件top_env.sv中查找i2c字符串,并忽略大小写,并显示行号
grep -nrw "i2c" ./vip/ #在vip目录及其子目录下查找i2c字符串, 并只查找单独的 i2c, 带有其他符号的不算,例如i2c_apb 就不算, 并显示行号
替换 sed
sed -i 's/def/xyz/g' config.sv #在当前目录下, 将config.sv中 def字符串替换为xyz
sed -i 's/def/xyz/g' *.sv #在当前目录下,将所有以 .sv 为后缀的文件中 def字符串替换为xyz
管道 l
| # 将管道左边的命令结果作为参数传递给右边的命令中继续执行
grep 和 管道 和 sed 结合
grep -l "abc" *.cpp | xargs sed -i 's/def/xyz/g/'
#在以.cpp为后缀的文件中查找带有abc的文件内容,并将内容中 def字符串替换为xyz
# -l 表示列出文件内容
重定向 >
find 和 重定向结合
find -name "*.v" > file.list #找到当前目录下的 以.v 为后缀的文件,把它们的相对路径放到 file.list文件内容中