前言
为什么要学习并使用linux
先解决这个问题,为什么要学Linux啊,对这博主也只是一个小白,无法写出很高大上的理由,也无法和你们分享我的经验,大家可以自行百度,博主也在网上查找了很多资料,说来说去也无非就那几种,开源啊,稳定啊什么的,博主也不想cv了。但博主还是想说:
操作系统不分高低,适合的才是最好的。
再说一下初学者的感受:
Linux操作系统没有和Windows一样的图形化界面,我们一开始很蹩脚,很不适应,这很正常。如果你一直感到很舒服,只能说明你一直没有进步。想想我们学了那么多年英语,绝大多数人还是无法掌握英语,看到英语文档就直接自动屏蔽。其原因都是:一直在学,但从来没在用。只学而不用,没有半点用。
学习指令的原因
Linux没有图形化界面,意味着我们的操作不能使用鼠标click了,得学命令行了。
开始学习。
01. ls 指令
语法: ls [选项][目录或文件]将列出文件名以及其他信息。
[root@iZwz99d1d64mpw1zvibezuZ learning]# ls text.txt [root@iZwz99d1d64mpw1zvibezuZ learning]#
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,
表示的是我当前所处的目录下只有一个text.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 一行只输出一个文件。
举例:
ls -l 列出文件的详细信息。
[root@iZwz99d1d64mpw1zvibezuZ learning]# ls -l total 0 -rw-r--r-- 1 root root 0 Nov 19 14:52 text.txt [root@iZwz99d1d64mpw1zvibezuZ learning]#
文件 = 文件内容 +文件属性
这些文件信息就相当于文件属性,如文件名,修改时间等。
拓展:
stat指令 获取文件的所有属性
[root@iZwz99d1d64mpw1zvibezuZ learning]# stat text.txt File: ‘text.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 1055360 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-11-19 14:52:36.605343951 +0800 Modify: 2022-11-19 14:52:36.605343951 +0800 Change: 2022-11-19 14:52:36.605343951 +0800 Birth: - [root@iZwz99d1d64mpw1zvibezuZ learning]#
access time:最后一次 访问 (仅访问,没有改动)文件的时间
change time:最后一次 文件属性改变 的时间,包括权限,大小,属性等
modify time:最后一次修改 文件 的时间
02. pwd命令
语法: pwd
功能:显示用户当前所在的目录
常用选项:
无
[root@iZwz99d1d64mpw1zvibezuZ learning]# pwd /root/learning [root@iZwz99d1d64mpw1zvibezuZ learning]#
注意:
Linux 下路径分隔符为 /,Windows 下路径分隔符为 \ 。
03. cd 指令
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下
Linux系统中,磁盘上的文件和目录被组成一棵目录树(多叉树),每个节点都是目录或文件。从根目录开始,各种文件和目录像节点一样发散。
[
root@iZwz99d1d64mpw1zvibezuZ ~]# cd / 回到根目录 [root@iZwz99d1d64mpw1zvibezuZ /]# cd root 改变到root目录 [root@iZwz99d1d64mpw1zvibezuZ ~]# pwd /root [root@iZwz99d1d64mpw1zvibezuZ ~]# cd learning 改变到learning目录 [root@iZwz99d1d64mpw1zvibezuZ learning]# pwd /root/learning 现在所处的目录 [root@iZwz99d1d64mpw1zvibezuZ learning]#
举例:
cd … : 返回上级目录
[root@iZwz99d1d64mpw1zvibezuZ learning]# pwd /root/learning [root@iZwz99d1d64mpw1zvibezuZ learning]# cd .. [root@iZwz99d1d64mpw1zvibezuZ ~]# pwd /root [root@iZwz99d1d64mpw1zvibezuZ ~]#
cd /home/litao/linux/ : 绝对路径
绝对路径就和在windows硬盘中的路径:
C:\c.code\test_10_15这就是绝对路径
cd …/day02/ : 相对路径
[root@iZwz99d1d64mpw1zvibezuZ learning]# tree . ├── c │ └── c1 ├── c++ ├── myfile.c ├── see └── text.txt 2 directories, 4 files [root@iZwz99d1d64mpw1zvibezuZ learning]# cd c [root@iZwz99d1d64mpw1zvibezuZ c]# pwd /root/learning/c [root@iZwz99d1d64mpw1zvibezuZ c]# cd ../c++ [root@iZwz99d1d64mpw1zvibezuZ c++]# pwd /root/learning/c++ [root@iZwz99d1d64mpw1zvibezuZ c++]#
cd ~:进入用户家目
[root@iZwz99d1d64mpw1zvibezuZ c++]# pwd /root/learning/c++ [root@iZwz99d1d64mpw1zvibezuZ c++]# cd ~ [root@iZwz99d1d64mpw1zvibezuZ ~]# pwd /root [root@iZwz99d1d64mpw1zvibezuZ ~]#
cd -:返回最近访问目录
[root@iZwz99d1d64mpw1zvibezuZ ~]# cd - /root/learning/c++ [root@iZwz99d1d64mpw1zvibezuZ c++]# cd - /root [root@iZwz99d1d64mpw1zvibezuZ ~]#
04. touch指令
语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
> -a 或--time=atime或--time=access或--time=use只更改存取时间。 > -c 或--no-create 不建立任何文档。 > -d 使用指定的日期时间,而非现在的时间。 > -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 > -m 或--time=mtime或--time=modify 只更改变动时间。 > -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 > -t 使用指定的日期时间,而非现在的时间。
[root@iZwz99d1d64mpw1zvibezuZ ~]# touch learning/c/c1.c [root@iZwz99d1d64mpw1zvibezuZ ~]# tree . └── learning ├── c │ └── c1.c ├── c++ ├── myfile.c ├── see └── text.txt 3 directories, 4 files [root@iZwz99d1d64mpw1zvibezuZ ~]#
05.mkdir指令(重要)
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录;
一次创建一个目录:
[root@iZwz99d1d64mpw1zvibezuZ ~]# tree . └── learning ├── c │?? └── c1.c ├── c++ ├── myfile.c ├── see └── text.txt 3 directories, 4 files [root@iZwz99d1d64mpw1zvibezuZ ~]# cd learning [root@iZwz99d1d64mpw1zvibezuZ learning]# pwd /root/learning [root@iZwz99d1d64mpw1zvibezuZ learning]# cd python -bash: cd: python: No such file or directory [root@iZwz99d1d64mpw1zvibezuZ learning]# mkdir python [root@iZwz99d1d64mpw1zvibezuZ learning]# pwd /root/learning [root@iZwz99d1d64mpw1zvibezuZ learning]# tree . ├── c │?? └── c1.c ├── c++ ├── myfile.c ├── python ├── see └── text.txt
创建多个目录
[root@iZwz99d1d64mpw1zvibezuZ learning]# tree . ├── c │ └── c1.c ├── c++ ├── myfile.c ├── python ├── see └── text.txt 3 directories, 4 files [root@iZwz99d1d64mpw1zvibezuZ learning]# mkdir -p c1/c2/c3 [root@iZwz99d1d64mpw1zvibezuZ learning]# pwd /root/learning [root@iZwz99d1d64mpw1zvibezuZ learning]# tree . ├── c │ └── c1.c ├── c++ ├── c1 │ └── c2 │ └── c3 ├── myfile.c ├── python ├── see └── text.txt 6 directories, 4 files [root@iZwz99d1d64mpw1zvibezuZ learning]#
06.rmdir指令 && rm 指令(重要):
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm命令可以同时删除文件或目录 语法:rm [-f-i-r-v][dirName/dir] 适用对象:所有使用者 功能:删除文件或目录 root@iZwz99d1d64mpw1zvibezuZ learning]# pwd /root/learning [root@iZwz99d1d64mpw1zvibezuZ learning]# tree . ├── c │ └── c1.c ├── c++ ├── c1 │ └── c2 ├── myfile.c ├── python └── see 5 directories, 3 files [root@iZwz99d1d64mpw1zvibezuZ learning]# rmdir c++ [root@iZwz99d1d64mpw1zvibezuZ learning]# tree . ├── c │ └── c1.c ├── c1 │ └── c2 ├── myfile.c ├── python └── see 4 directories, 3 files [root@iZwz99d1d64mpw1zvibezuZ learning]# rmdir -p ./c1/c2 rmdir: failed to remove directory ‘.’: Invalid argument [root@iZwz99d1d64mpw1zvibezuZ learning]# pwd /root/learning
结语:
博主是一个不想读书的程序员,也是最近在学习Linux操作,希望大家还是下去实操一下,指令的熟练程度和熟练使用操作系统完全挂钩,还是得练。