Linux系统文件与目录管理02

目录

六、创建目录命令

七、文件或目录移动命令

八、文件或目录删除命令

九、别名命名

十、文件属性查看命令

十一、目录结构查看命令

十四、file:Linux系统中, file 命令用于确定文件的类型或属性。它可以提供有关文件的内容、文件系统类型、文件权限等信息。

六、创建目录命令

1、mkdir:

用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。如果需要创建多级目录,可以使用通配符 * 或多个目录名。还支持使用{}来进行创建多个目录。

基本语法:

mkdir [选项] 目录名

常用选项

  • -p--parents:递归创建目录,即使上级目录不存在也会自动创建。若 projectsrc 目录不存在,会依次创建它们。

[root@bogon ~]# mkdir -p dir1 dir2
[root@bogon ~]# ls
2.txt  anaconda-ks.cfg       newfile  图片  桌面
3.txt  dir1                  公共     文档
4.txt  dir2                  模板     下载
aa     initial-setup-ks.cfg  视频     音乐

注:如果不加递归创建,且没有目录dir1时,在输入mkdir -p dir1 dir2则会报错。

1.1终端不显示报错内容:(即:转移错误内容到其他文件)

[root@bogon ~]# mkdire dir4/dir5
bash: mkdire: 未找到命令...
相似命令是: 'mkdir'
[root@bogon ~]# mkdire dir4/dir5 2> 1txt
[root@bogon ~]# cat 1txt
相似命令是: 'mkdir'

1.2终端显示报错(即:转移正确内容到其他文件)

[root@bogon ~]# cat 2.txt 1txt 1>1.txt
[root@bogon ~]# cat 1.txt
1234
23
1
22
bash: mkdire: 未找到命令...
相似命令是: 'mkdir'
[root@bogon ~]# cat 1.txt 22.txt
1234
23
1
22
bash: mkdire: 未找到命令...
相似命令是: 'mkdir'
cat: 22.txt: 没有那个文件或目录
[root@bogon ~]# cat 1.txt 22.txt 1> 3.txt
cat: 22.txt: 没有那个文件或目录
[root@bogon ~]# cat 3.txt
1234
23
1
22
bash: mkdire: 未找到命令...
相似命令是: 'mkdir'

1.3将正确和错误全部输出在3.txt

[root@bogon ~]# cat 2.txt 1txt &>4.txt
[root@bogon ~]# cat4.txt
bash: cat4.txt: 未找到命令...
[root@bogon ~]# cat 4.txt
1234
23
1
22
bash: mkdire: 未找到命令...
相似命令是: 'mkdir'

注:黑洞文件:/dev/unll

2、stat:用于显示文件或文件系统的详细状态信息。比ls更详细。

[root@bogon ~]# stat 1.txt
  文件:"1.txt"
  大小:73              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:100938566   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-05-12 20:00:39.995409471 +0800
最近更改:2025-05-12 20:00:29.670377845 +0800
最近改动:2025-05-12 20:00:29.670377845 +0800
创建时间:-

3、touch:用于创建一个新的空文件或修改现有文件的时间戳。除此之外,echo、cp也能创建文件。

[root@bogon ~]# touch file1
[root@bogon ~]# ls
1txt   4.txt            dir2                  公共  文档
1.txt  aa               file1                 模板  下载
2.txt  anaconda-ks.cfg  initial-setup-ks.cfg  视频  音乐
3.txt  dir1             newfile               图片  桌面

基本语法:

touch [选项] 文件名

核心功能:创建空文件:若指定的文件不存在,touch 会创建一个新的空文件。

4、echo:用于在终端输出指定的文本内容。

基本语法:

echo [选项] [文本内容]

[root@bogon ~]# echo file2 file2 [root@bogon ~]# ls -l 总用量 36 -rw-r--r--. 1 root root 60 5月 12 19:44 1txt -rw-r--r--. 1 root root 73 5月 12 20:00 1.txt -rw-r--r--. 1 root root 13 5月 12 19:18 2.txt -rw-r--r--. 1 root root 73 5月 12 20:03 3.txt -rw-r--r--. 1 root root 73 5月 12 20:16 4.txt drwxr-xr-x. 3 root root 16 5月 10 19:51 aa -rw-------. 1 root root 1700 5月 8 00:04 anaconda-ks.cfg

