文章目录
- 1、ls指令
- 2、pwd指令
- 3、cd指令
- 4、touch指令
- 5、mkdir指令
- 6、rmdir指令 && rm指令
- 7、man指令
- 8、cp指令
- 9、mv指令
- 10、cat指令
- 11、more指令
- 12、less指令
- 13、head指令
- 14、tail指令
- 15、时间相关指令
- 16、cal指令
- 17、find指令:
- 18、grep指令
- 19、zip/unzip指令
- 20、tar指令 :
- 21、bc指令
- 22、uname指令
【写在前面】
这里不会把所有的指令及选项在入门阶段全部讲出来,当然也不可能全部记住。大量的实例证明一开始死记的人大多数多记不住,这里只讲一些指令的基本功能和一些重要的选项,其余的以后遇到了再实践。在讲每条指令时其中会穿插一些别的概念,其次这里会大概了解下 os 。
一、简单了解os概念及定位
❗ os 概念 ❕
操作系统 (Operating System,简称 OS) 是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
在早期的计算机比如 “埃尼阿克” 都是跟硬件或者一堆按钮打交道,无疑成本是很高的;随着计算机的发展,操作系统给用户带来的价值是使用计算机硬件的成本降低。
❗ os 作用 ❕
对上:给用户提供一个良好的稳定 (简单) 的操作环境
对下:和硬件打交道,进行合理的软硬件管理
❗ os 定位 ❕
事实上键盘的出现比鼠标要早,在有键盘没有鼠标的年代,人们都是用命令行和计算机交流
❓ 那现如今我们为啥还要逆流而上去学习命令行呢 && 命令行 VS 图形界面❔
首先界面本质上对用户来说是一种进步的表现,因为没有界面,计算机也不可能普及;但对于学习者,命令行是一种很重要的方式,因为它更接近原生系统。其次命令行的操作效率是比图形界面要更快的,当然命令行的体验肯定不如界面,因为界面所见即所得
二、基本指令
1、ls指令
语法:ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件;对于文件,将列出文件名以及其它信息
常用选项 (选项的意思就是以核心功能为主,扩展其它功能):
▶ 空 ,显示当前目录下的文件信息
目录名 显示目录下文件信息
▶ -a ,列出目录下的所有文件,包括以 . 开头的隐藏文件
Linux 下凡是以 . 开头的文件都是隐藏文件,其实隐藏文件就是告诉你它是隐藏文件,你不要乱搞,就像 C 语言中 const 修饰变量,仍然能通过指针修改,那它的意义何在呢
⚠ 注意
1️⃣ . 是当前路径 —— cd .
2️⃣ . . 是上级路径 —— cd …
▶ -d ,将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
▶ -i ,输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
▶ -k ,以 k 字节的形式表示文件的大小。ls –alk 指定文件
▶ -l ,列出文件的详细信息 (ls -l 也可以替换成 ll)
❗ 文件类型 ❕
我们可以通过 ls -l 或 ll 查看,即用第一个字符来标识不同文件
- :普通文件 (文本文件、可执行文件、各种库文件) 对比 windows 来说雀实很粗暴
d :目录文件
l :链接文件,类似于 windows 下的快捷方式
p :管道文件,用于控制进程之间的通信
c :字符文件 (字符设备:键盘、显示器【Linux下一切皆文件】)
b :块设备 (磁盘)
💨小结
Windows 区分文件类型用的是后缀 .exe、.docs、.html
Linux 区分文件类型不通过后缀,通过属性列的第一个字符 (注意这里的不通过不是代表它不使用)
下图发现可以改变后缀,且不影响文件 (但最好不要做),这里也说明了 Linux 下文件的作用并不取决后缀,虽然不禁止使用,但是一般也不用
❓ Linux 下文件的作用并不取决后缀 ❔
这里把 T.c 文件改成 T 后,再编译
Linux 系统不关心后缀,并不代表编译器不关心 (gcc 是 Linux下的编译器),不要混淆了
▶ -n 用数字的 UID,GID 代替名称。(介绍 UID, GID)
▶ -F 在每个文件名后附上一个字符以说明该文件的类型,“*” 表示可执行的普通文件;“/” 表示目录;“@” 表示符号链接;“|” 表示 FIFOs;“=” 表示套接字(sockets)。(目录类型识别)
比较少用,因为后面有其它方法可以看文件类型
▶ -r ,对目录反向排序
▶ -t ,以时间排序
▶ -s ,在文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
▶ -R ,列出所有子目录下的文件。(递归)
▶ -1 ,一行只输出一个文件
2、pwd指令
语法:pwd
功能:显示用户当前所在的目录
常用选项:无
⚠ 注意
1️⃣ root、test1、test2、test3 都是目录,类似于文件夹
2️⃣ / 是路径分隔符 ,注意区分 windows 下是 \
3️⃣ 第一个 / 是根目录
3、cd指令
(windows下) 左键双击 = (linux下) cd + ls
Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。多叉树中非叶子节点一般是目录,叶子节点一般是文件或者是空目录。
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下
常用选项:无
❓ 绝对路径 || 相对路径 ❔
💨小结:
绝对路径对应的文件一直可以找到,一般是系统或者软件的配置文件中使用
使用简单,只限当前路径,一般是在命令行中使用
❓ 为什么通过路径能标识 (唯一) 一个文件 ❔
一个节点可能会存在多个子节点,但是任何一个节点它只有一个父节点,所以多叉树中路径具有唯一性
❗ cd除了加目录名,还有一些别的用法 ❕
▶ cd . . :回到上级目录
▶ cd - :跳转最近操作的路径
▶ cd ~ :进入当前用户的家目录 (登录云后,默认所处的路径)
4、touch指令
语法:touch [选项]… 文件…
功能:touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
▶ 文件
touch 一般只能新建普通的文件,如果是新建一个存在的文件,那么会更新这个文件的时间
❗ 对于时间 ❕
stat 命令可以查看文件的很多属性,包括时间
其中 Access 是最近访问的时间;Modify 是文件内容修改时间;Change 是文件属性修改时间
▶ -a 或 --time = atime 或 --time = access 或 --time = use ,只更改存取时间
▶ -c 或 --no-create ,不建立任何文档
▶ -d ,使用指定的日期时间,而非现在的时间
▶ -f ,此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题
▶ -m 或 --time = mtime 或 --time = modify ,只更改变动时间
▶ -r ,把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
▶ -t ,使用指定的日期时间,而非现在的时间