🪐🪐🪐欢迎来到程序员餐厅💫💫💫
主厨:邪王真眼
主厨的主页:Chef‘s blog
所属专栏:c++大冒险
总有光环在陨落,总有新星在闪烁
这个是我们今天要用到的初始文件结构:
首先提一句,很多指令都是英文单词的缩写(敲代码之余还可以背单词,真不错)
01. ls 指令
ls概括
全称:
list directory contents
功能 :
对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
语法:
- 使用格式:
ls [-选项] [目录或文件]
- 基础功能:
1.不加选项、目录、文件
只是写下“ls”其他都不加,就会输出当前目录下所有目录和文件(蓝色的是目录,白色的是文件)
2.不加选项,加目录名
写下“ls 目录名”其他都不加,就会输出当该目录下所有目录和文件
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls project1
test1 test2 test3 test4
3.不加选项、加文件名
写下“ls 文件名”其他都不加,就会输出该文件名
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls d.txt
d.txt
- 进阶功能:
选项-a
列出目录下的所有文件,包括以 . 开头的隐含文件。
- ls指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls
d.txt project1 project2
- ls -a指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .code.c.swp d.txt .lesshst project1 project2 .viminfo
可以发现,ls -a下的文件多了一堆以"."开头的文件,我们称之为隐藏文件
选项-d(d是指directory)
将目录像文件一样显示,而不是显示其下的文件。
- ls指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls project1
test1 test2 test3 test4
- ls-d指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls -d project1
project1
选项-l
列出该目录下的文件以及子目录的的详细信息
- ls指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls
d.txt project1 project2
- ls-l指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ll
total 8
-rw-rw-r-- 1 qingguo qingguo 0 May 14 21:43 d.txt
drwxrwxr-x 6 qingguo qingguo 4096 May 14 21:25 project1
drwxrwxr-x 2 qingguo qingguo 4096 May 14 21:29 project2
选项-r
对目录反向排序。
- ls指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls
d.txt project1 project2
- ls -r指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls -r
project2 project1 d.txt
选项-s
在 l 文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- ls指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls
d.txt project1 project2
- ls -s指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls -s
total 8
0 d.txt 4 project1 4 project2
选项-R
列出所有子目录下的文件。(递归)
- ls指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls
d.txt project1 project2
- ls -R指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls -R
.:
d.txt project1 project2./project1:
test1 test2 test3 test4./project1/test1:
a.txt b.txt c.txt./project1/test2:./project1/test3:./project1/test4:./project2:
选项-1
一行只输出一个文件。
- ls指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls
d.txt project1 project2
- ls -1指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls -1
d.txt
project1
project2
选项-F
在每个文件名后附上一个字符以说明该文件的类型,
- ls指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls
d.txt project1 project2
- ls -F指令结果
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ ls -F
d.txt project1/ project2/
- 普通文件:没有任何字符
- 目录:以斜杠 / 结尾
- 可执行文件:以星号 * 结尾
- 符号链接:以 @ 符号结尾
- 套接字文件:以等号 = 结尾
- 命名管道(FIFO):以竖线 | 结尾
02 pwd指令
全称:
Print Working Directory
功能:
显示用户当前所在的目录
展示:
此时我们就在/home/qingguo的目录中
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ pwd
/home/qingguo
03. cd 指令
cd概括
Linux 系统中,磁盘上的文件和目录被组成一棵目录树(如上图),每个节点都是目录或文件
全称:
Change Directory
功能 :
改变工作目录。将当前工作目录改变到指定的目录下。
语法:
- 使用格式:
cd 目录名
cd .. : 返回上级目录
- 当前目录:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ pwd
/home/qingguo/project1/test1
- 使用cd..后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ cd ../
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ pwd
/home/qingguo/project1
可以看出回到了上一层目录
cd /home/litao/linux/ : 绝对路径
进入到该绝对路径下的目录中
- 当前目录:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ pwd
/home/qingguo/project1/test1
- 使用cd /home/litao/linux/ : 绝对路径后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ cd /home/qingguo/project1
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ pwd
/home/qingguo/project1
cd ../day02/ :相对路径
进入到该相对路径下的目录中
- 当前目录:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ pwd
/home/qingguo/project1/test1
- 使用cd ../day02/ :后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ cd ../project2
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project2]$ pwd
/home/qingguo/project2
cd ~:
进入用户家目
- 当前目录:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z test1]$ pwd
/home/qingguo/project1/test1
- 使用cd ~后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ cd ~
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ pwd
/home/qingguo
cd -:
返回最近访问目录,并打印该目录
- 当前目录:
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z home]$ cd qingguo
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ cd project1
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ pwd
/home/qingguo/project1
- 使用cd -后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ cd -
/home/qingguo
04. touch指令
语法 :touch [ 选项 ]... 文件 ...
基础功能:
touch 命令参数可新建一个不存在的文件。
注意:我们建立的是文件不是目录,与后面的mkdir指令分开
- 使用该指令之前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ tree ./
./
├── test1
│ ├── a1
│ ├── a.txt
│ ├── b.txt
│ └── c.txt
├── test2
├── test3
├── test4
└── test5
- 使用该指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ touch test6.txt
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ tree ./
./
├── test1
│ ├── a1
│ ├── a.txt
│ ├── b.txt
│ └── c.txt
├── test2
├── test3
├── test4
├── test5
└── test6.txt
进阶功能
touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间
常用选项 :
- -a 或--time=atime或--time=access或--time=use只更改存取时间。
- -c 或--no-create 不建立任何文档。
- -d 使用指定的日期时间,而非现在的时间。
- -m 或--time=mtime或--time=modify 只更改变动时间。
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
- -t 使用指定的日期时间,而非现在的时间
05.mkdir指令:
语法 : mkdir [ 选项 ] dirname...
基础功能:
mkdir - 目录名
- 使用该指令前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ tree ./
./
├── test1
│ ├── a1
│ ├── a.txt
│ ├── b.txt
│ └── c.txt
├── test2
├── test3
└── test4
- 使用该指令后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ mkdir test5
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z project1]$ tree ./
./
├── test1
│ ├── a1
│ ├── a.txt
│ ├── b.txt
│ └── c.txt
├── test2
├── test3
├── test4
└── test5
在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p, --parents
可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录
mkdir –p test/test1 : 通过 递归的方式建立多个目录
- 使用ls - p指令前
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
├── project1
│ ├── test1
│ │ ├── a.txt
│ │ ├── b.txt
│ │ └── c.txt
│ ├── test2
│ ├── test3
│ └── test4
├── project2
│ ├── a.out
│ └── test1.c
└── project3└── test1└── a
- 使用ls -p后
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ mkdir -p project4/test1/a1
[qingguo@iZf8z6fhz4n89uhtqx9ey6Z ~]$ tree ./
./
├── d.txt
├── project1
│ ├── test1
│ │ ├── a1
│ │ ├── a.txt
│ │ ├── b.txt
│ │ └── c.txt
│ ├── test2
│ ├── test3
│ └── test4
├── project2
│ ├── a.out
│ └── test1.c
├── project3
│ └── test1
│ └── a
└── project4└── test1└── a1
总结:
ok,现在我们也是正式迈入linux的大门了,今天算是浅浅的学习了五个指令,下期博客继续和你一起探索linux指令的奥秘,