选项:

选项

-n在输出内容后不换行。

[root@bogon ~]# echo -2
-2

-e :常用的转义字符如 \n(换行);\r:回车;\t:水平制表符(tab)等。例如 echo -e "Line 1\nLine 2",会输出两行内容,Line 1Line 2 分别在不同行

[root@bogon ~]# echo -e "1\t2"
1       2
[root@bogon ~]# echo -e "1\n2"
1
2
[root@bogon ~]# echo -e "1\r2"
2
[root@bogon ~]# echo -e "1\v2"
1
 2

5、cp:用来复制文件和目录的命令

基本语法:

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

常用选项

总:

-i(交互式)

如果在目标位置存在一个文件且该文件会 被覆盖时,cp命令会询问用户是否继续。

-n(不覆盖)

在目标位置存在文件时,不会覆盖该文件,即不会进行复制操作。

r或-R(递归)

用于复制目录以及目录内所有子目录和文件。

-p(保留属性)

复制文件的同时保留源文件的属性如权限和时间戳。

分:选项

-r或-R(递归) :用于复制目录以及目录内所有子目录和文件。

[root@bogon ~]# cp -r dir1 dir2
[root@bogon ~]# ls
1txt   4.txt            dir2                  公共  文档
1.txt  aa               file1                 模板  下载
2.txt  anaconda-ks.cfg  initial-setup-ks.cfg  视频  音乐
3.txt  dir1             newfile               图片  桌面

注:当复制目录时一定使用递归将目录和文件一起复制,否则报错。

-p(保留权限):复制文件的同时保留源文件的属性如权限和时间戳。

[root@bogon ~]# cp -r /home/linux/ ./
[root@bogon ~]# ls 
1txt   aa               initial-setup-ks.cfg  视频  桌面
1.txt  anaconda-ks.cfg  linux                 图片
2.txt  dir1             newfile               文档
3.txt  dir2             公共                  下载
4.txt  file1            模板                  音乐

-n(不覆盖) :在目标位置存在文件时,不会覆盖该文件,即不会进行复制操作

-i(交互式) :如果在目标位置存在一个文件且该文件会 被覆盖时,cp命令会询问用户是否继续。(系统中别名里有i,查别名:alias)

cp -i file.txt destination/
​
如果 `destination` 目录中已经存在 `file.txt`,终端会显示类似下面的提示:输入no否定
​
cp:overwrite'destination/file.txt'?

七、文件或目录移动命令

1、mv:用来移动文件或目录,或者重命名文件和目录的命令

基本语法:

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

选项

-i(交互式) :如果移动或重命名目标位置已存在且会覆盖时,mv 命令会询问用户是否继续。

-n(不覆盖) :在目标位置存在文件时,不会覆盖该文件,即不会进行移动或重命名操作。

分:

-i(交互式) :如果移动或重命名目标位置已存在且会覆盖时,mv 命令会询问用户是否继续。

[root@bogon ~]#  mv 1txt 2.txt
mv:是否覆盖"2.txt"? 

重命名

root@bogon ~]# mv 1txt 6txt
[root@bogon ~]# ls
1.txt  aa               initial-setup-ks.cfg  模板  音乐
2.txt  anaconda-ks.cfg  linux                 视频  桌面
3.txt  dir1             newfile               图片
4.txt  dir2             opt                   文档
6txt   file1            公共                  下载

八、文件或目录删除命令

1、rm:用于删除文件的命令。它的全称是 "remove",意思是 "删除"。

基本语法

rm [选项] 文件或目录

选项

-f 或 --force :强制删除,即使文件正在被使用,或者存在打开的文件描述符。

[root@bogon ~]# rm -rf dir1
[root@bogon ~]# 

-r 或 --recursive :递归地删除目录及其内容。

[root@bogon ~]# rm -r dir1
rm:是否进入目录"dir1"? 

