zl程序教程

您现在的位置是:首页 >  系统

当前栏目

【Linux】常用的 Linux 命令行

2023-09-14 09:16:21 时间

 

目录

 

写在前面

一、查看信息指令

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 开发设计人员来说,使用指令最多的就是对文件和目录进行操作,比如打开文件,复制文件,返回上一级目录等,对于大量的文件操作时,使用命令可以带来极大的便利,以下为常用的指令。

一、查看信息指令

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 指令搭配选项及含义

选项

含义

-a

列出所有文件,包括以点号开头的文件,这些文件通常是不列出来的(比如隐藏的文件)

-d

当指定一个目录,ls 命令会列出目录中的内容而不是目录本身。将此选项与 -l 选项结合使用,可查看目录的详细信息,而不是目录中的内容

-R

列出此目录下的所有内容,包含子目录

-F

选项会在每个所列出的名字后面加上类型指示符(例如,如果名字是目录名,则会加上一个斜杠)

-h

以长格式列出,以人们可读的方式而不是字节数来显示文件大小

-l

使用长格式显示结果

-r

以相反的顺序显示结果。通常,ls 命令按照字母升序排列显示结果

-S

按文件大小对结果排序

-t

按修改时间排序

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、通配符

在对大量文件进行操作时,有时需要快速指定某些文件,利用通配符就可以更加便利的对文件进行操作。以下为常见的通配符号以及所选择的目标。

通配符

匹配项

*

匹配任意多个字符(包括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]$

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

相关指令

命令

结果

touch - a

改变文件的读取时间记录

touch - c

若目的文件不存在,不会新建文件

touch - d

设定时间与日期

touch - m

改变文件的修改时间记录

touch - version

列出版本信息

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

总结

命令

结果

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

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

总结

命令

结果

rm file1

在不提示用户的情况下,删除 file1

rm –i file1

删除 file1 前,提示用户确认

rm –r file1 dir1

删除 file1、dir1 以及它们的内容

rm –rf file1 dir1

同上,当时在 file1 或 dir1 不存在时,rm 仍会继续执行,且不提示用户

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

总结

命令

结果

find -name 文件

需要找到什么文件,要找的文件包括在引号中,可用通配符*和?

find -type x

匹配所有类型为x的文件。

find -print

显示整个文件路径的名称。

 持续更新。。。