文章目录
- Linux中最常用的目录导航命令
- 探索未知世界的cd
- 进入刚才的目录
- 快速返回家目录
- 进入某用户的家目录
- 结合CDPATH的妙用
- !$
- 用shopt –s cdspell自动纠正cd命令的目录名输入错误
- 最常用的且没有之一的 ls
- 命令格式
- 不加任何参数
- 使用-l显示更多细节
- 使用-t按照时间排序
- 使用-r按照时间逆序
- 使用-S根据文件大小排序
- 查看目录命令pwd
- 实例展示
- 逻辑与物理路径
- Linux tree命令
- 实例 默认显示
- 只显示目录
- 显示具体的修改时间
- 更多信息
Linux中最常用的目录导航命令
仅个人想法,会持续不间断更新和改进。
在Linux世界中,为了更加高效地浏览和定位文件,需要一些常用的目录导航命令。
探索未知世界的cd
cd
命令应该是除了 ls
命令外用的最多的命令了。除非你大门不出二门不迈,做个大家闺秀。
cd
命令的含义为
cd - change directory
可以让我们访问不同的文件夹。
最简单的用法为:
$ cd /the/path/you/want/to/go/
接下来说一些技巧,让效率加倍。
让cd命令对参数大小写不敏感
如果你需要同时显示大写和小写的目录名(即便是你给的参数只是小写的),执行下面的bind
命令,此时就可以避免Linux
和linux
的尴尬。
$ bind "set completion-ignore-case on"
进入刚才的目录
想要进入刚才进入的地方(目测没有很多人再用,但是真的很好用)运行:
$ cd –
快速返回家目录
需要快速地回到你的家目录,输入cd
即可,这里其实不用一级一级的进入
$ cd
进入某用户的家目录
这个需要你有root权限
cd ~username
进入username的家目录。
这些是一些比较基础和入门的,还有一些高级一点的,这些技巧可能用的比较少,不过也是很有帮助的。
结合CDPATH的妙用
变量CDPATH定义了目录的搜索路径:
$ export CDPATH=/the/path/you/add/:/another/path/
现在,不用输入cd /the/path/you/add/hello/
这样长了,我可以直接输入下面的命令进入 /the/path/you/add/hello/
:
$ cd html
!$
这个命令目测,用的人不多,其实比较有用,且有效。
$ cd !$
表明的意思是将上一个命令的参数作为cd的参数来使用。
用shopt –s cdspell自动纠正cd命令的目录名输入错误
使用shopt -s cdspell
可以自动修正cd
时拼写错误的目录名。
如果你在输入时经常犯些错误,这个命令是很有用的。详见以下示例:
# cd /etc/mall
-bash: cd: /etc/mall: No such file or directory
# shopt -s cdspell
# cd /etc/mall
# pwd
/etc/mail
注: 当我错误的把mail敲成了mall,用这个命令mall就自动被换成了mail
最常用的且没有之一的 ls
如果linux
命令来个排名,ls
命令应该是最常用的命令,除非你像黄蓉的母亲,有过目不忘的本领,惹得黄药师抱憾终身。
ls
命令是list
的缩写,通过ls命令,我们可以查看目录的内容,确定各种重要文件和目录的属性。
命令格式
ls [参数] [路径]
不加任何参数
如果不加任何参数,默认列出当前目录的内容。
$ ls /etc/sysconfig/network-scripts
ifcfg-em1
ifcfg-em2
ifcfg-em3
ifcfg-em4
....
使用-l显示更多细节
-l 就是使用long listing format长格式,来显示更多的内容信息。
$ ls -l /etc/sysconfig/network-scripts
total 264
-rw-r--r--. 1 root root 341 Nov 30 10:56 ifcfg-em1
-rw-r--r--. 1 root root 294 May 13 2016 ifcfg-em2
-rw-r--r--. 1 root root 272 May 10 2016 ifcfg-em3
-rw-r--r--. 1 root root 272 May 10 2016 ifcfg-em4
......
使用-t按照时间排序
如果希望看到最近创建的文件,就需要用到-t参数了。
$ ls -lt /etc/sysconfig/network-scripts/
total 264
-rw-r--r--. 1 root root 341 Nov 30 10:56 ifcfg-em1
-rw-r--r--. 1 root root 294 May 13 2016 ifcfg-em2
-rw-r--r--. 1 root root 272 May 10 2016 ifcfg-em4
-rw-r--r--. 1 root root 272 May 10 2016 ifcfg-em3
...
使用-r按照时间逆序
如果希望删除很早以前的文件,看到最早创建的文件,就需要用到-r参数了。
$ ls -ltr /etc/sysconfig/network-scripts/
total 264
...
-rw-r--r--. 1 root root 272 May 10 2016 ifcfg-em3
-rw-r--r--. 1 root root 272 May 10 2016 ifcfg-em4
-rw-r--r--. 1 root root 294 May 13 2016 ifcfg-em2
-rw-r--r--. 1 root root 341 Nov 30 10:56 ifcfg-em1
使用-S根据文件大小排序
$ ls -lS /etc/sysconfig/network-scripts/
total 264
...
-rw-r--r--. 1 root root 341 Nov 30 10:56 ifcfg-em1
-rw-r--r--. 1 root root 294 May 13 2016 ifcfg-em2
-rw-r--r--. 1 root root 272 May 10 2016 ifcfg-em3
-rw-r--r--. 1 root root 272 May 10 2016 ifcfg-em4
查看目录命令pwd
pwd
命令的作用是查看当前目录,没有参数,输入后回车即可显示当前绝对路径。
官方定义为:
pwd - print name of current/working directory
所以pwd
是Print Working Directory第一个字的缩写。
唯二需要了解的参数如下:
-L
,--logical
:打印逻辑路径,与pwd
一致-P
,--physical
:打印物理路径,这里可以从超级链接直达原处
实例展示
此时比如我们进入一个目录,然后在打印出来,如下:
$ cd /etc/sysconfig/network-scripts/
$ pwd
/etc/sysconfig/network-scripts
可以看到pwd将输出完全路径
逻辑与物理路径
比如如下:
$ pwd
/opt/test
$ ls -l
总用量 1
lrwxrwxrwx 1 root root 14 Jan 15 2012 dir -> source/dir
drwxrwxrwx 1 root root 14 Jan 15 2012 source
可以看到此时的路径在/opt/test/里面有两个目录source和dir,其中dir链接到source里面的dir。
接下来对比一下-L和-P的区别。
$ cd dir
$ pwd
/opt/test/dir
$ pwd -L
/opt/test/dir
$ pwd -P
/opt/test/source/dir
从上面的输出可以发现,-P
参数会显示文件最原始的路径;而-L
则是逻辑上的路径。
Linux tree命令
Linux tree
命令以树状图列出目录的内容。
执行tree
指令,它会列出指定目录下的所有文件,包括子目录里的文件。
官方定义为:
tree
- list contents of directories in a tree-like format.
使用方法为:
$ tree [-acdfghilnpqrstuvxACDFQNSUX] [-L level [-R]] [-H baseHREF] [-T title] [-o filename] [--nolinks] [-P pattern] [-I pat‐
tern] [--inodes] [--device] [--noreport] [--dirsfirst] [--version] [--help] [--filelimit #] [--si] [--prune] [--du]
[--timefmt format] [--matchdirs] [--fromfile] [--] [directory ...]
参数比较多,也比较复杂。其中常用的选项为:
-d
显示目录名称而非内容。-D
列出文件或目录的更改时间。
实例 默认显示
默认显示当前目录的信息,比如tree和tree .的含义一样。命令有如下输出结果:
$ tree
.
├── a
├── aa
│ ├── aab
│ ├── aac
│ ├── aad
│ └── aae
├── b
├── bb
│ └── bbb
├── c
├── d
├── e
└── f
2 directories, 11 files
只显示目录
$ tree -d
.
├── aa
└── bb
显示具体的修改时间
$ tree -D
.
├── [Apr 7 22:34] a
├── [Apr 7 22:37] aa
│ ├── [Apr 7 22:35] aab
│ ├── [Apr 7 22:35] aac
│ ├── [Apr 7 22:35] aad
│ └── [Apr 7 22:35] aae
├── [Apr 7 22:34] b
├── [Apr 7 22:39] bb
│ └── [Apr 7 22:39] bbb
├── [Apr 7 22:34] c
├── [Apr 7 22:34] d
├── [Apr 7 22:33] e
└── [Apr 7 22:33] f
2 directories, 11 files
默认情况下tree可能没有安装,可以通过
apt
/yum
install tree来安装。
更多信息
Hi,XDJM们,更多信息欢迎移步我的主页、CSDN或微信公众号letsProgramming.
- 🐱 github
- 🏠 Homepage https://shaoguangleo.github.io
- CSDN CSDN http://blog.csdn.net/shaoguangleo
- 微信公众号:letsProgramming