九、别名命名

1、alias :是用于设置命令别名的命令 ,能将长命令或常用命令组合简化,提高操作效率。

语法与使用

  • 查看别名

    • 输入 aliasalias -p ,可列出当前所有已设置的别名。如系统默认可能有 alias ls='ls --color=auto' ,表示输入 ls 实际执行的是带颜色显示的 ls 命令。

  • 设置别名

    语法为:

    alias 别名='原命令'

    等号两边不能有空格 ,若原命令含空格,需用单引号括起来。比如:

    • alias la='ls -a' ,设置后输入 la 等同于执行 ls -a 命令,显示包括隐藏文件在内的目录内容。

    • alias cls='clear' ,之后输入 cls 就能快速清屏,和执行 clear 效果一样。

    • 还可组合多个命令,像 alias mycmd='cd /usr; ls; cd -' ,执行 mycmd 会先进入 /usr 目录,列出内容,再返回原目录。

  • 删除别名:使用 unalias 命令,语法是 unalias 别名 。例如 unalias la ,就删除了 la 这个别名设置。

生效范围

  • 临时生效:直接用 alias 设置的别名,仅在当前登录会话有效 ,会话结束(如关闭终端),别名就失效。

  • 永久生效:要让别名长期有效,需将alias命令写入配置文件:

    • 针对所有用户:修改 /etc/bashrc 文件 ,在文件末尾添加 alias 命令,如 alias myalias='mycommand' 。修改后需执行 source /etc/bashrc 让配置立即生效。

    • 针对特定用户:普通用户修改 ~/.bashrc (如 /home/username/.bashrc ) ,root 用户修改 /root/.bashrc ,添加 alias 命令后,执行 source ~/.bashrc 使其生效。下次登录时,这些别名就会自动加载。

注意事项

  • 别名定义不能与系统已有命令完全相同,否则可能导致原命令无法正常使用。若定义了和系统命令同名的别名,可通过 \原命令 (如 \ls ) 或 command 原命令 (如 command ls ) 方式绕过别名,执行真正的系统命令。

  • 别名设置时,若原命令有特殊字符(如引号等),要注意正确转义或使用合适的引号包裹,保证命令逻辑正确。

    [root@bogon ~]# alias cp='cp -i'
    [root@bogon ~]# alias
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'

    十、文件属性查看命令

stat :用于显示关于文件的状态信息。stat 命令提供比 ls -l 更详细的文件信息,包括文件的大小、创建时间、最后访问时间、最后修改时间等。

基本语法

stat [选项] 文件或目录

选项

--all 或 -a :显示所有可用的信息。

[root@bogon ~]# stat 2.txt
  文件:"2.txt"
  大小:13              块:8          IO 块:4096   普通文件
设备:fd00h/64768d      Inode:100938540   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2025-05-12 19:18:27.930167863 +0800
最近更改:2025-05-12 19:18:06.454107567 +0800
最近改动:2025-05-12 19:18:06.454107567 +0800
创建时间:-

十一、目录结构查看命令

1、tree:是一个用于以树状结构显示目录及其内容的实用程序,常用于显示文件系统的层次结构。tree 命令会递归地列出指定目录下的所有子目录和文件,并以树的形式展示它们之间的关系。

基本语法

tree [选项] [目录]
[root@bogon ~]# tree
.
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
├── 6txt
├── aa
│   └── bb
│       └── cc

2、dd:用于复制文件和转换数据。它用于将源文件复制到目标文件,或者用于在目标文件上进行数据转换。

基本语法:

dd if=输入文件 of=输出文件 [选项]
  • if(input file):指定输入源,如文件、原始设备或磁盘分区,默认是标准输入(stdin)。

  • of(output file):指定输出目标,像文件、磁盘镜像或 USB 驱动器等,默认是标准输出(stdout) 。

  • [选项]:用于控制数据的读取、写入和处理方式。

    选项

    if=filename :指定输入文件。

    of=filename :指定输出文件。

    bs=size(大小如1k) :指定块大小。

    count=num :指定要复制的块数。

    [root@bogon ~]# dd if=2.txt of=222.txt
    记录了0+1 的读入
    记录了0+1 的写出
    13字节(13 B)已复制,0.000370618 秒,35.1 kB/秒
    [root@bogon ~]# cat 222.txt
    1234
    23
    1
    22
    [root@bogon ~]# dd if=/etc/passwd of=222.txt bs=1k
    记录了2+1 的读入
    记录了2+1 的写出
    2262字节(2.3 kB)已复制,0.000466608 秒,4.8 MB/秒
    [root@bogon ~]# cat 222.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nolog

