【Linux】Linux常用命令

Linux 常用命令大全 Linux 系统作为服务器和开发环境中的主流操作系统,拥有丰富的命令行工具。掌握常用的 Linux 命令不仅能够提升工作效率,还能让你在系统管理、文件处理、网络配置等方面游刃有余。本文将详细介绍 Linux 中最常用的命令,涵盖文件操作、系统管理、网络命令等多个领域。 阅读详情


pwd命令——查看当前的工作目录

  pwd是用来实现用户查看当前的工作目录。

  pwd 命令的基本格式为:

[root@host ~]# pwd
/root

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KgbMy93x-1680000968672)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327154606540.png)]

cd命令——切换工作目录

  cd:将用户的工作目录更改到其他位置

  cd 目标位置:切换到目标位置

  例如:

[root@host ~]# cd /etc/sysconfig/network-scripts/

在这里插入图片描述

  cd ~或者cd:若不指定目标位置,切换到当前用户的宿主目录

  例如:

//在/etc/sysconfig/network-scripts/目录下使用cd命令
[root@host network-scripts]# cd
//输入pwd查看是否在当前用户的宿主目录
[root@host ~]# pwd
/root
//进入/etc/sysconfig/network-scripts/目录
[root@host ~]# cd /etc/sysconfig/network-scripts/
//在/etc/sysconfig/network-scripts/目录下使用cd ~命令
[root@host network-scripts]# cd ~
//输入pwd查看是否在当前用户的宿主目录
[root@host ~]# pwd
/root

  指定进入指定test用户的家目录

cd ~test

在这里插入图片描述

  cd -:切换到上一次执行cd命令之前所在的目录

  如

//进入/etc/sysconfig/network-scripts/目录
[root@host ~]# cd /etc/sysconfig/network-scripts/
//切换上一次执行cd命令的目录即root目录
[root@host network-scripts]# cd -
/root
[root@host ~]# 

在这里插入图片描述

绝对路径

  绝对路径是从linux最底层的根(/)开始算。如 cd /home/test, /home/test 就是绝对路径。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yzqMAXBz-1680000929644)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327163014765.png)]

相对路径

  相对路径就是相对当前你所在路径开始算。如cd test , test就是指当前工作目录下的test目录,也就是相对路径。

在这里插入图片描述

相对路径的表现形式

表现形式说明示例
直接使用目录名或文件名表示当前工作目录中的子目录、文件位置grub.conf
以一个点号“.”开头表示以当前的工作目录作为起点./grub.conf
以两个点号“…”开头表示以当前目录的上一级目录(父目录)作为起点…/vmlinuz
以“~用户名”形式开头表示以指定用户的宿主目录作为起点~teacher
以“~”形式开头表示以当前用户的宿主目录作为起点~

  cd 文件名

  例如

cd abc

  效果如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ICjLBiZP-1680000929645)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327165436649.png)]

  cd ./文件

  例如

cd ./abc/

  效果如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W3kNBH8X-1680000929645)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327165359523.png)]

  cd …/文件

  例如

//进入上一级目录
cd ../

  效果如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gmCko6AB-1680000929646)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327165708812.png)]

  cd ~文件

  例如

//进入root目录下的test目录
cd ~/test

  效果如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lyrRWfGK-1680000929647)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327170141988.png)]

  cd ~用户名/文件

  例如

cd ~

  效果如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KJ51SUrE-1680000929647)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327170349334.png)]

ls命令——列表显示目录内容

  ls,以列表的方式显示目录内容。ls显示目录中内容,包括子目录和文件相关属性信息

ls形式

ls [选项] [文件或目录...] 

  常用选项:-l -a -A -d -h -R --color

ls -l

  以长格式(Long)显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。ll命令与ls -l功能相同。

  如图,用ls -l 命令查看某一个目录会得到一个7个字段的列表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VSAP93ld-1680000929647)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327180506075.png)]

drwxr-xr-x. 2 root root     6 3月  27 16:50 abc

第1字段:drwxr-xr-x.代表文件属性字

​ 第一个字符代表的类型

  • “-“表示该文件是一个普通文件
  • "d”长示该文件是一个目录
  • "l”表示该文件是一个软链接文件。类似于windows下的快捷方式

​   第一个字符的后面9个字母表示该文件或目录的权限位:

​      r表示读(查看、下载)、w表示写(添加、更改、删除、上传)、x表示执行(运行文件、切换目录)

​     其中前三个表示文件拥有者(属主)的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。

第2字段:2代表文件硬链接数

​   如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数。如果是一个目录,则第2字段表示该目录所含子目录的个数。如果新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录。

第3字段:root代表文件\目录拥有者

第4字段:root代表文件\目录拥有者所在的组

第5字段: 6代表文件所占用的空间(默认以字节为单位)

​   如果是一个目录,则表示该目录的大小,而不是目录以及它下面的文件的总大小。Linux系统中一切皆文件,因此目录也是一种文件。

第6字段:3月 27 16:50代表文件\目录最近访问或修改时间

第7字段:abc代表文件名

  ​ 如果是一个符号链接(软链接文件),那么会有一个“->”箭头符号,后面根一个它指向的文件名

ls -a

  显示所有(All)子目录和文件的信息,包括名称以点号“.”开头的隐藏目录和隐藏文件。

