目录
写在前面
一、查看信息指令
1、df——查看磁盘驱动器的可用空间
2、free——显示可用内存
二、常用操作指令
1、pwd——查看当前目录
2、cd——改变目录
3、ls——列出目录内容
4、file——确定文件类型
5、切换 root/普通用户
三、文件与目录操作指令
1、通配符
2、mkdir——创建目录
3、touch——更改文件的日期时间
4、cp——复制文件和目录
5、mv——移动和重命名文件
6、rm——删除文件和目录
7、find——查找文件
在 Linux 系统中,在众多的指令中,对于 FPGA/IC 开发设计人员来说,使用指令最多的就是对文件和目录进行操作,比如打开文件,复制文件,返回上一级目录等,对于大量的文件操作时,使用命令可以带来极大的便利,以下为常用的指令。
[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
[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
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 指令搭配选项及含义
选项 |
含义 |
-a |
列出所有文件,包括以点号开头的文件,这些文件通常是不列出来的(比如隐藏的文件) |
-d |
当指定一个目录,ls 命令会列出目录中的内容而不是目录本身。将此选项与 -l 选项结合使用,可查看目录的详细信息,而不是目录中的内容 |
-R |
列出此目录下的所有内容,包含子目录 |
-F |
选项会在每个所列出的名字后面加上类型指示符(例如,如果名字是目录名,则会加上一个斜杠) |
-h |
以长格式列出,以人们可读的方式而不是字节数来显示文件大小 |
-l |
使用长格式显示结果 |
-r |
以相反的顺序显示结果。通常,ls 命令按照字母升序排列显示结果 |
-S |
按文件大小对结果排序 |
-t |
按修改时间排序 |
[ICer@IC_EDA /home/ICer/rtl]$file dir1
dir1: directory
切换成 root 用户指令
切换成普通用户指令
在对大量文件进行操作时,有时需要快速指定某些文件,利用通配符就可以更加便利的对文件进行操作。以下为常见的通配符号以及所选择的目标。
通配符 |
匹配项 |
* |
匹配任意多个字符(包括0个和1个) |
? |
匹配任一单个字符(不包括0个) |
[characters] |
匹配任意一个属于字符集中的字符 |
[!characters] |
匹配任意一个不属于字符集中的字符 |
示例
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]$
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 的目录。
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
相关指令
命令 |
结果 |
touch - a |
改变文件的读取时间记录 |
touch - c |
若目的文件不存在,不会新建文件 |
touch - d |
设定时间与日期 |
touch - m |
改变文件的修改时间记录 |
touch - version |
列出版本信息 |
复制文件或目录到另一个文件或目录主要有两种形式
但是不支持将多个文件或目录复制到多个文件或目录中。
下面以一些常用的操作为例
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
将单个文件或目录移动或重命名为另一个文件夹或目录。可以分为两种情况
①目标文件夹或目录存在:此命令为将文件或目录移动到另一个文件夹或目录中。
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
总结
命令 |
结果 |
mv file1file2 |
将 file1 移到 file2。如果 file2 存在,则会被 file1的内容覆盖。如果 file2 不存在,则创建 file2。无论哪一种情况,file1 不再存在,也可以理解为将 file1 重命名 |
mv –ifile1file2 |
同上,仅当 file2 存在时,覆盖之前通知用户确认 |
mv file1file2 dir1 |
将 file1 和 file2 移到目录dir1下。dir1必须已经存在 |
mv dir1dir2 |
将目录dir1(和其内容)移到目录dir2下。如果目录dir2不存在,创建目录dir2,将目录dir1的内容移到dir2下,同时删除目录dir1 |
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
总结
命令 |
结果 |
rm file1 |
在不提示用户的情况下,删除 file1 |
rm –i file1 |
删除 file1 前,提示用户确认 |
rm –r file1 dir1 |
删除 file1、dir1 以及它们的内容 |
rm –rf file1 dir1 |
同上,当时在 file1 或 dir1 不存在时,rm 仍会继续执行,且不提示用户 |
找出相对应文件的路径,下面的例子为找到所有后缀为.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
总结
命令 |
结果 |
find -name 文件 |
需要找到什么文件,要找的文件包括在引号中,可用通配符*和? |
find -type x |
匹配所有类型为x的文件。 |
find -print |
显示整个文件路径的名称。 |
持续更新。。。