天天滚动:Linux下命令(3)

2023-01-09 16:23:03 来源:51CTO博客

Linux下命令(3)

Linux 是一套免费使用和自 由传播的类 Unix 操作系统, 是一个基于 POSIX 和 UNIX 的多用户、 多任务、 支持多线程和多 CPU 的操作系统。 它能运行主要的 UNIX 工具软件、 应用程序和网络协议。 它支持 32 位和 64 位硬件。 Linux 继承了 Unix 以网络为核心的设计思想, 是一个性能稳定的多用户网络操作系统。

1.moun命令

mount 命令用于挂载磁盘分区或者网络文件系统。

语法:mount -t [文件系统类型] [将要挂载的设备] [-o 选项] [挂载的目标目录]


(相关资料图)

注:通过-t 这个参数, 我们来指定文件系统的类型,一般的情况下不指定也能自动识加。 -t 后面跟 ext3、ext2、reiserfs、vfat、ntfs、nfs等;可以通过查看mount的帮助文档进行查看详细信息。

-o主要用来描述设备或档案的挂接方式。常用的参数有:

loop:用来把一个文件当成硬盘分区挂接上系统;

ro:采用只读方式挂接设备;

rw:采用读写方式挂接设备;

iocharset:指定访问文件系统所用字符集;

运用实例

(1)挂载SD卡分区到指定目录

$ sudo mount /dev/sdb2 /test/

将sdb2设备挂载到/test目录下。

​  (2)取消挂载

$ sudo umount /dev/sdb2 /test/

(3)挂载光盘映像文件到指定目录

$ sudo mount 123.iso -o loop /test/

将123.iso文件当成硬盘挂载到/test 目录下。

​  (4)将一个目录挂载到另一个目录下

$ sudo mount --bind /work/ /test/

相当于使用 ln 建立链接一样效果。

​  (5)使用mount命令挂载NFS网络文件系统

$ sudo mount -t nfs 192.168.11.123:/work /test/

如果挂载提示设备资源上锁,可以使用下面方式进行挂载:

$ sudo mount -t nfs -o nolock 192.168.11.123:/work /test/

其中192.168.11.123表示服务器的IP地址,/work 表示NFS服务器共享的目录。/test/表示本地挂载的目录。

2.rm命令:删除文件/目录

功能:在 linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用 rm 命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

语法:rm [] <文件或者目录>

说明:如果没有使用-r选项,则rm不会删除目录;

参数

​ -f 忽略不存在的文件,从不给出提示。

-r 指示rm将参数中列出的全部目录和子目录均为递归地删除。

-i 进行交互式删除。

-v 输出已经删除的文件。

使用rm命令要格外小心,应为一旦一个文件被删除,它是不能被恢复的,为了防止此种情况发生,可以使用rm命令中的-i选项来确认要删除的每个文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件将会被保留。

(1)删除文件

[wbyq@wbyq ~]$ rm 1.doc #删除文件

(2)递归删除

[wbyq@wbyq ~]$ mkdir 123/456/789/ads -pv #创建目录[wbyq@wbyq ~]$ rm 123 -rfv #删除目录,并输出删除过程removed directory "123/456/789/ads"removed directory "123/456/789"removed directory "123/456"removed directory "123"

(3)删除所有文件