如图,用命令查看

[root@host network-scripts]# ls -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4D1ryULd-1680000929648)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327183255769.png)]

ls -A

  与-a选项的作用基本类似,但有两个特殊隐藏目录不会显示,即表示当前的“."和表示父目录的“…”。

如图,用命令查看

[root@host network-scripts]# ls -A

在这里插入图片描述

ls -d

  显示目录(Directory)本身的属性,而不是显示目录中的内容。

如图,用命令查看abc目录本身的属性

[root@host network-scripts]# ls -l -d abc/
drwxr-xr-x. 2 root root 6 3月  27 16:50 abc/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ndyoRGm-1680000929649)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327183949032.png)]

ls -h

  以更人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节(B),使用-h选项后将显示KB、MB等单位。此选项需要结合-l选项一起使用。

如图,用命令更加人性化显示列表格式

[root@host network-scripts]# ls -l -h

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BW5ckg1h-1680000929649)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327184247645.png)]

ls -R

  以递归(Recursive)的方式显示目录及其子目录中的所有内容。

如图,用命令查看test下所有文件的属性

[root@host ~]# ls -l -R test/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eG5VHBDK-1680000929649)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327184616410.png)]

ls --color

  在字符模式中以颜色区分不同的文件。默认已开启。

  通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色标识设备文件,红色表示压缩文件。

ls -i

  显示文件和目录的inode号。一个文件在系统中有特定的ID标识,文件名可能相同,inode号肯定不相同。除了硬链接文件,硬链接文件是别名。

如图,用命令查看所有文件inode号

[root@host ~]# ls -i

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zChRD51X-1680000929650)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327185027778.png)]

ls -t

  以时间排序,最新的文件会排在上面。

如图,用命令通过最新时间排序查看

[root@host ~]# ls -lt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mM8BnyDw-1680000929650)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327185340033.png)]

ls -r

  表示反向排序、倒序输出。

如图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTgWExnO-1680000929651)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327185557712.png)]

结合通配符

  “?":代表任意一个字符,有且一个字符

例如

[root@host test]# ls 1?1
121  131  141

如图可知,只有121、131、141符合搜索要求,“?”只代表一个字符。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dTwrmpYU-1680000929651)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327190114928.png)]

  “*”:代表任意数个字符,可以是0个或者1个或者多个

例如

[root@host test]# ls 1*1
121  131  141  1abc1

如图可知,只有121、131、141、1abc1符合搜索要求,“*”代表任意字符个数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PxRE1W1k-1680000929652)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327190716288.png)]

  “[]”:表示可以匹配字符组中的任意一个字符[abc]、[a-f]

[root@host test]# ls 1[234]1
121  131  141

如图可知,搜索1[234]1只有121、131、141符合要求,会取[]中的任意字符进行匹配。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VL15q2zv-1680000929652)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327190942171.png)]

alias命令——设置别名

  alias:通过别名机制简化常用的、比较长的命令

  alias命令的基本格式为:

alias 命令别名='命令'

这里需要注意的是:

  • 等号(=)前后不能有空格,否则就会出现语法错误了。
  • 如果value中有空格或tab,则value一定要使用引号(单、双引号都行)括起来。

定义别名

  了解了别名的基础知识之后,我们来看一个定义别名的例子:

[root@host ~]$ alias vi='vim'

  这个例子定义了一个 vim 命令的别名,以后,当我们执行 vi 命令时,其实真正执行的是 vim 命令。是不是很简单呢!

如何查看别名

  如果太热衷于设置别名,那么你就会面临着要记住很多别名的困扰,因此,学会查看所有已设置的别名,就显得尤为重要了。

  查看别名的方法也很简单,直接输入 alias 命令,不加任何选项和参数即可:

[root@host ~]$ alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

  可以看到,系统把当前可用的所有的别名都列出来了。仔细找一下,是不是可以看到刚才设置的那个别名了:alias vi='vim'。

查看单独命令的别名

如果我们只想查看一个单独命令是否设置了别名,那么方法有两个。

方法一:使用 alias 命令加参数

[root@host ~]$ alias vi
alias vi='vim'

方法二:使用快捷键
  当在终端中输入一个命令后,按下 Ctrl+Alt+E 组合键,假如设置了别名,那么别名自动会变成实际的命令。

注意:这个快捷键并非在所有终端中都可行,有些终端的快捷键会和这个快捷键冲突,这样的话,该方法就不好使了。

如何取消别名

  别名定义的太多了,往往带来的不是方便,而是困扰。所以我们也需要掌握删除别名的方法。

  那么,如何删除一个别名呢?可以使用 unalias 命令。比如,我们想删除 vi=‘vim’ 这个别名,可以这样来操作:

//删除别名设置
[root@host ~]$ unalias vi
 
//再看看, 已经被删除了吧
[root@host ~]$ alias
alias cp='cp -i'
alias dirA='echo work directory is /root'
alias dirB='echo work directory is $PWD'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

  经过仔细观察,确实已经找不到刚才定义的 vi 别名了。

  如果你想删除所有的别名,直接使用 unalias 命令的-a选项即可,只不过要谨慎使用,避免你设置的所有的别名一下子都被清除了,自己还得一个一个重新设置回来。

//删除所有别名
[root@host ~]$ unalias -a
 
//空空如也
[root@host ~]$ alias

