Linux常用指令基础(二)

Linux常用指令基础(二)

创建链接文件-In

为文件或目录建立链接文件,类似于Windows系统的快捷方式

链接文件类型

  1. 软链接(Symbolic Link)
    软链接,也称为符号链接,是一种特殊的文件类型,它并不直接指向文件或目录的i节点,而是指向一个路径名。这意味着,软链接可以跨文件系统链接到另一个文件或目录。当你访问一个软链接时,操作系统会自动重定向到目标文件或目录。

    软链接的特点包括:

    • 可以跨文件系统链接。
    • 链接的是路径,而不是文件本身。
    • 如果目标文件被移动或删除,软链接将失效。
    • 适用于文件或目录。
  2. 硬链接(Hard Link)
    硬链接是指两个或多个文件共享相同的i节点和存储空间。这意味着,硬链接指向的是文件的物理数据,而不是路径名。因此,硬链接不能跨文件系统创建,也不能链接到目录(在大多数文件系统中)。

    硬链接的特点包括:

    • 链接的是文件的物理数据,而不是路径。
    • 不能跨文件系统链接。
    • 链接数不会增加文件的存储空间占用。
    • 适用于文件,不适用于目录(除非是特殊文件系统支持)。
    • 如果目标文件被删除,硬链接仍然有效,因为它们指向相同的i节点。
      创建软链接:ln [选项] <源文件> <目标文件>
      创建硬链接:ln [选项] <源文件> <目标文件>

示例

In -s /bin/bzip2 /bin/wx/

数据对应在硬件里边的唯一标识是inode号,不是文件名。
inode号存储是有上限的

复制文件或目录-cp

将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录

cp {选项}  源文件或目录 目标文件或目录
cp的常用选项-
-f覆盖目标同名文件或目录时不进行提醒,而直接强制复制
-i覆盖目标同名文件或目录时提醒用户确认
-p复制时保持源文件的权限、属主及时间标记等属性不变
-r复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a块完整保留所有的信息包括连接文件,可以直接复制目录
-v显示复制的详细信息
-b在覆盖目标文件之前,对目标文件进行备份
注意复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在。

示例
1.-f 强制复制文件或目录,不论目的文件或目录是否已经存在:

cp -f source_file.txt target_file.txt

注意,如果target_file.txt已经存在,它会被source_file.txt覆盖,且不会有任何提示。
2. -i 在覆盖目标文件之前给出提示,要求用户确认是否覆盖:

cp -i source_file.txt target_file.txt

3.-p 保留源文件或目录的属性,包括所有者、所属组、权限与时间:

cp -p source_file.txt target_file.txt

4.-r 递归复制目录及其子目录:

cp -r source_directory/ target_directory/

如果target_directory不存在,它会被创建。
5. -a此选项的效果和同时指定-dpR参数相同,用于复制目录及其内容,并保留文件的属性:

cp -a source_directory/ target_directory/

这个命令会递归地复制source_directory目录及其所有子目录和文件到target_directory,同时保留原有的文件权限、所有者和时间戳等属性。
6.-v显示复制的详细信息:

cp -v source_file.txt target_file.txt

7.-b在覆盖目标文件之前,对目标文件进行备份:

cp -b source_file.txt target_file.txt

如果target_file.txt已经存在,系统会在覆盖之前将其备份,并保留备份文件的链接指向源文件。

补充:
rsync-增量复制
rsync还可以跨主机复制

删除文件或目录-rm

rm的常用选项-
-f删除文件或目录时不进行提醒,而直接强制删除。
-i删除文件或目录时提醒用户确认。(y表示删除,n表示不删除)
-r删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)
注意不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。

查找文件-find

