本节阿森将和你一起深入浅出的学习简单几条指令,快速上手在linux写代码,同时更好的理解指令记忆
在linux系统中,磁盘上的文件和目录被组成一个树,每个节点都是目录或文件,像是一个多叉树的层次结构。如图所示:
以上只是展示目录的结构是目录树的结构,以下是 Linux 文件目录结构的主要组成部分:
根目录 (/) | 这是整个文件系统的顶级目录,所有其他目录和文件都是从根目录开始的。 |
---|---|
/bin | 包含基本的用户级二进制文件,如 ls、cat、mkdir 等。 |
/etc | 包含系统级的配置文件,如网络、服务等的配置文件。 |
/home | 包含每个用户的个人目录,用户可以在自己的目录中存储文件和设置。 |
/lib | 包含系统级的共享库文件,供系统和应用程序使用。 |
/media | 用于挂载可移动设备,如 CD-ROM、USB 驱动器等。 |
/mnt | 用于临时挂载文件系统。 |
/opt | 用于安装可选的软件包。 |
/proc | 是一个虚拟文件系统,提供了系统内部信息。 |
/root | 是 root 用户的主目录。 |
/sbin | 包含系统级的二进制文件,如 init、shutdown 等。 |
/tmp | 用于存储临时文件,系统重启后会被清空。 |
/usr | 包含大部分用户级的程序和文件,如应用程序、库文件等。 |
/var | 用于存储经常变化的文件,如日志、缓存、锁定文件等。 |
这是在Xshell中我新建的目录,更好的展示树状结构,如图:
我们接着看~
pwd:显示用户当前所在的目录
这里pwd显示是/root,因为linux用户分为两类:
语法:mkdir [选项] dirname… 功能:在当前目录下创建一个名为 “dirname”的目录 常用选项: -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
如图:
记得mkdir后要加一个空格,然后再输入,这里你输入tree这个命令发现查看不了,原因是因为你还没安装tree 安装指令:
yum install -y tree
右键是有复制粘贴的快捷键哦,不是CV
建立多个目录怎么办?,一个一个太麻烦了,因此我们可以递归建立多个目录
mkdir –p test/test1 : 递归建立多个目录
语法:cd 目录名 功能:改变工作目录。将当前工作目录改变到指定的目录下。 举例: cd … : 返回上级目录 cd /home/litao/linux/ : 绝对路径 cd …/day02/ : 相对路径 cd ~:进入用户家目 cd -:返回最近访问目录
[root@hcss-ecs-ab43 ~]# tree
.
├── bin
├── dev
├── etc
├── home
├── test
│ └── test2
│ └── test3
│ └── test4
└── usr
9 directories, 0 files
[root@hcss-ecs-ab43 ~]# pwd
/root
[root@hcss-ecs-ab43 ~]# cd test
[root@hcss-ecs-ab43 test]# cd test2
[root@hcss-ecs-ab43 test2]# cd test3
[root@hcss-ecs-ab43 test3]# cd test4
[root@hcss-ecs-ab43 test4]# pwd
/root/test/test2/test3/test4
[root@hcss-ecs-ab43 test4]#
cd+空格+目录==进入进入目录
cd -:返回最近访问目录
[root@hcss-ecs-ab43 test4]# cd -
/root/test/test2/test3
[root@hcss-ecs-ab43 test3]#
cd ~:进入用户家目
[root@hcss-ecs-ab43 test4]# cd -
/root/test/test2/test3
[root@hcss-ecs-ab43 test3]# cd ~
[root@hcss-ecs-ab43 ~]# pwd
/root
[root@hcss-ecs-ab43 ~]#
cd /home/litao/linux/ : 绝对路径 绝对路径和window一样,而cd … : 返回上级目录,一图了解:
语法:touch [选项]… 文件… 功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。 常用选项: -a 或–time=atime或–time=access或–time=use只更改存取时间。 -c 或–no-create 不建立任何文档。 -d 使用指定的日期时间,而非现在的时间。 -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 -m 或–time=mtime或–time=modify 只更改变动时间。 -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 -t 使用指定的日期时间,而非现在的时间。
[root@hcss-ecs-ab43 ~]# cd home
[root@hcss-ecs-ab43 home]# mkdir bit
[root@hcss-ecs-ab43 home]# cd bit
[root@hcss-ecs-ab43 bit]# touch test.c
[root@hcss-ecs-ab43 bit]# cd ~
[root@hcss-ecs-ab43 ~]# tree
.
├── bin
├── dev
├── etc
├── home
│ └── bit
│ └── test.c
├── test
│ └── test2
│ └── test3
│ └── test4
└── usr
10 directories, 1 file
[root@hcss-ecs-ab43 ~]#
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。 语法:rmdir [-p][dirName] 适用对象:具有当前目录操作权限的所有使用者 功能:删除空目录
常用选项: -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。 rm命令可以同时删除文件或目录 语法:rm [-f-i-r-v][dirName/dir] 适用对象:所有使用者 功能:删除文件或目录
常用选项: -f 即使文件属性为只读(即写保护),亦直接删除 -i 删除前逐一询问确认 -r 删除目录及其下所有文件
[root@hcss-ecs-ab43 ~]# tree
.
├── bin
├── dev
├── etc
├── home
│ └── bit
│ └── test.c
├── test
│ └── test2
│ └── test3
│ └── test4
└── usr
10 directories, 1 file
[root@hcss-ecs-ab43 ~]# rm -r bin
rm: remove directory ‘bin’? y //注这里是因为root用户会询问
[root@hcss-ecs-ab43 ~]# tree
.
├── dev
├── etc
├── home
│ └── bit
│ └── test.c
├── test
│ └── test2
│ └── test3
│ └── test4
└── usr
9 directories, 1 file
[root@hcss-ecs-ab43 ~]#
加上f可以不用询问
递归删除:
[root@hcss-ecs-ab43 ~]# rm -r test
rm: descend into directory ‘test’? y
rm: descend into directory ‘test/test2’? y
rm: descend into directory ‘test/test2/test3’? y
rm: remove directory ‘test/test2/test3/test4’? y
rm: remove directory ‘test/test2/test3’? y
rm: remove directory ‘test/test2’? y
rm: remove directory ‘test’? y
当然可以加上f可以不用询问
语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 常用选项: -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 一行只输出一个文件
组合使用-a 列出目录下的所有文件 的详细信息。包括以 . 开头的隐含文件。
在linux写代码我最开始可以先用nano来写, nano 是一个简单易用的文本编辑器,在 Linux 和 Unix 系统中广泛使用。
基本用法: nano [文件名]: 打开指定的文件进行编辑。如果文件不存在,会创建一个新文件。 nano: 不指定文件名,会打开一个新的空白文件。
这是安装指令:
yum install -y nano
选Y
按Enter回车键
使用gcc编译编译生成可执行.o目标文件test
gcc test.c -o test
再次输入
./test
目的是为了找到该文件使用了./
语法:cp [选项] 源文件或目录 目标文件或目录 功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息 常用选项: -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在 -i 或 --interactive 覆盖文件之前先询问用户 -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链 接,则一律视为普通文件处理 -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
注意不要在home前面加/哦
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 语法: man [选项] 命令 常用选项 -k 根据关键字搜索联机帮助 num 只在第num章节找 -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
安装指令:
yum install -y man-pages
解释一下,面手册分为8章
man [命令名]
: 查看指定命令的手册页。例如 man ls
查看 ls
命令的手册页。man -k [关键词]
: 搜索包含指定关键词的手册页。
-f
: 显示手册页的一行简介-h
: 显示帮助信息-w
: 显示手册页的文件路径-a
: 显示所有匹配的手册页q
退出手册页/
进行搜索,输入关键词后按回车n
跳转到下一个搜索结果N
跳转到上一个搜索结果man man
查看 man
命令本身的手册页 - 可以使用 whatis [命令名]
快速查看命令的简介 - 可以使用 apropos [关键词]
搜索与关键词相关的手册页
可以自查
[root@hcss-ecs-ab43 ~]# man man
需要注意的是,比如有八章节命令,如果一个命令在第一章找到,直接显示,即使后面的章节也有相同,他也不会继续查找!
ls 指令:-l 列出文件的详细信息。 pwd命令:功能:显示用户当前所在的目录 cd 指令:改变工作目录。将当前工作目录改变到指定的目录下。cd ~ 回家 touch指令:建立普通文件如test.c mkdir指令:在当前目录下创建一个名为 “dirname”的目录 如:mkdir dir rmdir指令 && rm 指令:删除空目录 cp指令:复制文件或目录,如cp [选项] 源文件或目录 目标文件或目录 man指令:查看指定命令的手册页如 man man nano test.c 记事本编写
感谢你的收看,如果文章有错误,可以指出,我不胜感激,让我们一起学习交流,如果文章可以给你一个小小帮助,可以给博主点一个小小的赞😘