如何执行命令本身而非别名

  别名虽好,但也有它的弊端,比如定义的别名恰好和某个命令重名了,这就麻烦了,Shell 中执行的将永远都是别名。这里,如果我们想执行真正的那个命令而非别名,该怎么办呢?有三种方法可以解决这个问题:

  • 方案一:使用命令的绝对路径。
  • 方案二:切换到命令所在的目录,执行./command。
  • 方案三:在命令前使用反斜线(\)。

  下面我们就通过示例来演示这三个方法:

//绝对路径方法
[root@host ~]$ /bin/vi test.sh
 
//明确指定当前路径的方法
[root@host ~]$ cd /bin
[root@host bin]$ ./vi ~/test.sh
 
//使用反斜线的方法
[root@host bin]$ cd
[root@host ~]$ \vi test.sh

  这里推荐大家使用最后一种方法,因为它既方便又实用。

du命令——统计目录及文件空间占用情况

  du:统计指定目录(或文件)所占用磁盘空间的大小.

  du 命令的基本格式为:

du [选项] [文件或目录]

常用项

选项说明
-a统计磁盘空间占用时包括所有的文件,而不仅仅只是统计目录
-h以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s只统计所占用空间总的大小,而不是统计每个子目录、文件的大小
–max-depth=n统计所有小于等于第n层的目录的总大小

注意选项-a和-s不可同时使用

du

如图,用命令查看

[root@host evolution]# du

在这里插入图片描述

du -a

  -a选项让 du 输出包括文件夹和文件在内的完整统计信息。

如图,用命令查看

[root@host evolution]# du -a

统计磁盘空间占用时包括所有的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uA2eBZFV-1680000929653)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327194714105.png)]

du -h

  -h选项常常代表“展示帮助信息”,即 --help 的缩写形式。但是,du 命令却不走寻常路,它的-h选项是 --human-readable 的缩写形式,表示以人类可读的形式展示磁盘使用量的单位名称(K/M/G)。

如图,用命令查看

[root@host evolution]# du -ah

  以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXZz4V00-1680000929654)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327194830141.png)]

du -s

  -s选项,是 --summarize 的缩写形式,其作用是对 du 的每一个给定参数计算其磁盘使用量,我们来看例子。

如图,用命令查看

[root@host evolution]# du -sh /root
79M	/root

只统计所占用空间总的大小,而不是统计每个子目录、文件的大小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QfOaLmnA-1680000929654)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327195111458.png)]

du --max-depth=n

  文件夹是可以嵌套的,有的时候,我们只想展示第一级或第二级子文件夹的信息,而不希望 du 统计的层次太深,那么我们可以用 --max-depth 选项来进行控制。

如图,用命令查看/var/log目录中子目录的大小

[root@host ~]# du -h --max-depth=1 /var/log/ 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YmUku7zZ-1680000929654)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327213516884.png)]

mkdir命令——创建新目录

  mkdir 命令,是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用。

  mkdir 命令的基本格式为:

mkdir [选项] 目录位置及名称

  其中选项我们这里主要介绍-p选项,-p选项是递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建/home、/home/test 以及 /home/test/demo。

第一种是直接建立目录

[root@host test]# mkdir cangls
[root@host test]# ls
121  123  1234  12345  131  141  1abc1  222  234  345  a  b  c  cangls

  我们建立一个名为 cangls 的目录,通过 ls 命令可以查看到这个目录已经建立。注意,我们在建立目录的时候使用的是相对路径,所以这个目录被建立到当前目录下。

第二种是使用 -p 选项递归建立目录

mkdir -p 11/22/33/44

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pbuVzj48-1680000929655)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327214932515.png)]

还有另一种一次性创建多个目录的方式,例如

mkdir {a,b,c}

这里使用了{}的扩展功能,一次性创建了三个目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nprZvJt2-1680000929655)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327215209705.png)]

在-p后面加-v可以显示目录创建的规则,例如

[root@host test]# mkdir /aa/bb/cc -pv

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZ0Lk8WG-1680000929656)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230327220053938.png)]

touch命令——创建空文件

  Linux的touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

  touch 命令的基本格式为:

touch 文件..

  touch文件有三种形式:修改文件时间、创建新的单个文件、创建新的多个文件。

第一种修改文件时间

touch test

如下图可知经过touch命令test的修改时间改变了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ONUBm34N-1680000929657)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328135451584.png)]

第二种创建新的单个文件

touch abc.txt

如下图可知使用touch命令后创建了一个txt文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QbLeusnd-1680000929657)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328140309923.png)]

第三种创建新的多个文件

其中可以直接创建

touch 1.txt 2.txt 3.txt

如下图可知使用touch命令后同时创建了多个txt文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eks3YVve-1680000929657)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328140054737.png)]

还有一种创建多个txt文件

touch {4,5,6}.txt

{}实现了扩展功能,可以用于一次性创建多个文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C20SlJnY-1680000929657)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328140742294.png)]

关于{}用法还有另一种

touch file{10..15}

{}中间的字符如果是连续的可以用..代替

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-36piCL4T-1680000929658)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328140956919.png)]

ln命令——创建理解文件

  ln是linux中一个非常重要命令。它的功能是为某一个文件在另外一个位置建立一个同步的链接。

  ln 命令的基本格式为:

