ExASIC
分享让工作更轻松

IC设计中常用的Linux命令

一个合格ICer,必需要熟练掌握常用的Linux命令。今天来介绍一下IC设计中常用的Linux命令。(管理员相关的命令后面另写一篇文章。)

Linux常见命令一览

文件及目录操作

cd pwd ls tree mkdir touch cp rm mv ln cat more head tail

查找

echo env which find grep

压缩和解压缩

tar

查看系统状态

date top free kill ps who w df du stat chmod

详细介绍

cd 改变工作目录
cd prj
cd /home/exasic/prj
cd ~prj
pwd #查看当前所在工作路径
pwd
ls 列出当前目录的子目录及文件
ls -1
ls -l
ls -lh
ls -R 
ls -a
ls -A
ls -ltr
alias ls 'ls -h --color=tty'

Tips:

#列出子目录
ls -l | grep '^d' | awk '{print $9}'
tree 列出子目录和文件树型结构
tree .

Tips:

#列出两层子目录结构
tree -dfi -L 2
mkdir 新建目录
mkdir xxx
mkdir -p xxx/yyy/zzz
touch 新建文件或修改文件访问(修改)时间
touch xxx
touch -a xxx
touch -m xxx
cp 复制文件
cp a.v b.v
cp a.v c
alias cp 'cp -i'
mv 移动或重命令
mv a.v b.v
mv a.v c
alias mv 'mv -i'
rm 删除目录或文件
rm a.v
rm -r c
alias rm 'rm -i'

Tips: 在工作中如何避免误删(误覆盖)文件

ln 创建链接
ln -s xxx/a.v a.v
cat 显示文件内容
cat a.v | more
more 分页显示文件内容
more a.v
head, tail 显示文件的开头或末尾n行
head -n 1 a.v
tail -n 5 a.v
echo打印字符串或变量值
echo "I'am an ICer"
echo $PATH
env 打印当前所有的环境变量
env
which 查看命令所在软件或目录
which irun
find 查找文件
find . -name "*.v"
find . -mtime -10 -name "*.log"
find . -path "*rtl*"

Tips:

#合并所有的.v文件
find . -name "*.v" | xargs cat > all.v

#删除所有的*~文件
find . -name "*~" | xargs rm -f

#删除所有波形文件
find . -name "*.fsdb" -exec rm {} \;
grep 查找文件内容
grep "FAIL" *.log
grep -r "DLY2" .
tar 压缩和解压缩
tar -zcvf rtl.tar.gz rtl
tar -zxvf rtl.tar.gz

Tips:

#选项的-可以省略
tar zxvf rtl.tar.gz
date 显示当前日期或时间
date +%s
date +%F' '%T
top 显示当前CPU、内存、进程等信息
top

Tips: top的子命令

注:不同版本的操作系统的Top子命令(如o、f、=等)有些差异,可按h/?查看帮助。

free 查看内存状态
free

内存使用率=used / total。例如,下面的使用率为2153048/3880180=55%。
其中,buffer表示尚未写到硬盘的数据,cache表示从硬盘读出来的数据,这两项由操作系统管理。

$ free
              total        used        free      shared  buff/cache   available
Mem:        3880180     2153048      164196      184148     1562936     1160220
Swap:       4063228        1024     4062204
kill 杀死进程
kill -9 pid
kill -9 -1
ps 查看进程
ps -ef | grep "user"
ps -ef | grep "vcs"
who, w 查看用户登陆情况
who
w
df 查看硬盘使用情况
df -h
du 统计目录或文件大小
du -s /home/user
du -s *
stat 查看文件的详细信息
stat a.v
chmod 修改目录或文件的权限
chmod -R 600 prj
chmod -R 755 sim.py
chmod +x sim.py
chmod -x *.v
阅读数:
关联阅读
芯片设计中的Makefile简明教程

到这里,学了这么多,你已经可以写一些复杂的Makefile了。但重在应用,在IC设计里,我们常常用Makefile串起多个工具,实现完整的流程。下面是一个启发型的例子。

http://exasic.com/article/index.php?md=linux-03
IC设计中Linux shell的选择和使用(bash、tcsh、zsh)

你很可能正在使用bash,也可能是csh。你可能听说过sh、tcsh。如果你安装过EDA,就知道某EDA要正常工作必须要装ksh。另外你可能还听某大神安利过zsh……

http://exasic.com/article/index.php?md=linux-02
GNU sed实例教程

官方的定义是非交互地命令行文本编辑器。而我觉得描述成“行内文本插入、删除、替换的小工具“更容易理解。

http://exasic.com/article/index.php?md=linux-04
更多文章:文章目录
解惑专区
(支持markdown插入源代码)
欢迎使用ExASIC订阅服务
仅用于ExASIC最新文章通知,方便及时阅读。
友情链接: IC技术圈问答ReCclayCrazyFPGA