目录
一、查看当前工作目录
pwd
二、切换工作目录
cd
命令 | 描述 |
---|---|
cd /home | 切换到 /home 目录(绝对路径) |
cd ./home | 尝试切换到当前目录下的 home 子目录(相对路径,通常直接写 cd home ) |
cd ~ | 切换到当前用户的家目录 |
cd | 同上,切换到当前用户的家目录(不带参数的 cd 命令) |
cd ~user | 切换到 user 这个用户的家目录(任何用户都可以尝试,但可能由于权限问题而失败) |
cd - | 切换到上一次所在的目录 |
cd .. | 切换到父目录(上一层目录) |
三、列表显示目录内容
ls(常用选项、可结合通配符)[选项】 [文件或目录]
结合通配符
"?":匹配文件名中的一个未知字符
"*":匹配文件名中的任意多个字符
操作 | 功能 | 要执行的对象 |
---|---|---|
-l | 将文件信息属性详细列出,通常直接使用ll (因为设置了别名) | 文件和目录 |
-R | 递归显示,包括子目录中的文件和目录 | 目录 |
-d | 查看目录本身信息,不显示目录下的内容 | 目录 |
-i | 显示inode值 | 文件和目录 |
-h | 以人类可读的方式(例如K、M、G)显示文件大小 一般是ls -lh | 文件和目录 |
-a | 列出所有文件及目录,包括隐藏文件(以. 开头的文件) | 文件和目录 |
-A | 列出所有文件及目录,但不包括. 和.. (当前目录和父目录) | 文件和目录 |
3.1、目录颜色区别
绿色 可执行文件
黄色 块设备文件
红色 压缩包
蓝色 文件夹
天蓝色 连接文件(快捷方式)
3.2、文件标识
d 目录文件 directory
b 块设备文件block
p 管道文件pipe
s 套接字文件 socket
l 符号链接文件link
3.3、通配符扩充
符号 | 效果 |
---|---|
? | 匹配任意一个字符,例如 f?.txt 会匹配 f1.txt 、fa.txt 等,但不匹配 ftxt 或 file.txt |
* | 匹配任意多个字符(包括零个),但不匹配以 . 开头的隐藏文件或目录 |
{1..10} | Bash 的扩展功能,表示一个序列,通常用于循环或通配符扩展,如 echo {1..10} 会输出 1 到 10 |
{a..z} | Bash 的扩展功能,表示从 a 到 z 的小写字母序列 |
{A..Z} | Bash 的扩展功能,表示从 A 到 Z 的大写字母序列 |
[123] | 匹配方括号中列出的任意一个字符,如 file[123].txt 会匹配 file1.txt 、file2.txt 或 file3.txt |
[a-z] | 匹配任何一个小写字母,范围从 a 到 z |
[0-9] | 匹配任何一个数字,范围从 0 到 9 |
\ | 转义符,用于取消特殊字符的特殊含义,或引入某些特殊字符的原始意义,如 \$ 表示 $ 符号本身 |
`[[:lower:]] | 匹配任意一个小写字母,等同于 [a-z] |
`[[:upper:]] | 匹配任意一个大写字母,等同于 [A-Z] |
[^zhou] | 匹配任何不在 zhou 这四个字符中的字符,如 [^zhou]txt 会匹配 atxt 、1txt 等,但不匹配 ztxt 、houtxt |
`[[:digit:]] | 匹配任意一个数字,等同于 [0-9] |
四、统计目录及文件空间占用情况
-h:显示出每一个文件以及大小,单位是KB,MB,GB
-s:显示文件或整个目录的大小,默认单位是KB,但不会把他们显示出来
du -sh * #生产环境常这样搭配使用统计当前目录下所有文件的大小并显示出来,常用于磁盘水位过高的情况
五、创建新目录mkdir
mkdir /opt/sj #创建目录
注意:父目录必须存在,且文件名和目录名不能一样
但是先创建文件后创建同名文件没有问题
-p:创建一个已有的目录会报错,加-p则不会报错/当父目录不存在时,递归创建
六、创建文件touch
①文件存在:修改文件或者目录的时间属性,包括存取时间和更改时间。
②文件不存在:创建新文件
touch [文件名]
touch [文件名] [文件名]
下面是touch的高级用法
[root@localhost opt]# touch {1,2,3}
[root@localhost opt]# ls
1 2 3
[root@localhost opt]# touch {1,2,3}.txt
[root@localhost opt]# ls
1 1.txt 2 2.txt 3 3.txt
[root@localhost opt]# touch {4..8}.txt
[root@localhost opt]# ls
1 1.txt 2 2.txt 3 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt
如果要删除则rm -rf 1\ 2\ 3
七、给命令设置别名alias
alias #查看系统当前所有可用别名
7.1、临时设置别名
alias ll='ls -lt' #设置别名
unalias 别名命令 删除别名(临时删除)
7.2、永久设置别名
7.2.1、单用户设置
vim /root/.bashrc
7.2.2、全局设置
vim /etc/bashrc
注意: 在定义别名时,等号两边不能有空格,否则shell不能决定您需要做什么。仅在命令中包含空格或特殊字符时才需要引号
- \加命令 原始命令
比如$
设置查看语言的命令
但是加\后
补充:
别名>内部>hash>外部命令(先查找别名在查找内部命令,缓存最后外部)
八、创建链接文件
8.1、软链接、硬链接概念
ln 命令用于为文件或目录建立链接文件(类似于 Windows 系统中的快捷方式),提高用户定位文件或定位目录的效率。
链接文件包括软链接和硬链接两种类型,其中软链接又称为符号链接。
无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同
8.2、软硬链接用法
ln -s 创建软链接,相当于创建一个快捷方式(常用)
ln 创建硬链接,相当于复制了一份副本
8.3、软硬链接区别
- 硬链接不能跨分区建立连接 无法对文件夹创建
- 删除硬件连接可以继续访问硬链接
- 软连接可以跨设备 可以支持文件夹
- 软连接删除源文件不能访问
- 软链接建立时原始文件可以不存在
- 如果删除源文件之后又重新建立源文件,那么软链接照样可以用
- 软链接文件的大小就是软链接文件本身的文件名字符长度
- 可以给目录做软链接,为了防止目录被删
8.4、其他说明
- 硬链接:一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)
- 软链接:
除了硬链接以外,还有一种特殊情况。文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。有自己的inode号,就是相当于快捷方式,自己也是一个文件,指向内容是其他文件。
注:相对路径与绝对路径 建议绝对路径
案列
[root@kgc home]# echo "this is kgc" > demo.txt
[root@kgc home]# ln -s demo.txt test.txt
删除demo.txt 验证
[root@kgc home]# echo "this is kgc" > demo1.txt
[root@kgc home]# echo "this is kgc2" > demo2.txt
[root@kgc home]# ln demo1.txt test2.txt
root@localhost ~]# mkdir /bin/wx
[root@localhost ~]# ln -s /bin/bzip2 /bin/wx/
[root@localhost ~]# ls -lh /bin/wx/bzip2
lrwxrwxrwx 1 root root 10 9 月 16 14:05 /
九、复制文件或目录cp
-p:连属性一起复制
-a:保留权限,复制软链接本身,递归复制
-r:递归复制
-f:强制复制,不与用户交互
-i:提醒覆盖
-d:
选项使cp
命令同时保留链接属性
-v
是这个命令的一个选项,表示“verbose”(详细模式)。
-a
相当于将原数据原封不动地拷贝过来,不改变里面的任何信息,它的作用等同于-dpr
选项的组合
-p
选项用于复制时保持源文件的权限、属主及时间标记等属性不变
-d
选项用于保留文件符号链接属性,但是-r也可以,-a也可以,所以基本上用不到。
注意:cp也会覆盖!!要小心
-r递归可以复制文件夹
cp的高级用法:cp -v file1.txt{,.bak}常用于备份
扩展
默认cp复制会把软连接复制成源文件,不是软连接了,但是其他地方说是软连接本身
实验
查看inode发现是三个独立的文件
所以需要-r或者-d或者-a,才可以原本的复制。
注意点
需要注意的是的包含关系(其他命令也一样)
十、删除文件或目录rm
(谨慎使用)
-i:删除文件或目录时提醒用户确认
-r:删除目录时必须使用此选项,表示递归删除整个目录树。
-f:删除文件或目录时不进行提醒,而直接强制删除
常见用法:rm -rf ./* (注意是./不是/)
删除空目录:rmdir
注意是空目录
在/root/.bashrc 默认是别名alias是
如果需要不提示可以用\rm -r bbb
十一、移动文件或目录/改名mv
用法:
移动 mv [文件名] [目录名]
改名 mv [文件名] [文件名]
-i:若指定目录已有同名文件,则先询问是否覆盖旧文件
-f:在 mv 操作要覆盖某已有的目标文件时不给任何指示(是文件不是目录覆盖)
当在同一目录下用mv就是改名,如果是跨目录使用mv的话就是移动,相当于移动剪切的操作