ln [-s] 源文件或目录... 链接文件或目标位置

链接文件类型

  Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

软连接

  软链接只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间

ln [-s] 源文件或目录... 链接文件或目标位置

例如,给文件创建软链接

ln -s log2013.log link2013

说明:为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sMjnmDEn-1680000929658)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328142748576.png)]

硬链接

  硬链接会在你选定的位置上生成一个和源文件大小相同的文件

ln 源文件或目录... 链接文件或目标位置

例如,给文件创建硬链接

ln log2013.txt ln2013

说明:为log2013.txt创建硬链接ln2013,log2013.txt与ln2013的各项属性相同

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DcmYFrhF-1680000929658)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328145553992.png)]

如果我将删除链接原文件,软链接文件变为不可用,硬链接文件只有硬链接个数发生改变,仍然可以用。

[root@host ~/test]# rm -rf log2013.log
[root@host ~/test]# ll
[root@host ~/test]# rm -rf log2013.txt
[root@host ~/test]# ll

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BM7RAYEe-1680000929659)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328145337410.png)]

软链接和硬链接区别

文件类型软链接文件硬链接文件
删除源文件后失效仍然可用(文件占用空间与源文件相同)
使用范围适用于文件和目录仅适用于文件
保存位置与源文件可在不同的文件系统中必须与源文件在同一个文件系统(即同一个分区)中
与源文件的关系相当于快捷方式相当于给文件起要个别名
inode号码inode号码不同inode号码相同

可以用图来表示硬链接和软链接。在Linux中,文件名和文件数据是分开存储的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bBW3TtkM-1680000929660)(F:\博客存放\软链接硬链接.jpg)]

这里有两点要注意:

  第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;

  第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

  ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

cp命令——复制文件或目录

  cp命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令 一样,功能非常强大。

  cp 命令的基本格式为:

cp [选项] 源文件或目录 目标文件或目录

常用项

选项说明
-f覆盖目标同名文件或目录时不进行提醒,而直接强制复制
-i覆盖目标同名文件或目录时提醒用户确认
-p复制时保持源文件的权限、属主及时间标记等属性不变
-r复制目录时必须使用此选项,表示递归复制所有文件及子目录

注意:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在

cp命令基本用法

  cp 命令既可以复制文件,也可以复制目录。我们先来看看如何复制文件,例如:

//建立源文件
[root@host ~]# touch cangls
//把源文件不改名复制到 /tmp/ 目录下
[root@host ~]# cp cangls /tmp/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HfmdVfuN-1680000929661)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328152132248.png)]

如果需要改名复制,则命令如下:

//改名复制
[root@host ~]# cp cangls /tmp/bols

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HuEAlEsM-1680000929661)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328152424130.png)]

如果复制的目标位置已经存在同名的文件,则会提示是否覆盖,因为 cp 命令默认执行的是“cp -i”的别名,例如:

//目标位置有同名文件,所以会提示是否覆盖
[root@host ~]# cp cangls /tmp/
cp:是否覆盖"/tmp/cangls"?y

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9wpUr0tn-1680000929662)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328152408414.png)]

接下来我们看看如何复制目录,其实复制目录只需使用“-r”选项即可,例如:

//建立测试目录
[root@localhost ~]# mkdir movie
//目录原名复制
[root@localhost ~]# cp -r /root/movie/ /tmp/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXdK1ats-1680000929662)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328152648287.png)]

注意:cp是cp -i的别名,要想不使用cp -i的别名功能,有三种方法:取消别名(alias cp);使用cp这个外部命令的完整路径,进入/usr/bin/cp;\cp也能取消cp的别名功能。

rm命令——删除文件或目录

  当 Linux 系统使用很长时间之后,可能会有一些已经没用的文件(即垃圾),这些文件不但会消耗宝贵的硬盘资源,还是降低系统的运行效率,因此需要及时地清理。rm 是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。

  rm 命令的基本格式为:

rm [选项] 源文件或目录 目标文件或目录

常用项

选项说明
-f强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。
-i和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。
-r递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。

注意,rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。

基本用法
  rm 命令如果任何选项都不加,则默认执行的是"rm -i 文件名",也就是在删除一个文件之前会先询问是否删除。例如:

[root@host ~/test]# touch cangls
[root@host ~/test]# rm cangls
//删除前会询问是否删除
rm:是否删除普通空文件"cangls"?y

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-12sL3vRm-1680000929662)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328154144396.png)]

删除目录
如果需要删除目录,则需要使用"-r"选项。例如:

//递归建立测试目录
[root@host ~/movie]# mkdir -p test/lm/movie/jp
[root@host ~/movie]# rm test
rm:无法删除"/test/": 是一个目录
//#如果不加"-r"选项,则会报错
[root@host ~/movie]# rm -r test
//会分别询问是否进入子目录、是否删除子目录
rm:是否进入目录"test"? y
rm:是否进入目录"test/lm"? y
rm:是否进入目录"test/lm/movie"? y
rm:是否删除目录 "test/lm/movie/jp"?y
rm:是否删除目录 "test/lm/movie"?y
rm:是否删除目录 "test/lm"?y
rm:是否删除目录 "test"?y

在这里插入图片描述

大家会发现,如果每级目录和每个文件都需要确认,那么在实际使用中简直是灾难!

