---
layout: post
title: IC设计中常用的Linux命令
description: IC设计中常用的Linux命令
keywords: Linux
author: admin
date: 2020-08-22 15:49
category: 网络技术
tags: 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 改变工作目录

```bash
cd prj
cd /home/exasic/prj
cd ~prj
```

###### pwd #查看当前所在工作路径

```bash
pwd
```

###### ls 列出当前目录的子目录及文件

```bash
ls -1
ls -l
ls -lh
ls -R
ls -a
ls -A
ls -ltr
alias ls 'ls -h --color=tty'
```

Tips:

```bash
#列出子目录
ls -l | grep '^d' | awk '{print $9}'
```

###### tree 列出子目录和文件树型结构

```bash
tree .
```

Tips:

```bash
#列出两层子目录结构
tree -dfi -L 2
```

###### mkdir 新建目录

```bash
mkdir xxx
mkdir -p xxx/yyy/zzz
```

###### touch 新建文件或修改文件访问(修改)时间

```bash
touch xxx
touch -a xxx
touch -m xxx
```

###### cp 复制文件

```bash
cp a.v b.v
cp a.v c
alias cp 'cp -i'
```

###### mv 移动或重命令

```bash
mv a.v b.v
mv a.v c
alias mv 'mv -i'
```

###### rm 删除目录或文件

```bash
rm a.v
rm -r c
alias rm 'rm -i'
```

Tips: 在工作中如何避免误删(误覆盖)文件
- set rmstar
- set noclobber
- rm -i, mv -i, cp -i操作确认
- 编辑器的自动定时备份
- 用版本管理工具管理源代码
- 用mv代替rm
- 异地备份

###### ln 创建链接

```bash
ln -s xxx/a.v a.v
```

###### cat 显示文件内容

```bash
cat a.v | more
```

###### more 分页显示文件内容

```bash
more a.v
```

###### head, tail 显示文件的开头或末尾n行

```bash
head -n 1 a.v
tail -n 5 a.v
```

###### echo打印字符串或变量值

```bash
echo "I'am an ICer"
echo $PATH
```

###### env 打印当前所有的环境变量

```bash
env
```

###### which 查看命令所在软件或目录

```bash
which irun
```

###### find 查找文件

```bash
find . -name "*.v"
find . -mtime -10 -name "*.log"
find . -path "*rtl*"
```

Tips:

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

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

#删除所有波形文件
find . -name "*.fsdb" -exec rm {} \;
```

###### grep 查找文件内容

```bash
grep "FAIL" *.log
grep -r "DLY2" .
```

###### tar 压缩和解压缩

```bash
tar -zcvf rtl.tar.gz rtl
tar -zxvf rtl.tar.gz
```

Tips:

```bash
#选项的-可以省略
tar zxvf rtl.tar.gz
```

###### date 显示当前日期或时间

```bash
date +%s
date +%F' '%T
```

###### top 显示当前CPU、内存、进程等信息

```bash
top
```

Tips: top的子命令
- u 按用户筛选
- k kill进程
- c 进程显示详细命令路径
- 1 详细CPU状态
- o 设置显示列,及顺序
- q 退出

###### free 查看内存状态

```bash
free
```

###### kill 杀死进程

```bash
kill -9 pid
kill -9 -1
```

###### ps 查看进程

```bash
ps -ef | grep "user"
ps -ef | grep "vcs"
```

###### who, w 查看用户登陆情况

```bash
who
w
```

###### df 查看硬盘使用情况

```bash
df -h
```

###### du 统计目录或文件大小

```bash
du -s /home/user
du -s *
```

###### stat 查看文件的详细信息

```bash
stat a.v
```

###### chmod 修改目录或文件的权限

```bash
chmod -R 600 prj
chmod -R 755 sim.py
chmod +x sim.py
chmod -x *.v
```