linux攻略计划启动,首先是linux的基本介绍(1)

0.首先介绍一下接下来会用到的核心指令:(后面还会回忆的)

clear:清屏

pwd:打印当前用户所在路径

cd:进入某个文件夹中

mkdir:创建一个文件夹在当前文件夹或指定文件夹

ll:打印当前文件夹下文件的具体信息

ls:打印当前文件夹下文件的名字

ls -l:打印当前文件夹下文件的具体信息(ls -l本质和ll是一个东西后面会将)

whoami:显示用户名

下面开始讲解:

1.即使只是建立一个空文件,该文件也会占据磁盘空间,因为文件有属性

mkdir:创建一个新的空文件

ll:展现文件的属性(ctrl+shift+c可以复制linux中的代码)

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ mkdir test
ubuntu@VM-0-2-ubuntu:~/lesson2$ ll
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 14:01 ./
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ../
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test/

如上图:test是空文件,但依旧有4096的bit大小。

原因:文件的属性也是数据,要进磁盘空间的,因此文件空间大小=内容+属性。

学习文件的本质就是对文件内容操作或对文件属性操作。

目录的别名也叫文件夹,以后我们都叫文件夹为目录,文本文件为文件。(非特殊情况都这样)

2.ll中文件的属性的第一个英文是该文件的后缀,如上图的test就是d后缀。(目录的后缀)

touch:创建一个文本文件

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ touch test.vpp
ubuntu@VM-0-2-ubuntu:~/lesson2$ ll
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 14:26 ./
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ../
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test/
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:25 test.cpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:26 test.vpp

如上图:-开头的文件就是文本文件。

3.隐藏文件

linux中以.开头的就叫隐藏文件,-a就用于显示隐藏文件。(-叫作命令行选项,相当于打补丁)

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls
test  test.cpp  test.vpp
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -a//加了-a后.galgame才显示出来
.  ..  .galgame  test  test.cpp  test.vpp

补充:命令行选项的顺序不会影响结果

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -l -a
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 14:33 .
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ..
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:33 .galgame
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:25 test.cpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:26 test.vpp
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -a -l
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 14:33 .
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ..
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:33 .galgame
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:25 test.cpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:26 test.vpp
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -al
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 14:33 .
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ..
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:33 .galgame
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:25 test.cpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:26 test.vpp
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -la
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 14:33 .
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ..
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:33 .galgame
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:25 test.cpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:26 test.vpp

4.路径的本质

pwd:显示当前用户当前所在的目录的路径

windows:将\作为路径分割符

linux:将/作为路径分隔符

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ pwd
/home/ubuntu/lesson2

因此路径的本质是一连串目录组成的,但最后的文件可能是目录,也可能是普通文件。

5.隐藏文件中的.和..文件本质

cd:将用户移动到指定目录中去。

.实际上就是当前目录。

..实际上是包含当前目录的目录。(也就当前目录的父亲)

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ pwd
/home/ubuntu/lesson2
ubuntu@VM-0-2-ubuntu:~/lesson2$ cd .
//可以发现移动到.文件时位置没有发生改变
ubuntu@VM-0-2-ubuntu:~/lesson2$ pwd
/home/ubuntu/lesson2
ubuntu@VM-0-2-ubuntu:~/lesson2$ cd ..
//移动到..文件时位置就去到上一个文件中了
ubuntu@VM-0-2-ubuntu:~$ pwd
/home/ubuntu

移动到/处时在移动也不会再回退了

复制代码
ubuntu@VM-0-2-ubuntu:/home$ pwd
/home
ubuntu@VM-0-2-ubuntu:/home$ cd ..
ubuntu@VM-0-2-ubuntu:/$ pwd
/
ubuntu@VM-0-2-ubuntu:/$ cd ..
ubuntu@VM-0-2-ubuntu:/$ pwd
/

最开始的/有着特殊的名字:根目录。

ls -d:-d是查找当前目录的信息

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -d
.
//此处也很好的说明了.就是当前目录
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -dl
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 21 14:33 .

ls 后面也可以加指定的路径

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -lda /home/ubuntu/lesson2
//使用-d来找该目录信息
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 21 14:33 /home/ubuntu/lesson2

ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -la /home/ubuntu/lesson2
//去掉-d来查找该目录内部的信息
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 14:33 .
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ..
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:33 .galgame
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:25 test.cpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:26 test.vpp

6.linux的文件结构

linux的文件结构是一颗从根目录/开始的多叉树。