强制删除
  如果要删除的目录中有 1 万个子目录或子文件,那么普通的 rm 删除最少需要确认 1 万次。所以,在真正删除文件的时候,我们会选择强制删除。例如:

//重新建立测试目录
[root@host ~/movie]# mkdir -p test/lm/movie/jp
//强制删除,一了百了
[root@host ~/movie]# rm -rf test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NtNZOqtG-1680000929663)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328155055034.png)]

  加入了强制功能之后,删除就会变得很简单,但是需要注意,数据强制删除之后无法恢复,除非依赖第三方的数据恢复工具,如 extundelete 等。但要注意,数据恢复很难恢复完整的数据,一般能恢复 70%~80% 就很难得了。所以,与其想要数据恢复,不如养成良好的操作习惯。

  虽然 -rf 选项是用来删除目录的,但是删除文件也不会报错。所以,为了使用方便,一般不论是删除文件还是删除目录,都会直接使用 -rf选项。

mv命令——移动文件或目录

  mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。

  mv 命令的基本格式为:

mv [选项]... 源文件或目录... 目标文件或目录

常用项

选项作用
-f强制覆盖,如果目标文件已经存在,则不询问, 直接强制覆盖
-i如果目标文件已经存在,则询问用户 是否覆盖(默认选项)
-v显示文件或目录的移动过程

需要注意的是,同 rm 命令类似,mv 命令也是一个具有破坏性的命令,如果使用不当,很可能给系统带来灾难性的后果。

移动文件或目录

//移动之后,源文件会被删除,类似剪切
[root@host ~]# mv file15 /tmp
[root@host ~]# mkdir test
//也可以移动目录。和 rm、cp 不同的是,mv 移动目录不需要加入 "-r" 选项
[root@host ~]# mv test/ /tmp

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b7lwmuER-1680000929663)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328161135054.png)]

如果移动的目标位置已经存在同名的文件,则同样会提示是否覆盖,因为 mv 命令默认执行的也是 “mv -i” 的别名,例如:

//重新建立文件
[root@localhost ~]# touch cangls
[root@localhost ~]# mv cangls /tmp
//由于 /tmp 目录下已经存在 cangls 文件,所以会提示是否覆盖,需要手工输入 y 覆盖移动
mv:县否覆盖"tmp/cangls"?y

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jGpSXJRb-1680000929664)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328161404756.png)]

强制移动
  之前说过,如果目标目录下已经存在同名文件,则会提示是否覆盖,需要手工确认。这时如果移动的同名文件较多,则需要一个一个文件进行确认,很不方便。

  如果我们确认需要覆盖已经存在的同名文件,则可以使用 -f选项进行强制移动,这就不再需要用户手工确认了。例如:

//重新建立文件
[root@localhost ~]# touch cangls
//就算 /tmp/ 目录下已经存在同名的文件,由于"-f"选项的作用,所以会强制覆盖
[root@localhost ~]# mv -f cangls /tmp

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KbWCJkc-1680000929664)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328161538442.png)]

改名
   如果源文件和目标文件在同一目录中,那就是改名。例如:

//把 lmls 改名为 bols
[root@host ~]# mv lmls bols

目录也可以按照同样的方法改名。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WjPsrZkb-1680000929664)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328161749627.png)]

which命令——查找命令文件存放目录

  which 用于查看给定命令的绝对路径。

  which 可指定一个或多个参数。对于它的每个参数,它将可执行文件的完整路径打印到 stdout。它通过使用与 bash(1) 相同的算法在环境变量 PATH 中列出的目录中搜索可执行文件或脚本来实现这一点。

  which 命令的基本格式为:

//默认当找到第一个目标后不再继续查找
which 命令|程序名
//在所有搜索路径中查找
which -a 命令|程序名

如果想要知道某个命令所在路径可用用which来查找

[root@host ~]# which cd
/usr/bin/cd
[root@host ~]# which -a touch
/usr/bin/touch

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z2rg4fBG-1680000929665)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328162906320.png)]

一般情况下,which 是一个别称,可以查看 which 的详细定义

root@host ~]# which which

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
	/usr/bin/alias
	/usr/bin/which

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L8xFu42F-1680000929665)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328163221059.png)]

打印帮助信息

[root@host ~]# which --help

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c7vzGMMw-1680000929665)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328163407792.png)]

find命令——查找文件或目录

  find是用来在文件系统上查找复合条件的文件。

  find命令有非常强大的灵活性,可以指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录,同时还支持对对搜索的结果进行命令操作。

  find 命令的基本格式为:

find [搜索范围] [查找条件表达式]

注意:查找范围是指查找文件或子目录的目标位置;查找条件表达式是指按照条件类型查找。

常用查找条件类型

查找类型关键字说明
按名称查找-name根据目标文件的名称进行查找,允许使用“*”及“?”通配符
按文件大小查找-size根据目标文件的大小进行查找
一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括kB(注意k是小写)、MB、GB
按文件属主查找-user根据文件是否属于目标用户进行查找
按文件类型查找-type根据文件的类型进行查找
文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件©等块设备文件(b):成块读取数据的设备(硬盘,内存,光驱)
字符设备文件©:按单个字符读取数据的设备(键盘,鼠标)

查找条件

根据文件名查找——name

