目录
十四、file:Linux系统中, file 命令用于确定文件的类型或属性。它可以提供有关文件的内容、文件系统类型、文件权限等信息。
六、创建目录命令
1、mkdir:
用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。如果需要创建多级目录,可以使用通配符 * 或多个目录名。还支持使用{}来进行创建多个目录。
基本语法:
mkdir [选项] 目录名
常用选项
-
-p或--parents:递归创建目录,即使上级目录不存在也会自动创建。若project或src目录不存在,会依次创建它们。
[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 1 和 Line 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 :是用于设置命令别名的命令 ,能将长命令或常用命令组合简化,提高操作效率。
语法与使用
-
查看别名
-
输入
alias或alias -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
常见用法
-
备份和恢复磁盘或分区
-
备份磁盘:
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,把备份文件恢复到磁盘。
-
-
创建启动盘:
sudo dd if=path/to/iso of=/dev/sdb bs=4M,将 ISO 文件写入 USB 驱动器(/dev/sdb)制作启动盘。 -
创建空文件:
dd if=/dev/zero of=emptyfile bs=1G count=1,创建 1GB 的空文件emptyfile。 -
克隆磁盘:
sudo dd if=/dev/sda of=/dev/sdb bs=4M,将磁盘/dev/sda克隆到/dev/sdb。 -
擦除磁盘:
sudo dd if=/dev/urandom of=/dev/sda bs=4M,用随机数据擦除磁盘数据。 -
转换文件格式:
dd if=input.ebcdic of=output.ascii conv=ascii,将 EBCDIC 格式文件转换为 ASCII 格式。 -
测试磁盘性能
-
测试读取速度:
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

被折叠的 条评论
为什么被折叠?



