本文转载自:Linest-5的CSDN博客
写在前面
在 Linux 系统中,在众多的指令中,对于 FPGA/IC 开发设计人员来说,使用指令最多的就是对文件和目录进行操作,比如打开文件,复制文件,返回上一级目录等,对于大量的文件操作时,使用命令可以带来极大的便利,以下为常用的指令。
一、查看信息指令
1、df——查看磁盘驱动器的可用空间
[ICer@IC_EDA /home/ICer]$df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 3978080 0 3978080 0% /dev tmpfs 3995024 0 3995024 0% /dev/shm tmpfs 3995024 12884 3982140 1% /run tmpfs 3995024 0 3995024 0% /sys/fs/cgroup /dev/mapper/centos-root 20961280 8496096 12465184 41% / /dev/sda1 1038336 187936 850400 19% /boot /dev/mapper/centos-home 323923456 139358884 184564572 44% /home tmpfs 799008 44 798964 1% /run/user/1000
2、free——显示可用内存
[ICer@IC_EDA /home/ICer]$free total used free shared buff/cache available Mem: 7990052 1544836 5073192 46120 1372024 6093288 Swap: 10481660 0 10481660
二、常用操作指令
[ICer@IC_EDA /home/ICer/rtl/dir1]$pwd /home/ICer/rtl/dir1
2、cd——改变目录
cd:change directory,即改变目录。使用 cd 命令可以改变目录;输入 cd + 目标目录的路径名即可跳转至目标目录。
路径名分为两种:
绝对路径名
相对路径名
绝对路径名
绝对路径名从根目录开始,包含着直到目标目录的所有路径。
相对路径名
相对路径名则是从当前的工作目录开始,通常会用特殊符号表示其相对位置,比如 “.”表示当前工作目录,”..“表示当前工作目录的父目录。
下面以分别使用绝对路径和相对路径进行工作目录的跳转
绝对路径
[ICer@IC_EDA /home/ICer/rtl/dir1]$pwd /home/ICer/rtl/dir1 [ICer@IC_EDA /home/ICer/rtl/dir1]$cd /home/ICer/rtl dir1 dir2 dir3
相对路径
[ICer@IC_EDA /home/ICer/rtl/dir1]$pwd /home/ICer/rtl/dir1 [ICer@IC_EDA /home/ICer/rtl/dir1]$cd .. dir1 dir2 dir3
以上使用不同的指令但都跳转至 dir1 的目录下。
查看当前目录内容
[ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 dir3
查看指定目录的内容
[ICer@IC_EDA /home/ICer/rtl]$ls /usr bin etc games include lib lib64 libexec local sbin share src tmp
查看多个目录的内容
其中~表示主目录
[ICer@IC_EDA /home/ICer/rtl]$ls ~ /usr /home/ICer: 12 Code log Project test vim 模板 图片 下载 桌面 CDS.log ic_prjs Nuclei_Tools rtl Tools 公共 视频 文档 音乐 /usr: bin etc games include lib lib64 libexec local sbin share src tmp
查看目录内容细节
[ICer@IC_EDA /home/ICer/rtl]$ls -l 总用量 0 drwxrwxr-x. 2 ICer ICer 6 10月 13 20:52 dir1 drwxrwxr-x. 2 ICer ICer 6 10月 13 20:52 dir2 drwxrwxr-x. 2 ICer ICer 6 10月 13 20:52 dir3
以下为 ls 指令搭配选项及含义
4、file——确定文件类型
[ICer@IC_EDA /home/ICer/rtl]$file dir1 dir1: directory
5、切换 root/普通用户
切换成 root 用户指令
su
su root
sudo su
切换成普通用户指令
su 用户名
exit
ctrl+d
三、文件与目录操作指令
1、通配符
在对大量文件进行操作时,有时需要快速指定某些文件,利用通配符就可以更加便利的对文件进行操作。以下为常见的通配符号以及所选择的目标。
示例
cd *:打开所有文件
[ICer@IC_EDA /home/ICer/rtl/dir1]$.. dir1 dir2 dir3 [ICer@IC_EDA /home/ICer/rtl]$cd * [ICer@IC_EDA /home/ICer/rtl/dir1]$
cd do*:打开开头为 do 的文件
[ICer@IC_EDA /home/ICer/rtl/dir1]$.. dir1 dir2 dir3 doc [ICer@IC_EDA /home/ICer/rtl]$cd do* [ICer@IC_EDA /home/ICer/rtl/doc]$
cd do?:打开开头为 do ,后面跟一个字符的任一文件
[ICer@IC_EDA /home/ICer/rtl/doc]$.. dir1 dir2 dir3 doc [ICer@IC_EDA /home/ICer/rtl]$cd do? [ICer@IC_EDA /home/ICer/rtl/doc]$
2、mkdir——创建目录
mkdir 命令可以创建一个新的目录
比如在终端使用以下命令:
[ICer@IC_EDA /home/ICer/rtl]$mkdir dir1 [ICer@IC_EDA /home/ICer/rtl]$ls dir1
也可以在一条命令中同时新建多个目录。
[ICer@IC_EDA /home/ICer]$cd rtl [ICer@IC_EDA /home/ICer/rtl]$mkdir dir1 dir2 dir3 [ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 dir3
在文件夹中新建了三个分别名为 rtl1、rtl2、rtl3 的目录。
3、touch——更改文件的日期时间
touch 命令一般用于设定或是更新文件的修改时间。当文件名参数是一个不存在的文件时,那么该命令就会创建一个空文件。因此在平时我们使用 touch 命令最多的就是用来新建文件。
可以新建一个或多个新文件
[ICer@IC_EDA /home/ICer/rtl]$ls dir2 dir3 doc [ICer@IC_EDA /home/ICer/rtl]$touch file1 [ICer@IC_EDA /home/ICer/rtl]$ls dir2 dir3 doc file1 [ICer@IC_EDA /home/ICer/rtl]$touch file2 file3 [ICer@IC_EDA /home/ICer/rtl]$ls dir2 dir3 doc file1 file2 file3
相关指令
4、cp——复制文件和目录
复制文件或目录到另一个文件或目录主要有两种形式
将单个文件或目录复制到另一个文件或目录中
将多个文件或目录复制到另一个文件或目录中
但是不支持将多个文件或目录复制到多个文件或目录中。
下面以一些常用的操作为例
cp file1 file2:将 file1 复制到 file2。如果 file2 存在,则会被 file1 的内容覆盖。如果 file2 不存在,则创建 file2。
[ICer@IC_EDA /home/ICer/rtl]$ls file1 [ICer@IC_EDA /home/ICer/rtl]$cp file1 file2 [ICer@IC_EDA /home/ICer/rtl]$ls file1 file2
cp –i file1 file2:和上一个的命令作用一样,只不过当 file2 存在时,覆盖之前会通知用户确认是否覆盖。
[ICer@IC_EDA /home/ICer/rtl]$cp -i file1 file2 cp:是否覆盖"file2"? [ICer@IC_EDA /home/ICer/rtl]$ls file1 file2 [ICer@IC_EDA /home/ICer/rtl]$
cp file1 file2 dir1:将 file1 和 file2 复制到目录 dir1 里。dir1 必须已存在。
[ICer@IC_EDA /home/ICer/rtl]$mkdir dir1 [ICer@IC_EDA /home/ICer/rtl]$ls dir1 file1 file2 [ICer@IC_EDA /home/ICer/rtl]$cp file1 file2 dir1 [ICer@IC_EDA /home/ICer/rtl]$cd dir1 file1 file2
cp dir1/ * dir2:通过使用通配符,将 dir1 中的所有文件复制的 dir2 中。dir2必须已存在。
[ICer@IC_EDA /home/ICer/rtl]$mkdir dir2 [ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 file1 file2 [ICer@IC_EDA /home/ICer/rtl]$cp dir1/* dir2 [ICer@IC_EDA /home/ICer/rtl]$cd dir2 file1 file2
cp –r dir1 dir2:将 dir1 目录整个一起复制到 dir2 目录中。如果 dir2 不存在,创建 dir2。
[ICer@IC_EDA /home/ICer/rtl]$mkdir dir2 [ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 file1 file2 [ICer@IC_EDA /home/ICer/rtl]$cp dir1/* dir2 [ICer@IC_EDA /home/ICer/rtl]$cd dir2 file1 file2
5、mv——移动和重命名文件
将单个文件或目录移动或重命名为另一个文件夹或目录。可以分为两种情况
①目标文件夹或目录存在:此命令为将文件或目录移动到另一个文件夹或目录中。
ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 dir3 doc [ICer@IC_EDA /home/ICer/rtl]$mv dir1 dir2 [ICer@IC_EDA /home/ICer/rtl]$ls dir2 dir3 doc [ICer@IC_EDA /home/ICer/rtl]$cd dir2 dir1
②目标文件夹或目录不存在:此命令为将文件或目录重命名为另一个文件夹或目录的名字。
[ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 dir3 doc [ICer@IC_EDA /home/ICer/rtl]$mv dir1 dir4 [ICer@IC_EDA /home/ICer/rtl]$ls dir2 dir3 dir4 doc
将多个文件夹或目录移动到另一个文件夹或目录中。目标文件夹或目录必须存在
[ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 dir3 doc [ICer@IC_EDA /home/ICer/rtl]$mv dir1 dir2 dir3 doc [ICer@IC_EDA /home/ICer/rtl]$ls doc [ICer@IC_EDA /home/ICer/rtl]$cd doc dir1 dir2 dir3
总结
6、rm——删除文件和目录
rm 命令用于删除文件和目录,并且此操作不可撤销。
[ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 dir3 doc file1 file2 [ICer@IC_EDA /home/ICer/rtl]$rm file1 [ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 dir3 doc file2
如果想要删除文件夹或目录,可以在 rm 命令后加 -rf 后跟文件夹或目录名。
[ICer@IC_EDA /home/ICer/rtl]$ls dir1 dir2 dir3 doc file2 [ICer@IC_EDA /home/ICer/rtl]$rm -rf dir1 [ICer@IC_EDA /home/ICer/rtl]$ls dir2 dir3 doc file2
总结
7、find——查找文件
找出相对应文件的路径,下面的例子为找到所有后缀为.v的文件,并将文件的路径存放在filelist.list文件中。
[ICer@IC_EDA /home/ICer/Code/VL1]$find -name ".v" > filelist.list [ICer@IC_EDA /home/ICer/Code/VL1]$ls filelist.list mux4_1.v sim.jpg tb_mux4_1.v
也可以将符合的文件名打印出来。
[ICer@IC_EDA /home/ICer/Code/VL1]$find -name "*.v" -print ./mux4_1.v ./tb_mux4_1.v
总结
持续更新。。。