常用的 Linux 命令行

本文转载自: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

二、常用操作指令
1、pwd——查看当前目录

[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 的目录下。

    3、ls——列出目录内容
    查看当前目录内容

    [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

    总结

    最新文章

    最新文章