//查找 movie 目录下所有文件名以 .txt 结尾的文件
[root@host ~]# find /usr -name '[0-9].txt'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b4r1Thkj-1680000929665)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328170750421.png)]

//查找 /usr 目录下所有文件名刚好为1个字符的文件
[root@host ~]# find /usr -name '?.txt'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n0rR8zA9-1680000929666)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328170823913.png)]

//查找 /usr 下所有文件名以 .txt 结尾的文件或目录,且该文件的父目录必须是 src
[root@host ~]# find /usr -path '*/src/*.txt'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lwMrAhJr-1680000929666)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328170954135.png)]

根据文件类型查找——type

//检索 /usr 下所有文件名以 python 开头的目录
[root@host ~]# find /usr -type d -name 'python*'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ceIcTWz1-1680000929666)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328175327124.png)]

根据文件大小来查找——size

//查找大于100M的文件
[root@host ~]# find /sys -size +100M 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fi3zQWPp-1680000929667)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328175458929.png)]

根据文件的所属权来查找——user

//查找/var目录下属主为root,且属组为mail的所有文件或目录
find /var -user root -a -group mail

在这里插入图片描述

根据inode号进行查找——inum

//根据33823474查找对应文件为bols
[root@host ~]# find / -inum 33823474 
/root/bols

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jv3DJgLb-1680000929667)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328181254210.png)]

根据修改时间来查找——mtime

//查找20天以前的文件
[root@host ~]# find -mtime  +20 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WlHDVSIk-1680000929668)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328180400984.png)]

find命令实现多个查找

逻辑运算符

  find命令支持一些复杂的搜索方式:逻辑与、逻辑或、逻辑非。而我这里主要介绍的是逻辑与(且)、逻辑或(或)。

  -a:and,逻辑与

  find命令也支持逻辑运算符选项,其中-a代表逻辑与运算,也就是-a的两个条件都成立,find搜索的结果才成立(其中有一个不成立都不行)。

例如

//在当前目录下搜索大于2MB,并且文件类型是普通文件的文件
[root@localhost ~ ] # find . -size +2M -a -type f

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uuFAMG68-1680000929668)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328182101495.png)]

  -o:or,逻辑或

  -o选项代表逻辑或运算,也就是-o的两个条件只要其中一个成立,find命令就可以找到结果。

例如:

//在当前目录下搜索文件要么是大小大于2MB的文件,要么是bols的文件,两个都可以搜索到。 
[root@localhost ~ ] # find . -size +2M -o -name bols
./.cache/mozilla/firefox/uzbm9w8w.default-default/startupCache/startupCache.8.little
./.cache/mozilla/firefox/uzbm9w8w.default-default/startupCache/scriptCache-current.bin
./.mozilla/firefox/uzbm9w8w.default-default/places.sqlite
./.mozilla/firefox/uzbm9w8w.default-default/favicons.sqlite
./bols

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIR09GjQ-1680000929668)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328182236338.png)]

exec用法

  -exec参数后面跟的是Linux命令,它是以分号“;”为结束标志,由于各个系统中分号会有不同的意义,因此正在分号前面加上反斜杠转义符“\”。

  find 命令exec用法的基本格式为:

find 搜索路径 [选项] 搜索内容 -exec 命令 {} \;

注意:

  1.{}代表前面find查找出来的文件文件名

  2.基本格式,只要写 -exec,命令最后一定要写 \;。

例如

//查找名字中含有“.txt”的普通文件,并使用ls -l命令将它列出来
[root@host ~]# find ./ -type f -a -name "*.txt" -exec ls -l {} \;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AzE12SXu-1680000929669)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328183532351.png)]

xargs命令

  当在find命令中利用-exec对查找到的结果进行进一步处理时,有时可能会出现问题。这是因为-exec是将find所找到的结果一次性地送给后面的命令进行处理,有时候find可能会找到大量的文件,超出了后面的命令所能处理的参数范围,这时就会出现溢出错误,错误信息通常是“参数列太长”或“参数列溢出”,这时就可以使用xargs命令。xargs虽然本身是一个独立的Linux命令,但通常都是被用来配合find命令使用。通过xargs,可以将find所找到的结果分批次地送给之后的命令进行处理,从而避免出现溢出问题。

  xagrs 命令的基本格式为

find 搜索路径 [选项] 搜索内容 | xargs 命令

例如

//查找名字中以“.cfg”结尾的文件,并使用ls -l命令将它列出来
[root@host ~]# find ./ -name "*.cfg" | xargs ls -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jfHpgUtq-1680000929669)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328184751831.png)]

find命令删除

find 查看删除的三种方式,如删除当前目录下的txt文件:

方法1:xargs rm -f

[root@host ~/movie]# find ./ -type f -name "*txt" | xargs rm -f

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A8uEAw9m-1680000929669)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328185137792.png)]

方法2:-exec rm -f

[root@host ~/movie]# find ./ -type f -name "*txt" -exec rm -f {} \;

-exec命令是查找到的每个文件调用一次rm命令,因此速度最慢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KTqL4Jjf-1680000929669)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328185409470.png)]

方法3:-delete

[root@host ~/movie]# find ./ -type f -name "*txt" -delete

如果一次删除大量文件,建议采用第三种方式。经测试在删除千万级文件时,第三种方式比前两种快百倍。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DvciVnCx-1680000929670)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230328185454170.png)]

