大家好我是沐曦希💕
1. 前言
没有搭建好Linux和下载XShell的看官,可以移步到Linux环境搭建与登陆
1.1 操作系统os概念
使计算机更好用! 这是操作系统的根本要义!! 操作系统处于软硬件之间,起承上启下的效果。对上给应用提供接口,所以软件可以被编写出来。
操作系统是管理软件,管理软硬件 对上:提供良好稳定安全的运行环境 对下:管理软硬件资源
在发展过程中是先有键盘后有鼠标,意味着先有命令行才有图形化界面。
1.2 文件
文件是由文件内容和文件的属性构成。 那么空文件是否占磁盘空间呢? 占,因为文件内容和文件的属性都是数据,其中文件属性是元数据。
所以学习操作文件的方法是: 1.操作文件内容 2.操作文件属性
文件之间也有区别:普通文件和目录 其中目录->Windows下的文件夹->保存其他文件的场所。
2.ls 指令
语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
[root@iZ2ze79kprp9cai14dsma8Z File]# ls
//罗列出当前的路径下所有文件和目录名称
test.c test.txt
而一条命名除了本身,还可以携带选项 常用选项:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d 将目录象文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录 -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件 -k 以 k 字节的形式表示文件的大小。 ls –alk 指定文件 -l 列出文件的详细信息。 -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID) -F 在每个文件名后附上一个字符以说明该文件的类型, “*”表示可执行的普通文件; “/”表示目录; “@”表 示符号链接; “|”表示FIFOs; “=”表示套接字(sockets)。(目录类型识别) -r 对目录反向排序。 -t 以时间排序。 -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件) -R 列出所有子目录下的文件。 (递归) -1 一行只输出一个文件。
举一些选项:
[root@iZ2ze79kprp9cai14dsma8Z File]# ls -l
//显示除了文件名以外的文件属性和信息
total 4
-rw-r--r-- 1 root root 0 Sep 25 13:12 test.c
drwxr-xr-x 2 root root 4096 Sep 25 12:36 test.txt
[root@iZ2ze79kprp9cai14dsma8Z File]# ls -a
//显示当前目录下的所有文件包括隐藏的文件
. .. test.c test.txt
[root@iZ2ze79kprp9cai14dsma8Z File]# ls -al
//是-a和-l的效果的结合,可以写成ls -a -l
total 12
drwxr-xr-x 3 root root 4096 Sep 25 13:12 .
dr-xr-x---. 8 root root 4096 Sep 25 13:34 ..
-rw-r--r-- 1 root root 0 Sep 25 13:12 test.c
drwxr-xr-x 2 root root 4096 Sep 25 12:36 test.txt
我们看到ls如果带-a选项,会出现一个点和两个点。在这里一个点表示当前路径,两个点表示上级路径。比如下面的cd …返回上级路径。
在Linux中,以点开头的文件我们叫做隐藏文件 ls -a:显示所有文件,包括隐藏文件。也就是说,ls不显示隐藏文件
相当于Windows下的查看隐藏项目 其中选项ll和选项ls -l的显示结果一样。
[root@iZ2ze79kprp9cai14dsma8Z ~]# ll
total 12
drwxr-xr-x 3 root root 4096 Sep 26 10:39 File
drwxr-xr-x 2 root root 4096 Sep 25 13:41 lesson2
drwxr-xr-x 2 root root 4096 Sep 25 12:27 Linux
[root@iZ2ze79kprp9cai14dsma8Z ~]# ls -l
total 12
drwxr-xr-x 3 root root 4096 Sep 26 10:39 File
drwxr-xr-x 2 root root 4096 Sep 25 13:41 lesson2
drwxr-xr-x 2 root root 4096 Sep 25 12:27 Linux
而对于ls -Rl,就是展开子目录下的文件
[root@iZ2ze79kprp9cai14dsma8Z ~]# ls -Rl
.:
total 12
drwxr-xr-x 3 root root 4096 Sep 26 10:39 File
drwxr-xr-x 2 root root 4096 Sep 25 13:41 lesson2
drwxr-xr-x 2 root root 4096 Sep 25 12:27 Linux
./File:
total 20
-rwxr-xr-x 1 root root 8440 Sep 26 10:39 test
-rw-r--r-- 1 root root 58 Sep 26 10:38 test.c
drwxr-xr-x 2 root root 4096 Sep 25 12:36 test.txt
./File/test.txt:
total 0
./lesson2:
total 224
-rw-r--r-- 1 root root 228914 Sep 25 13:49 106.txt
./Linux:
total 8
-rw-r--r-- 1 root root 20 Sep 25 12:29 9.25test.cpp
-rw-r--r-- 1 root root 0 Sep 23 22:47 test.cpp
-rw-r--r-- 1 root root 12 Sep 25 12:28 test.txt
3.pwd命令
语法: pwd 功能:显示用户当前所在的目录
[root@iZ2ze79kprp9cai14dsma8Z ~]# pwd
/root
在Windows下,我们很容易就能够找到路径:在这里\就是路径分隔符 而在Linux下,是以 / 作为路径分隔符。 需要注意的是:Linux下的第一个 / 是 根目录 为什么我们喜欢用路径来表示一个文件呢? 我们一般从 / (根目录)开始到指定文件路径具有唯一性。 即路径+文件名 = 具有唯一性,类似于树,叶子节点到根具有具有唯一性。
绝对路径:从根目录开始,依次按树状结构向后进行查找定义称为绝对路径 相对路径:相对于当前所处的路径,当前的相对位置查找所处的位置
在日常操作中用比较多的是相对路径
[root@iZ2ze79kprp9cai14dsma8Z ~]# pwd
/root
[root@iZ2ze79kprp9cai14dsma8Z ~]# cd ./lesson2
//.表示当前目录
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# pwd
/root/lesson2
而绝对路径比较官方,比如在配置文件中的一项配置。
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# pwd
/root/lesson2
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# cd /root/Linux
[root@iZ2ze79kprp9cai14dsma8Z Linux]# pwd
/root/Linux
怎么查看当前的用户是谁?可以输入whoami指令来显示
[root@iZ2ze79kprp9cai14dsma8Z Linux]# whoami
root
在VS下退出Ctrl+Z,而Linux下退出时Ctrl+D
4.cd 指令
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。 类似于树形结构,分为叶子节点和路上节点。对于叶子节点,既最后一层,可以有普通文件或者空目录,而路上节点只能是目录。即在Linux下目录中也可以再放是目录,和Windows类似。
说到这里,我们可以通过指令tree .(安装命令: yum install -y tree)以树形结构显示当前目录的所有文件和目录
[root@iZ2ze79kprp9cai14dsma8Z ~]# pwd
/root
[root@iZ2ze79kprp9cai14dsma8Z ~]# tree .
.
├── File
│ ├── test
│ ├── test.c
│ └── test.txt
├── lesson2
│ └── 106.txt
└── Linux
├── 9.25test.cpp
├── test.cpp
└── test.txt
4 directories, 6 files
语法:cd 目录名 功能:改变工作目录。将当前工作目录改变到指定的目录下。 举例:
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
简单来说就是cd功能就是在cd后面空格加上你想去的路径。
cd…回退上级路径(如果一直回退,最终会无法回退,只会到根目录/)
[root@iZ2ze79kprp9cai14dsma8Z ~]# pwd
/root
[root@iZ2ze79kprp9cai14dsma8Z ~]# cd ..
//返回到上级目录
[root@iZ2ze79kprp9cai14dsma8Z /]# pwd
/
[root@iZ2ze79kprp9cai14dsma8Z /]# cd ..
[root@iZ2ze79kprp9cai14dsma8Z /]# pwd
/
cd ~:进入当前用户的工作目录,即默认登陆所处的目录 root用户:
[root@iZ2ze79kprp9cai14dsma8Z /]# cd ~
[root@iZ2ze79kprp9cai14dsma8Z ~]# pwd
/root
普通用户:
[lj@iZ2ze79kprp9cai14dsma8Z home]$ pwd
/home
[lj@iZ2ze79kprp9cai14dsma8Z home]$ cd ~
[lj@iZ2ze79kprp9cai14dsma8Z ~]$ pwd
/home/lj
cd -:进入最近一次所处的路径,从两个热点路径下来回切换!
[root@iZ2ze79kprp9cai14dsma8Z ~]# pwd
/root
[root@iZ2ze79kprp9cai14dsma8Z ~]# cd ./lesson2
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# cd -
/root
[root@iZ2ze79kprp9cai14dsma8Z ~]# cd -
/root/lesson2
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# cd -
/root
我们先进入一个目录,然后进行cd -,就会返回到最近的访问目录,然后在cd -,就又会返回到刚刚进入的目录。
5.touch指令
touch是一个Linux下创建的普通文件的命令
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# pwd
/root/lesson2
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# tree .
.
└── 106.txt
0 directories, 1 file
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# touch test.c
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# tree .
.
├── 106.txt
└── test.c
0 directories, 2 files
语法:touch [选项]… 文件… 功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。 常用选项:
-a 或--time=atime或--time=access或--time=use只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间
除此之外,我们还可以去查看文件时间
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# stat 106.txt
File: ‘106.txt’
Size: 228914 Blocks: 448 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 1055555 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-09-25 13:49:44.911818192 +0800
Modify: 2022-09-25 13:49:37.844065011 +0800
Change: 2022-09-25 13:49:37.844065011 +0800
Birth: -
查看时间之外我们可以利用touch去更新时间:
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# stat 106.txt
File: ‘106.txt’
Size: 228914 Blocks: 448 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 1055555 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-09-25 13:49:44.911818192 +0800
Modify: 2022-09-25 13:49:37.844065011 +0800
Change: 2022-09-25 13:49:37.844065011 +0800
Birth: -
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# touch 106.txt
[root@iZ2ze79kprp9cai14dsma8Z lesson2]# stat 106.txt
File: ‘106.txt’
Size: 228914 Blocks: 448 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 1055555 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-09-27 13:04:10.987805507 +0800
Modify: 2022-09-27 13:04:10.987805507 +0800
Change: 2022-09-27 13:04:10.987805507 +0800
Birth: -
6.mkdir指令(重要)
在当前目录下下创建一个新目录
[root@iZ2ze79kprp9cai14dsma8Z ~]# pwd
/root
[root@iZ2ze79kprp9cai14dsma8Z ~]# ls
File lesson2 Linux
[root@iZ2ze79kprp9cai14dsma8Z ~]# mkdir lesson3
[root@iZ2ze79kprp9cai14dsma8Z ~]# ls
File lesson2 lesson3 Linux
[root@iZ2ze79kprp9cai14dsma8Z ~]# pwd
/root
语法: mkdir [选项] dirname… 功能:在当前目录下创建一个名为 “dirname”的目录 常用选项:
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
即mkdir -p命令可以创建路径
[root@iZ2ze79kprp9cai14dsma8Z ~]# ls
File lesson2 lesson3 Linux
[root@iZ2ze79kprp9cai14dsma8Z ~]# mkdir -p dir/LJ/test.c
[root@iZ2ze79kprp9cai14dsma8Z ~]# ls
dir File lesson2 lesson3 Linux
当然-p可以递归创建多个目录
7.写在最后
那么Linux的基本指令(一)到这里就结束了。
|