1.叶子节点一定是普通文件或空目录

2.非叶子节点一定是一个非空目录

绝对路径:从根目录开始找一个文件的路径的过程,且具有唯一性。

相对路径:从一个叶子结点的位置找到另一个文件的过程,叶子节点不唯一,但确定叶子节点后的路径有唯一性。

因此pwd也算是从/到当前文件的绝对路径。

同为找C,从/找到C叫绝对路径。从test找到C叫相对路径。

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ pwd
/home/ubuntu/lesson2
ubuntu@VM-0-2-ubuntu:~/lesson2$ cd ../lesson
//相对路径
ubuntu@VM-0-2-ubuntu:/home$ pwd
/home
ubuntu@VM-0-2-ubuntu:/home$ cd /home/ubuntu/lesson2
ubuntu@VM-0-2-ubuntu:~/lesson2$ pwd
/home/ubuntu/lesson2
//绝对路径

对路径有认识后,对ls进行再一次的分析:

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -l  .galgame
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 21 14:33 .galgame
//.说明后才能找到隐藏文件
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls test.cpp
test.cpp
//普通文件只会打印他的名字
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls /home/ubuntu
fg  gh  hh.txt  lesson  lesson2  test.txt  text
//目录就打印该目录下的文件
//同时我们可以使用绝对路径来查找文件
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -l test
total 0
//这里是隐藏了开始路径,这种情况下,linux是默认将路径开始设为当前目录了。
ubuntu@VM-0-2-ubuntu:~/lesson2$ ls -l  ../lesson
total 8
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 20 19:28 mkdir1
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 20 19:28 mkdir2
-rw-rw-r-- 1 ubuntu ubuntu    0 Mar 19 14:06 test.cpp
-rw-rw-r-- 1 ubuntu ubuntu    0 Mar 19 14:05 test.jpp
//这里就是显示的相对路径调用了,以上一个目录为起点。

总结:绝对路径常用于配置文件时使用。

相对路径常用于日常使用。

一个目录中的.隐藏文件就是用于表示该目录的位置的。

..的隐藏文件适用于找该目录的父亲目录的。

任何目录,即使是空目录,系统也会为该目录生成.和..的隐藏文件。

补充:C/D等盘的本质都是文件夹,此电脑才是真正的根目录。

7.windows桌面的本质

普通用户的家目录是/home/用户名这里的目录。

~ 到当前用户的家目录去。(任何一个用户在刚开始登录系统时,默认都是在家目录下的)

复制代码
ubuntu@VM-0-2-ubuntu:~$ pwd
/home/ubuntu
ubuntu@VM-0-2-ubuntu:~$ ls
fg  gh  hh.txt  lesson  lesson2  test.txt  text
ubuntu@VM-0-2-ubuntu:~$ ls ~
fg  gh  hh.txt  lesson  lesson2  test.txt  text
//~的目录于home下的目录一样

windows桌面的本质:

windows和linux的本质没有不同,windows的用户中于用户名相同的文件就是windows下的家目录。

加载桌面的本质就是将桌面这个文件夹里面的内容用图标的形式展现出来。每一个用户都用自己的桌面文件夹,因此不同用户的桌面文件夹不同(在同一台电脑上)。

学习命令行的意义:帮助我们理解电脑的本质,接近真相。

cd - 也可以回到当前目录的上一个目录。

复制代码
ubuntu@VM-0-2-ubuntu:~$ cd -
/home/ubuntu/lesson2
ubuntu@VM-0-2-ubuntu:~/lesson2$ cd -
/home/ubuntu

8.touch的使用

1.用于创建一个新的普通文件

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ ll
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 15:26 ./
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ../
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:33 .galgame
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test/
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 15:26 test.bpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:25 test.cpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:26 test.vpp
ubuntu@VM-0-2-ubuntu:~/lesson2$ touch gal.love
ubuntu@VM-0-2-ubuntu:~/lesson2$ ll
total 12
drwxrwxr-x  3 ubuntu ubuntu 4096 Mar 21 16:04 ./
drwxr-x--- 10 ubuntu ubuntu 4096 Mar 21 14:01 ../
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:33 .galgame
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 16:04 gal.love//
drwxrwxr-x  2 ubuntu ubuntu 4096 Mar 21 14:01 test/
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 15:26 test.bpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:25 test.cpp
-rw-rw-r--  1 ubuntu ubuntu    0 Mar 21 14:26 test.vpp