保姆级教程:在树莓派5B上用AI Kit跑YOLOv8,实测134fps的完整配置流程 本文提供了一份详细的树莓派5B搭配AI Kit部署YOLOv8的教程,从硬件组装到模型转换、优化和部署,最终实现134FPS的高帧率推理性能。通过Hailo-8L AI加速模块和HEF模型转换,这套方案为边缘AI计算提供了强大支持,适用于智能监控、无人机视觉导航等应用场景。 阅读详情

相关推荐

高速PCB设计中的信号完整性挑战:回损、插损与串扰的深度解析

本文深入探讨了高速PCB设计中的信号完整性挑战,重点分析了回损、插损与串扰三大关键问题。通过实际案例和专业技术解析,提供了降低回损的阻抗控制技巧、减少插损的板材选择建议以及抑制串扰的布线策略,帮助工程师应对5G和AI芯片时代的高速信号传输需求。

websocket5live的博客 265

1)基本常用命令

1: 目录处理命令 1)建立目录:mkdir(make directories) mkdir -p [目录名] -p 递归创建 ep: mkdir lanbo 这样就创建了一个lanbo文件夹,但是如果我想把创建的lanbo文件夹凡在favorite文件夹下呢?那么这就是递归创建了 ep:mkdir -p favorite/lanbo

那又怎样的博客 578

【分享】ArcGIS实现分子分母等标注实用技巧

前言 标注是显示在地图上的文字信息,是出图中不可或缺的重要元素,为了标注的样式丰富,摆放的位置灵活,因此给制图出图带来不少难度,以下分享几种本人在ArcGIS中的标注方法,实现上下标注、换行标注或分式标注的实用技巧。 普通模式与高级模式 默认为普通模式,勾选高级开启高级模式。 普通二分式标注(普通模式) [DLBM] & vbnewline & [DLMC] 标注效果展示 分行二分式标注(普通模式) [DLBM]& vbnewline & "——————" &

杨港 3万+

Linux常用文件管理命令

Linux常用文件管理命令

weixin_45490798的博客 1513

保姆级教程:用Python 3.10和Ollama在Windows上搞定LightRAG本地部署(附环境配置避坑指南)

本文提供了一份详细的Windows系统下LightRAG本地部署指南,涵盖Python 3.10环境配置、Ollama模型服务安装到LightRAG核心组件部署的全流程。特别针对Windows平台常见问题提供解决方案,帮助开发者快速搭建高效的检索增强生成(RAG)系统,实现专业领域知识的智能检索与整合。

weixin_28725407的博客 482

全志V3S开发板实战:从零构建嵌入式Linux系统

本文提供了一份针对全志V3S开发板(如LicheePi Zero)的零基础教程,详细指导如何从零开始构建嵌入式Linux系统。内容涵盖编译环境搭建、交叉工具链配置、U-Boot引导程序编译与烧录、Linux内核定制与编译,以及使用Buildroot构建根文件系统,最终实现系统成功启动,帮助开发者深入理解嵌入式系统构建全流程。

tensor9flow的博客 575

Linux ❉ 文件创建(touch)、复制(cp)、移动(mv)与删除(rm)

文件创建(touch)、复制(cp)、移动(mv)与删除(rm)

wangjie72270的博客 2084

逆概率加权法(Inverse Probability Weighting, IPW)的原理及R实现

逆概率加权(IPW)是一种用于解释由于非随机选择观测值或人群信息的非随机缺失而造成的缺失和选择偏差的方法。原理:这种方法可以通过对观察值的加权来修正分析,使其具有被选中的概率。IPW是基于这样一个假设,即整个研究人群都有可以预测纳入概率(非遗漏)的个体信息,因此,在考虑到这些信息后,我们可以仅从非遗漏的观察值开始对整个目标人群进行推断。计算的程序如下:首先,我们考虑整个研究人群,用逻辑回归模型计算非失访信息的概率,其中响应是非失访,协变量是其可能的预测因素。每个受试者的权重是由预测概率的倒数给出的。然后使用

Christina 5万+

Linux---实用指令(四)

一、运行级别 二、文件目录类 pwd指令 功能描述:显示当前工作目录的绝对路径。 ls指令 ls [选项] [目录或是文件] 常用选项 -a :显示当前目录所有的文件和目录,包括隐藏的。 -l :以列表的方式显示信息 cd 指令 功能描述:切换到指定目录 cd [参数] 常用参数: 绝对路径和相对路径 cd ~ 或者cd :回到自己的家目录 cd .. ...

我是太阳 1万+

Loop Engineering 来了:从写 Prompt 到设计 Loop,AI 编程的第四次范式跃迁

文章摘要: Loop Engineering是AI编程领域的新范式,标志着从"人手动喂指令"到"设计自驱动循环"的跃迁。其核心在于通过五个组件(定时器、工作空间、知识体系、连接器和子Agent验证)构建自动化任务流,使AI系统能自主运行。这一概念的火爆源于模型能力和工具链的成熟,使得任务设计成为关键瓶颈。作者指出,从Prompt到Loop的四次范式跃迁(语言学→信息科学→控制论→管理学)反映了人机协作关系的根本变化:人类角色从执行者逐渐退居为目标设定者。落地Loop Engineering的真正挑战在于目标

少说,多做 330