[wbyq@wbyq work]$ rm ./* -rfv

3.cat命令:查看文件内容

功能:查看文件内容  语法:cat [选项] [文件]

参数:-b 对非空输出行号  -E 在每行结束处显示$  -n对输出的所有行进行编号  -s不输出多行空行

4.pwd命令:显示工作目录

功能:在 Linux 层次目录结构中,用户可以在被授权的任意目录下利用 mkdir 命令创建新目录,也可以利用 cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用户目前处于哪一个目录中。要想知道当前所处的目录,可以使用 pwd 命令,该命令显示整个路径名。

语法: pwd

说明:此命令显示出当前工作目录的绝对路径

[wbyq@wbyq ~]$ pwd/home/wbyq

根目录以开头的“/”表示。如果 pwd 后面什么都没有,则显示当前所在位置。如果屏幕信息很多,可以通过clear可以清除。

5.cp命令:拷贝文件/目录

功能:将给出的文件或目录拷贝到另一文件或目录中。  语法:cp [选项] <源文件或目录> <目标文件或目录>  说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

参数:

-a 该选项通常拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录

-d 拷贝时保留链接。

-f 删除已经存在的目标文件而不提示。

-i 和 f 选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答 y 时目标文件将被覆盖,是交互式拷贝。

-r 若给出的源文件是一目录文件,此时 cp 将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。一般使用-a 参数。

//拷贝work目录下的所有文件到当前目录[xsw@ashui ~]$ cp -a  /mnt/hgfs/red_hat_linux/work/  ./  [xsw@ashui ~]$ cp  123.c  ./work/   #拷贝123.c文件到当前目录下的work目录下

6.mv 命令:改名、移动、文件/目录

功能:为文件或目录改名或将文件由一个目录移入另一个目录中。

语法: mv [选项] <源文件或目录> <目标文件或目录>

说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv 命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

参数:

-i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或 n,这样可以避免误覆盖文件。

-f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i 选项将不再起作用。

如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下 用mv命令破坏另一个文件,建议用户在使用mv命令移动文件时,最好使用i选项。

(1)移动文件

[wbyq@wbyq ~]$ mv 1.c ./work/

将1.c移动到work目录下

(2)文件重命名

[wbyq@wbyq work]$ mv 1.c test.c 

将1.c改名为test.c

7.chmod 命令:修改文件/目录权限

功能:改变文件或目录的访问权限

语法:chmod [权限] <文件或者目录>

通过 ls -l 命令可以查看目录或者文件的详细信息,其中第 2~10 个字符代表了文件的访问权限,当中的每3个为一组,左边三个字符表示所有者权限;中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:

代表的意义如下:

权限

说明

r

可读权限:对文件而言,具有读取文件内容的权限;

对目录来说,具有浏览目录的权限

w

可写权限:对文件而言,具有新增、修改文件内容的权限;

对目录来说,具有删除、移动目录内文件的权限。

x

可执行权限:对文件而言,具有执行文件的权限;

对目录了来说该用户具有进入目录的权限。

其中的权限可以使用数字的组合方式进行表示:

权限

说明

r

对应数值 4

w

对应数值 2

x

对应数值 1

数字设定的关键是取值,一开始许多初学者会被搞糊涂,其实很简单,我们将 rwx 看成二进制数,如果有则 有 1 表示,没有则有 0 表示。

例如:rwx r-x r–则可以表示成为:111 101 100

再将其每三位转换成为一个十进制数,就是754。

设置文件权限示例:

[wbyq@wbyq work]$ sudo chmod 764 test.c #设置test.c文件权限

8.ln命令:建立符号链接

ln连接文件或目录,分为软链接和硬链接。  软连接语法:ln -s <源文件> <目标文件>(删除源文件之后,链接变成无效的了),相当于快捷方式。  硬链接语法:ln <源文件> <目标文件>(删除源文件之后,目标没有影响)

[wbyq@wbyq ~]$ ln -s app app2 #创建软件链接

9.find命令

命令功能:用于在文件树种查找文件,并作出相应的处理。

语法:find [查找的路径] [选项] [表达式]

命令参数说明:

参数

说明

-name

按照文件名查找文件。

-perm

按照文件权限来查找文件。

-user

按照文件属主来查找文件。

-group

按照文件所属的组来查找文件。

-mtime -n +n

按照文件的更改时间来查找文件, - n 表示文件更改时间距现在 n 天以内, + n 表示文件更改时间距现在 n 天以前。

-nogroup

查找无有效所属组的文件,即该文件所属的组在/etc/groups 中不存在。

-nouser

查找无有效属主的文件,即该文件的属主在/etc/passwd 中不存在。

-newer file1 ! file2

查找更改时间比文件 file1 新但比文件 file2 旧的文件。

-type

查找某一类型的文件,诸如:

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

f - 普通文件。

-size n:[c]

查找文件长度为 n 块的文件,带有 c 时表示文件长度以字节计。

-depth :

在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype:

查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文

-mount :

在查找文件时不跨越文件系统 mount 点。

-follow:

如果 find 命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio:

对匹配的文件使用 cpio 命令,将这些文件备份到磁带设备中。

-amin n

查找系统中最后 N 分钟访问的文件

-atime n

查找系统中最后 n*24 小时访问的文件

-cmin n

查找系统中最后 N 分钟被改变文件状态的文件

-ctime n

查找系统中最后 n*24 小时被改变文件状态的文件

-mmin n

查找系统中最后 N 分钟被改变文件数据的文件

-mtime n

查找系统中最后 n*24 小时被改变文件数据的文件

使用示例

(1)根据名字查找

$ find /home/wbyq/ -name main.c  #在wbyq目录下查找main.c文件

(2)根据通配符查找文件

$ find /home/wbyq/ -name “*.c”   #在指定目录下查找所有.c文件$ find  “*.c”  #在当前目录下查找.c文件

(3)不区分大小写的方式:

$ find /home/wbyq/ -iname "*.c"

(4)同时查找多个文件

$ find /home/wbyq/  -name "*.txt" -o -name "*.c" -o -name "*.h"

在/home/wbyq/目录下查找以.c、.txt、 .h为后缀的文件。主要参数是-o。

(5)根据文件大小进行匹配

$ find /home/wbyq/ -type f -size 200k

在/home/wbyq/目录下查找类型为 f的普通文件,并且文件的大小为200k。

文件大小单元:

b —— 块( 512 字节)

c —— 字节

w —— 字( 2 字节)

k —— K 字节

M —— 兆字节

G —— G 字节

常用大小搜索方式:

搜索大于 100KB 的文件 $ find /home/wbyq/ -type f -size +100k搜索小于 100KB 的文件 $ find /home/wbyq/ -type f -size -100k搜索等于 100KB 的文件 $ find /home/wbyq/ -type f -size 100k

(6)查找并删除指定文件

//wby目录下找普通文件,以.c为后缀,并删除$ find /home/wbyq/  -type f -name "*.c" -delete $ find /home/wbyq/ -name "*.txt" -ok rm {} \;$ find /home/wbyq/ -name "*.txt" -exec rm {} \;

-exec参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。

{}花括号代表前面find查找出来的文件名。

注意:{}和;中间的空格。

其中-ok和-exec行为一样,不过-ok会给出提示,是否执行相应的操作;-exec不会提示,直接执行。

标签: 目标文件 文件系统

上一篇:环球观焦点:[c++实践]内存对齐与伪共享
下一篇:环球聚焦:如何制作一个羊了个羊游戏1:堆叠牌的拾取