2.更新普通文件的时间

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ ll gal.love

-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 21 16:04 gal.love

ubuntu@VM-0-2-ubuntu:~/lesson2$ touch gal.love
ubuntu@VM-0-2-ubuntu:~/lesson2$ ll gal.love

-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 21 16:06 gal.love
//时间不同了

stat展现一个文件的所有时间属性

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ stat gal.love
  File: gal.love
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 253,2	Inode: 524351      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/  ubuntu)   Gid: ( 1001/  ubuntu)
Access: 2026-03-21 16:06:55.228439694 +0800
Modify: 2026-03-21 16:06:55.228439694 +0800
Change: 2026-03-21 16:06:55.228439694 +0800
 Birth: 2026-03-21 16:04:31.254926264 +0800

Access 文件最近被访问的时间

Modify 文件内容被修改的最近时间

change 只要文件属性改了就更新时间

mkdir -p 创建一串目录(tree 打印目录里面的所有文件且以树的形式)

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ mkdir -p  gal1/gal2/gal3/gal4
ubuntu@VM-0-2-ubuntu:~/lesson2$ tree
.
├── a
│   └── b
│       └── c
│           └── d
│               └── e
├── gal1
│   └── gal2
│       └── gal3
│           └── gal4
├── gal.love
├── test
├── test.bpp
├── test.cpp
└── test.vpp

ubuntu安装tree:apt install -y tree。

9.命令的本质

which查找一个文件所在的路径

复制代码
ubuntu@VM-0-2-ubuntu:~$ which ls
/usr/bin/ls

这里很好的说明了命令的本质就是文件,调用命令的本质就是调用相应的文件,因此调用相应的文件路径也是可以调用相应指令的。

复制代码
ubuntu@VM-0-2-ubuntu:~$ /usr/bin/ls -l
total 20
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 19 18:32 fg
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 19 19:05 gh
-rw-rw-r-- 1 ubuntu ubuntu    0 Mar 19 17:10 hh.txt
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar 20 19:33 lesson
drwxrwxr-x 5 ubuntu ubuntu 4096 Mar 21 16:13 lesson2
-rw-rw-r-- 1 ubuntu ubuntu    0 Mar 20 15:32 test.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 19 18:27 text
ubuntu@VM-0-2-ubuntu:~$ 

有了:命令==可执行文件==平时的c/c++程序。

自设计的文件一般要显式写路径才能调用,想要想系统文件那样直接调用需要将自设计文件拷贝一份到/usr/bin/路径下才能直接调用,这里也能说明程序命令的本质只是调用文件中的代码而已。

alias 给一个命令起别名

复制代码
ubuntu@VM-0-2-ubuntu:~$ alias galgame=pwd
ubuntu@VM-0-2-ubuntu:~$ galgame
/home/ubuntu

用户起的别名是临时的,关了Xshell就没了。

nano是linux中的临时记事本

复制代码
ubuntu@VM-0-2-ubuntu:~/lesson2$ nano test.cpp
ubuntu@VM-0-2-ubuntu:~/lesson2$ 

ctrl + c可以强行停止代码运行。

总结:命令的本质是可执行文件

ll就是ls -l的别名(我的linux which下看不见)

ctrl + C中止代码运行

相关推荐
张3蜂2 小时前
Ubuntu Linux 与 Ubuntu with Rosetta:深入解析两者的区别与适用场景
linux·运维·ubuntu
廿一夏2 小时前
搭建Ubuntu 虚拟机与部署docker
linux·ubuntu·docker
历程里程碑2 小时前
43. TCP -2实现英文查中文功能
java·linux·开发语言·c++·udp·c#·排序算法
千里马-horse2 小时前
ubuntu 电脑安装protoc-gen-grpc-kotlin
linux·运维·ubuntu
柯儿的天空2 小时前
【OpenClaw 全面解析:从零到精通】第 004 篇:OpenClaw 在 Linux/Ubuntu 上的安装与部署实战
linux·人工智能·ubuntu·elasticsearch·知识图谱
不知名。。。。。。。。2 小时前
仿muduo库实现高并发服务器---HttpContext上下文类实现
运维·服务器
从零点2 小时前
ubuntu网络没有WiFi怎么办?网络配置解决步骤
linux·服务器·网络
计算机与认知2 小时前
Linux Device Link机制
java·linux·服务器
last demo2 小时前
docker容器监控
运维·docker·容器