手把手教你学simulink(36.1)--ACAC变换器场景示例:基于 Simulink 的矩阵变换器(Matrix Converter)

矩阵变换器(Matrix Converter, MC)是一种直接将交流电(AC)转换为不同频率和幅值的交流电的电力电子设备。与传统的基于直流环节的变频器不同,矩阵变换器不需要中间的直流环节,而是通过双向开关直接在输入和输出之间进行能量传递。这种结构使得矩阵变换器具有更高的效率、更小的体积和更好的动态响应。在本项目中,我们将使用 MATLAB/Simulink 来建模和仿真一个矩阵变换器,并分析其性能。Simulink 是一个强大的仿真工具,特别适合用于电力电子系统的建模和仿真。

MHD0815的博客 1065

尚硅谷Linux学习笔记---常用命令-文件操作命令

2.2、文件操作命令 2.2.1、touch 命令名称:touch 英文原意:change file timestamps 所在路径:/bin/touch 执行权限:所有用户 功能描述:创建空文件或修改文件的时间戳 2.2.2、stat 命令名称:stat 英文原意:display file or file system status 所在路径:/bin/stat 执行权...

太阳以西?的博客 348

SIMULINK开发项目实例 1000 例专栏之第802例--基于电机驱动系统的场景实例:永磁同步电机(PMSM)在电动汽车中的矢量控制仿真

随着全球对环境保护的关注增加,电动汽车(Electric Vehicle, EV)因其环保特性而受到广泛关注。永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)由于其高效率、高功率密度和良好的动态响应性能,在电动汽车驱动系统中得到了广泛应用。矢量控制(Field-Oriented Control, FOC)是实现PMSM高性能控制的关键技术之一,它能够实现对电机转矩和磁场的独立控制,从而达到类似直流电机的控制效果。本文将详细介绍如何使用来构建一个。

xiaoheshang_123的博客 269

Linux常用命令

Linux常用命令 1.查看目录结构命令 ls(list)功能:列出目录内容 格式:ls[参数][文件或目录] -a或--all 所有文件和目录。注意隐藏文件、特殊目录、以“.”开头的和以“..”开头的 -l 使用详细格式列表 -t 用文件和目录的更改时间排序 -r 反向排序 --help 在线帮助 常用: ls -l 列出...

云飞扬°的博客 6万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Linux系统及常用命令

在Linux操作系统中,每当我们使用用户名登录操作系统时,Linux都会对 该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是 UID。​ 用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。​ 在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限, 能执行任何命令和操作,而其他用户都是普通用户。​ Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。

渣渣盟的博客 1815

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux常用命令大全

目录 常用命令 目录操作 查看文件内容 创建文件或目录 删除文件或目录 移动文件或目录 复制文件或目录 修改文件或目录权限 更换软件源 常用命令 mkdir dir1 创建一个叫做 'dir1' 的目录' touch test.out 创建test.out文件 rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 mv dir1 new_dir 重命名/移动 一个目录 cp file1 dir 复制一..

lduzhenlin的专栏 3286

Linux的常用命令

Linux的常用命令

weixin_56449709的博客 1096

《Linux程序设计》实验1 Linux常用命令

(1)帮助命令:--help、info。(2)文件系统常用命令:ls、mkdir、rmdir、mv、rm、cp、find、head、tail、wc、grep、gzip、gunzip、tar、mount、umount。(3)系统管理常用命令:useradd、passwd、kill、date。(4)网络操作常用命令:ifconfig、ifup、ifdown、ping。(5)网络安全常用命令(6)字符串显示命令echo。(1)切换到/home目录。

J1481852914的博客 984

Linux笔记(常用命令)

Linux常用命令讲解

LLM | Agent | RAG | Java 2369

linux常用命令学习

stat cuda #查看cuda连接到的软连接 touch a.txt#新建文件a.txt mkdir build#新建文件夹build/ rm -rf a.txt#删除文件 mv a.txt b.txt#文件重命名 du -sh#查看当前目录总占用量,不单独列出各项占用量 du -lh --max-depth=1#查看当前目录下一级子文件和子目录磁盘占用情况 ls -lht #查...

冬后晚晴的博客 385

linux常用命令_linux常用命令汇总

把前几天更新的linux的常用命令汇总在了一起,方便大家查看。linux常用命令如下:cd首先我们先介绍最简单,也是我最常用的命令之一,cd命令。##进入用户家目录cdcd~##查看目录的路径pwd如果想要进入某特定路径#进入某特定目录cdDesktop/test##查看当前路径pwd想要进入上层目录#进入上层目录cd../##查看当前目录pwd想要进入跟目录下一层的某目录##进入...

weixin_39566773的博客 211

Linux常用命令思维导图

Linux常用命令思维导图

fengxiandada的博客 1581

Linux中常用命令

作用: vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本语法: vi fileName说明:1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。2). 要使用vim命令,需要我们自己完成安装。

2301_78554215的博客 2008

linux常用命令_Linux 最常用命令

Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。一、Linux的目录结构/的下级目录bin (binaries)存放二进制可执行文件sbin (s...

weixin_39609770的博客 353
上一篇: 【Linux】shell与Linux的命令介绍
下一篇: 【Linux】目录和文件管理(一)
我的宝贝大唐
博客等级 码龄7年 96粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的宝贝大唐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值