《小菜狗 Linux 操作系统快速入门笔记》目录:
《小菜狗 Linux 操作系统快速入门笔记》(01.0)文章导航目录【实时更新】
Linux 系统中常用处理目录的命令:
ls
:列出路径下的文件与目录;tree
:以树状图显示路径下的文件夹及文件;cd
:切换目录;mkdir
:创建一个新的目录;rmdir
:删除一个空的目录;touch
:创建一个新的文件cp
:复制文件或目录;rm
:移除文件或目录;mv
:移动文件与目录,或修改文件与目录的名称;pwd
:显示目前的目录;which
:查看命令的可执行文件所在路径;你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp
。
在 Linux 系统当中, ls 命令可能是最常被运行的。
【语法】
ls [-aAdfFhilnrRSt] 文件名称或目录名称
【常用参数】
-a 或 --all
:全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来;【常用】-l
:以长格式(详细信息)列出文件,包含文件的属性与权限等数据;【常用】-d 或 --directory
:仅列出目录本身,而不是列出目录内的文件数据;-R 或 --recursive
:若列出对象为路径且目录下有文件,则将所有文件依序列出;【常用】-t
:按照最后修改时间顺序列出文件,由旧到新;【常用】-h 或 --human-readable
:以人类可读的格式显示文件大小(K、M、G等);【常用】-A 或 --almost-all
:显示除 . 和 … 外的所有文件(包括隐藏文件);-r 或 --reverse
:反向排序(配合 -t、-S 等使用);-S
:按文件大小排序(大文件优先);-F 或 --classify
:在文件名后附加标识符(如 / 表示目录,* 表示可执行文件);-i 或 --inode
:显示文件的 inode 编号;-n 或 --numeric-uid-gid
:以数字形式显示 UID 和 GID(替代用户名和组名);-1
:每行只显示一个文件(默认在终端宽度不足时自动启用);-m
:以逗号分隔的列表形式显示文件;-Q 或 --quote-name
:用引号括住文件名(适用于含空格的文件名);--group-directories-first
:先显示目录,后显示文件;--time-style=<格式>
:自定义时间显示格式(如 +%Y-%m-%d);--color
:彩色输出(通常默认启用,–color=auto);--help
在标准输出上显示帮助信息;--version
在标准输出上输出版本信息并退出。【举例】
[root@xiaocaigou ~]# ls /
bin dev lib media net root srv upload www
boot etc lib64 misc opt sbin sys usr
home lost+found mnt proc selinux tmp var
[root@xiaocaigou ~]# ls -la
[root@xiaocaigou ~]# ls -lShr
[root@xiaocaigou ~]# ls -lhR /var/log
[root@xiaocaigou ~]# ls -ld /etc
[root@xiaocaigou ~]# ls -ltr
【进阶用法】
[root@xiaocaigou ~]# ls "my file.txt" # 列出文件名为"my file.txt"的文件
[root@xiaocaigou ~]# ls my\ file.txt # 列出文件名为"my file.txt"的文件
[root@xiaocaigou ~]# ls -- -filename # 列出文件名为"-filename"的文件
ls *.txt # 列出所有扩展名为.txt的文件
ls file?.txt # 列出文件名为file?.txt的文件,其中?表示任意一个字符
ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件
如列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面:
ls -ltr s*
将某路径下文件夹及文件以树状图展示,比 ls 命令
直观!
【语法】
tree
【常用参数】
-a
:显示所有文件和目录;-A
:使用ASNI绘图字符显示树状图而非以ASCII字符组合;-d
:只显示目录;-D
:列出文件或目录的更改时间;-f
:在每个文件或目录之前,显示完整的相对路径名称;-L
:后接数字,显示到第几级子目录;-s
:列出文件或目录大小;-t
:用文件和目录的更改时间排序。【举例】
以树状图列出 /etc/kernel
目录结构:
![[Pasted image 20250530152118.png]]
cd
是英语 change directory
的缩写,用来切换工作目录的命令。
另外:~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, … 则表示目前目录位置的上一层目录。
【语法】
cd [相对路径或绝对路径]
【注意事项】
home
目录下,输入 cd /ho
后,单次 tab
键会自动补全路径!cd /ho
后,两次 tab
键会列出所有可能的目录列表!cd 空格
或者cd ~
表示返回用户主目录;cd ..
表示返回上一级目录(返回上两级则是 cd ../..
表示返回上两级)!【使用指导】
cd / :跳转到根目录
cd ~ :跳转到家目录
cd :不添加任何参数,也是回到家目录
cd .. :跳转到上级目录
cd ./home :跳转到当前目录的home目录下
cd /home/lion :跳转到根目录下的home目录下的lion目录
【举例】
[root@xiaocaigou /]# cd home
[root@xiaocaigou home]# mkdir kuangstudy
[root@xiaocaigou home]# cd kuangstudy
[root@xiaocaigou kuangstudy]# cd ..
[root@xiaocaigou kuangstudy]# cd /
cd 空格
或者cd ~
表示回到自己的家目录,亦即是 /root 这个目录[root@xiaocaigou kuangstudy]# cd ~
cd ../..
表示返回上两级[root@xiaocaigou kuangstudy]# cd ../..
【语法】
mkdir [-mp] 目录名称
【常用参数】
umask
的脸色~]【举例】
[root@xiaocaigou /]# cd /home
[root@xiaocaigou home]# mkdir test
[root@xiaocaigou home]# mkdir test1/test2/test3/test4
mkdir: cannot create directory ‘test1/test2/test3/test4’:
No such file or directory
说明 mkdir 没办法直接创建多重目录啊!
加了这个 -p 的选项,可以自行帮你创建多层目录!
[root@xiaocaigou home]# mkdir -p test1/test2/test3/test4
[root@xiaocaigou home]# mkdir -m 711 test2
[root@xiaocaigou home]# ls -l
drwxr-xr-x 2 root root 4096 Mar 12 21:55 test
drwxr-xr-x 3 root root 4096 Mar 12 21:56 test1
drwx--x--x 2 root root 4096 Mar 12 21:58 test2
【语法】
rmdir [-p] 目录名称
【常用参数】
-p
:连同上一级『空的』目录也一起删除;【使用指导】
这个 rmdir 命令仅能删除空的目录,你可以使用 rm 命令来删除非空目录,后面我们会讲!
【举例】
[root@xiaocaigou home]# ls -l
drwxr-xr-x 2 root root 4096 Mar 12 21:55 test
drwxr-xr-x 3 root root 4096 Mar 12 21:56 test1
drwx--x--x 2 root root 4096 Mar 12 21:58 test2
[root@xiaocaigou home]# rmdir test
[root@xiaocaigou home]# rmdir test1
rmdir: failed to remove ‘test1’: Directory not empty
[root@xiaocaigou home]# rmdir -p test1/test2/test3/test4
touch 命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
【语法】
touch [-acfm] 文件名称或目录名称…
【常用参数】
-a
:改变档案的读取时间记录;-m
:改变档案的修改时间记录;-c
:假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样;-f
:不使用,是为了与其他 unix 系统的相容性而保留;-r
:使用参考档的时间记录,与 --file 的效果一样;-d
:设定时间与日期,可以使用各种不同的格式;-t
:设定档案的时间记录,格式与 date 指令相同;--no-create
:不会建立新档案;--help
:列出指令格式;--version
:列出版本讯息。【使用指导】
创建新的文件(而不是文件夹)!
【举例】
[root@xiaocaigou home]# touch file
(1)使用 ls 命令查看 testfile 文件的属性
#原来文件的修改时间为16:09
[root@xiaocaigou home]# ls -l testfile
-rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile
(2)执行指令"touch"修改文件属性
#修改文件时间属性为当前系统时间
[root@xiaocaigou home]# touch testfile
(3)再次查看该文件的时间属性
#查看文件的时间属性,修改后文件的时间属性为当前系统时间
[root@xiaocaigou home]# ls -l testfile
-rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile
Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。
通过 cp 命令,用户可以将文件或目录从一个位置复制到另一个位置,同时可以选择保留原文件的属性(如权限、时间戳等)。
【语法】
cp [-adfilprsu] 来源(source) 目标(destination)
【常用参数】
-a
:相当于 -pdr 的意思,至于 pdr 请参考下列说明;-p
:连同文件的属性一起复制过去,而非使用默认属性;-d
:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;-r
:递归持续复制,用于目录的复制行为;【常用】-f
:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;【常用】-i
:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行【常用】-l
:进行硬式连结(hard link)的连结档创建,而非复制文件本身。-s
:复制成为符号连结档 (symbolic link),亦即『捷径』文件;-u
:若 destination 比 source 旧才升级 destination !【使用指导】
【cp file file_copy】:file 是目标文件,file_copy 是拷贝出来的文件;
【ccp file path】:把 file 文件拷贝到 path 目录下,并且文件名依然为 file;
【ccp file path/file_copy 】:把 file 文件拷贝到 path 目录下,文件名为 file_copy;
【ccp *.txt folder】:把当前目录下所有 txt 文件拷贝到 folder 目录下;
【注意事项】
cp
会将源文件或目录复制到该目录中。cp
会将源文件复制并重命名为目标文件名。-r
或 -R
选项,否则会报错。cp
会覆盖它(除非使用 -i
选项)。【举例】
[root@xiaocaigou home]# cp file.txt /path/to/destination/
[root@xiaocaigou home]# cp file.txt /path/to/destination/newfile.txt
[root@xiaocaigou home]# cp -r /path/to/source_dir /path/to/destination/
[root@xiaocaigou home]# cp -i file.txt /path/to/destination/
如:
# n不覆盖,y为覆盖
[root@xiaocaigou home]# cp -i /root/install.sh /home
cp: overwrite ‘/home/install.sh’? y
[root@xiaocaigou home]# cp -p file.txt /path/to/destination/
[root@xiaocaigou home]# cp -u file.txt /path/to/destination/
[root@xiaocaigou home]# cp -v file.txt /path/to/destination/
【进阶用法】
[root@xiaocaigou home]# cp -l file.txt /path/to/destination/ # 创建硬链接
[root@xiaocaigou home]# cp -s file.txt /path/to/destination/ # 创建符号链接
[root@xiaocaigou home]# cp file1.txt file2.txt /path/to/destination/
[root@xiaocaigou home]# cp *.txt /path/to/destination/
[root@xiaocaigou home]# find /path/to/source -name "*.log" -exec cp {} /path/to/destination/ \;
用户可以用 rm 命令删除不需要的文件。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。
删除文件和目录,由于 Linux 下没有回收站,一旦删除非常难恢复,因此需要谨慎操作!!
【语法】
rm [-rfi] 文件或目录
【常用参数】
-f
:就是 force 的意思,忽略不存在的文件,不会出现警告信息;-i
:互动模式,在删除前会询问使用者是否动作;-r
:用于目录的删除!-d
:删除目录;-v
:详细显示进行的步骤;--help
:显示此帮助信息并离开--version
:显示版本信息并离开【举例】
[root@xiaocaigou home]# rm new_file
[root@xiaocaigou home]# rm -rf new_file
[root@xiaocaigou home]# rm f1 f2 f3
[root@xiaocaigou home]# rm -- -foo
或者
[root@xiaocaigou home]# rm ./-foo
【整体演示】
[root@xiaocaigou home]# rm test.txt
rm:是否删除 一般文件 "test.txt"? y
[root@xiaocaigou home]# rm homework
rm: 无法删除目录"homework": 是一个目录
[root@xiaocaigou home]# rm -r homework
rm:是否删除 目录 "homework"? y
mv 命令
不仅仅可以移动文件与目录
,还可以修改文件与目录的名称`!
【语法】
mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory
【常用参数】
-f
:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;-i
:若目标文件 (destination) 已经存在时,就会询问是否覆盖!-u
:若目标文件已经存在,且 source 比较新,才会升级 (update);-n
: 不要覆盖任何已存在的文件或目录。【使用指导】
mv file path --> 将 file 文件移动到 path 目录下;
mv new_folder path --> 将 new_folder 文件夹移动到 path 目录下;
mv *.txt folder --> 把当前目录下所有 txt 文件移动到 folder 目录下;
mv file new_file --> file 文件重命名为 new_file;
【举例】
[root@xiaocaigou home]# mv aaa bbb
[root@xiaocaigou home]# mv info/ logs
[root@xiaocaigou home]# mv /usr/runoob/* .
【整体演示】
# 复制一个文件到当前目录
[root@xiaocaigou home]# cp /root/install.sh /home
# 创建一个文件夹 test
[root@xiaocaigou home]# mkdir test
# 将复制过来的文件移动到我们创建的目录,并查看
[root@xiaocaigou home]# mv install.sh test
[root@xiaocaigou home]# ls
test
[root@xiaocaigou home]# cd test
[root@xiaocaigou test]# ls
install.sh
# 将文件夹重命名,然后再次查看!
[root@xiaocaigou test]# cd ..
[root@xiaocaigou home]# mv test mvtest
[root@xiaocaigou home]# ls
mvtest
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
【语法】
pwd [-P]
【常用参数】
-P
:显示出实际路径,而非使用连接(link) 的路径;【举例】
[root@xiaocaigou ~]# pwd
/root
[root@xiaocaigou /]# cd bin
[root@xiaocaigou bin]# pwd -P
/usr/bin
Linux
下,每一个命令其实都是对应着一个可执行程序,在终端中输入命令,按回车的时候,就是执行了对应命令的程序,which
命令本身对应的程序也存在于Linux
中。
【语法】
which [a] 文件名称...
【举例】
使用指令"which"查看指令"bash"的绝对路径
[root@xiaocaigou ~]# which bash
/bin/bash
每日一更!
公众号、CSDN等博客:小菜狗编程笔记
谢谢点赞关注哈!目前在飞书持续优化更新~
日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!