常见用法

  1. 备份和恢复磁盘或分区

    • 备份磁盘sudo dd if=/dev/sda of=backup.img bs=4M ,将 /dev/sda 磁盘内容备份到 backup.img 文件,块大小 4M。

    • 恢复磁盘sudo dd if=backup.img of=/dev/sda bs=4M ,把备份文件恢复到磁盘。

  2. 创建启动盘sudo dd if=path/to/iso of=/dev/sdb bs=4M ,将 ISO 文件写入 USB 驱动器(/dev/sdb )制作启动盘。

  3. 创建空文件dd if=/dev/zero of=emptyfile bs=1G count=1 ,创建 1GB 的空文件 emptyfile

  4. 克隆磁盘sudo dd if=/dev/sda of=/dev/sdb bs=4M ,将磁盘 /dev/sda 克隆到 /dev/sdb

  5. 擦除磁盘sudo dd if=/dev/urandom of=/dev/sda bs=4M ,用随机数据擦除磁盘数据。

  6. 转换文件格式dd if=input.ebcdic of=output.ascii conv=ascii ,将 EBCDIC 格式文件转换为 ASCII 格式。

  7. 测试磁盘性能

    • 测试读取速度dd if=/dev/sda of=/dev/null bs=4M

    • 测试写入速度dd if=/dev/zero of=testfile bs=4M count=1024

注意事项

  • 谨慎操作dd 命令强大,操作不可逆,使用不当易致数据丢失,操作前务必备份重要数据。

  • 确认设备名称:操作磁盘和分区时,要准确确认设备名称(如 /dev/sda 等),防止误操作。

  • 合理设置块大小:根据实际情况设置 bs 参数,提升性能。

  • 权限问题:涉及磁盘和分区操作,一般需超级用户权限,可用 sudo 执行 。

十三、连接命令:ln 命令用于在文件系统中创建链接(links)。

基本语法

ln [选项] 源文件 目标链接

1、链接分为两种类型:硬链接(hard link)和符号链接(symboliclink)。

2、硬链接(hard link):(目录不允许创建硬链接)如:.txt结尾的

2.1、硬链接是文件系统中的一个目录条目,它指向另一个文件的数据块。2.2、硬链接和原始文件共享同一个 inode,因此对文件的修改会影响到所有硬链接。

2.3、硬链接不能跨越文件系统边界。

3、符号(软)链接(symbolic link):

3.1符号链接是一个特殊的文件,其内容是指向另一个文件的路径。

3.2、符号链接和原始文件不共享 inode,因此删除原始文件后,符号链接仍然存在,但无法访问。

3.3、符号链接可以跨越文件系统边界。

符号链接和原始文件不共享 inode,因此删除原始文件后,符号链接仍然存在,但无法访问。

符号链接可以跨越文件系统边界。

十四、file:Linux系统中, file 命令用于确定文件的类型或属性。它可以提供有关文件的内容、文件系统类型、文件权限等信息。

基本语法

file [选项] 文件或目录
[root@bogon ~]# file 3.txt
3.txt: UTF-8 Unicode text

看16进制文件

[root@bogon ~]# file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped
[root@bogon ~]# hexdump /usr/bin/ls
0000000 457f 464c 0102 0001 0000 0000 0000 0000
0000010 0002 003e 0001 0000 4324 0040 0000 0000
0000020 0040 0000 0000 0000 c3e8 0001 0000 0000
0000030 0000 0000 0040 0038 0009 0040 001e 001d
0000040 0006 0000 0005 0000 0040 0000 0000 0000
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值