命令的特点:精确查找 实时查找 遍历(慢) 支持查找条件较多
find [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕(print)

查找类型关键字说明
按名称查找-name根据目标文件的名称进行查找,允许使用“*”及“?”通配符
按文件大小查找-size根据目标文件的大小进行查找,一般使用“”、“-”号设置超过或小于指定的大小作为查找条件,常用的容量单位包括 kB(注意 k 是小写)、MB、GB(M和G要大写!)
按文件属主查找-user根据文件是否属于目标用户进行查找
按文件类型查找-type根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
按inode号-inum根据文件inode号查找
按权限查找-perm按文件权限查找
最大搜索目录深度-maxdepth level将文件以分级的形式查找
最小搜索目录深度-mindepth level同上

查找opt目录下,所有大于1G的文件,然后把他们移动到etc目录下:

find /opt/ -size +1G -type f -exec mv{} /etc \;

或与且的优先级
o or, 或者,满足一个条件即可。
a and,并且,同时满足两个条件。

其他指令

mv -用于移动或重命名文件和目录

基本用法

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

常用选项

  • -f:强制移动,如果目标文件已存在,则覆盖它。
  • -i:交互式模式,如果目标文件已存在,询问用户是否覆盖。
  • -u:仅当源文件比目标文件新时才进行移动。
  • -v:详细模式,显示正在进行的操作。
    示例
  1. 将文件从当前目录移动到另一个目录:
    mv source.txt /path/to/destination/
    
  2. 重命名文件:
    mv old_name.txt new_name.txt
    
  3. 将目录及其内容移动到另一个目录:
    mv source_directory /path/to/destination/
    
  4. 交互式模式移动文件,如果目标文件已存在,则询问用户是否覆盖:
    mv -i source.txt /path/to/destination/
    

df(disk free)-用于显示磁盘空间的使用情况

基本用法

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

如果不指定文件或目录,df 会默认显示当前工作目录的文件系统信息。
常用选项

  • -a:显示所有文件系统的磁盘空间使用情况。
  • -h:以人类可读的格式显示磁盘空间使用情况(如 K、M、G 等)。
  • -i:显示文件系统的 inode 使用情况。
  • -k:以 1K 为单位显示磁盘空间使用情况。
  • -m:以 1M 为单位显示磁盘空间使用情况。
  • -T:显示文件系统的类型。
  • -t:仅显示指定类型的文件系统。
  • -x:排除指定类型的文件系统。
    示例
  1. 显示当前工作目录的文件系统磁盘空间使用情况:
    df
    
    输出可能包含文件系统、大小、已用、可用、已用百分比和挂载点等信息。
  2. 以人类可读的格式显示所有文件系统的磁盘空间使用情况:
    df -ah
    
  3. 显示指定目录(如 /home/user)的文件系统磁盘空间使用情况:
    df /home/user
    

总之,df 指令是一个实用的命令行工具,可以帮助你查看磁盘空间的使用情况,以便了解文件系统的状态和管理磁盘空间。

which-用于查找并显示特定命令的可执行文件路径

当你在命令行中输入一个命令时,shell 会根据环境变量 PATH 中列出的目录顺序搜索可执行文件。which 命令可以帮助你找到这个可执行文件的确切位置。
基本用法

which [选项] 命令名

例如,要找出 ls 命令的可执行文件路径,可以运行:

which ls

常用选项

  • -a:显示所有匹配的可执行文件路径,而不仅仅是第一个找到的。
  • -n:显示匹配的可执行文件的完整路径的长度(以字符为单位)。
  • -p:与 -n 类似,但显示的是路径名的长度,不包括任何前缀(如 /usr/bin/)。
  • -q:以空字符串形式输出匹配的可执行文件路径。
    示例
  1. 查找 ls 命令的可执行文件路径:
    which ls
    
    输出可能类似于:/bin/ls
  2. 查找所有匹配的 python 命令路径:
    which -a python
    

输出可能包含多个路径,如:/usr/bin/python/usr/local/bin/python
总之,which 指令是一个实用的命令行工具,可以帮助你在系统中找到特定命令的可执行文件路径。这对于调试环境变量设置、查找命令来源或了解系统中的可执行文件位置非常有用。

wc(word count,单词计数)-用于统计文件或文本中字符数、单词数和行数的命令行工具

以下是 wc 命令的基本用法:

wc [选项] <文件>

wc 命令的一些常用选项包括:
``

  • -c:统计字符数(字节数)。
  • -l:统计行数。
  • -w:统计单词数。
  • -m:统计字符数(与 -c 类似,但在多字节编码环境中可能有所不同)。
  • -L:显示最长行的长度。

示例

  1. 统计文件中的字符数、单词数和行数:

    wc file.txt
    

    输出可能类似于:100 file.txt,其中 100 是字符数。

  2. 统计文件中的行数:

    wc -l file.txt
    

    输出可能类似于:10 file.txt,其中 10 是行数。

  3. 统计文件中的单词数:

    wc -w file.txt
    

    输出可能类似于:20 file.txt,其中 20 是单词数。

  4. 同时统计多个文件的字符数、单词数和行数:

    wc file1.txt file2.txt
    

    输出可能类似于:

        100 file1.txt
        150 file2.txt
        250 total
    

补充:

具体分区给文件、目录共享出空间来装东西的技术叫挂载
挂载并不局限于文件和磁盘
管道:把前面指令的处理结果作为参数交给后边处理。影响的是两个不同进程之间的桥梁,所以管道符用来连接
|exec区别
目的:管道符用于连接多个命令,使一个命令的输出成为另一个命令的输入;exec 用于在当前进程中替换一个新的程序映像。
上下文:管道符在 shell 中使用,用于组合多个命令;exec 在编程中使用(如 C 语言),用于在当前进程上下文中启动新程序。
资源管理:管道符创建的是独立的进程,它们有各自的资源和地址空间;exec 替换当前进程的映像,新程序将接管进程资源。
并发性:管道符通常用于实现并行处理,因为每个命令都在单独的进程中运行;exec 用于在当前进程中执行新程序,不会创建新进程。

完整的任务分为三个步骤来的,标准输入,执行,标准输出。
""表示以字符串的形式,以及一个整体
\在find里的结尾表示转义符,使得后边的;不具备特殊含义

标准输入(stdin):标准输入是程序接收输入数据的默认来源。在大多数情况下,标准输入与键盘输入关联。当你从键盘输入数据时,数据会通过标准输入流传递给程序。标准输入的文件描述符是 0。
执行:
标准输出(stdout):标准输出是程序发送输出数据的默认目标。在大多数情况下,标准输出与屏幕(终端)关联。当程序向标准输出写入数据时,数据会显示在屏幕上。标准输出的文件描述符是 1。
标准错误(Standard Error,简称 stderr):它是程序发送错误信息的独立通道。标准错误与标准输出分开,允许错误信息即使在标准输出被重定向时也能显示在屏幕上。标准错误的文件描述符是 2。

进程:进程是计算机中的一个程序实例,它表示正在运行的程序的当前状态
线程:线程是进程中的一个独立执行单元。一个进程可以包含多个线程,这些线程共享进程的资源(如内存、文件句柄等),但每个线程有自己的执行堆栈和局部变量。线程允许在同一进程中并行执行多个任务,从而提高程序的运行效率。
结束任务是杀死进程。
通常来说,一个程序只有一个主进程(master进程),可以有多个子进程和线程,进程之间的资源是不共享的。(ps:进程是怎么创建出来的:主要是以fork方式派生出来的。中间主要消耗的资源是CPU资源。)
进程之间可以通讯,可以通过管道符的方式,即将前面的进程的标准输出作为标准输入然后执行,最终进行标准输出打印在终端上

ctime (Change Time):这是文件内容最后一次被更改的时间。这包括文件的创建、编辑或重命名等操作。注意,某些操作系统可能将 ctime 用于其他目的,例如记录元数据更改的时间。
mtime (Modification Time):这是文件内容最后一次被修改的时间。这通常是指文件内容被写入的时间,但不包括文件的创建时间。在许多情况下,mtime 和 ctime 可能是相同的,尤其是当文件创建后只被修改过一次时。
atime (Access Time):这是文件最后一次被访问的时间。这包括读取文件、执行文件(如果是可执行的)或对其进行其他形式的数据访问操作。

  • 37
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值