【Linux】基本指令 · 上
操作系统是一款做软硬件管理的软件(是什么?)
操作系统的核心工作:通过对下管理好软硬件资源的手段,达到对上提供良好的(稳定 快速 安全)操作/使用环境(为什么要有?)
在计算机上的所有行为都会转换为硬件行为
我们所有的软件行为,都要自动向下贯穿计算机的软硬件结构
几乎所有的软件行为,都和操作系统直接、间接相关
Linux 操作特点:命令行、图形化界面 Windows 也是命令行、图形化界面
指令、图形化界面本质一样。指令更贴近操作系统
先有指令,再有图形(先有键盘,再有鼠标)
文件 = 文件内容 + 文件属性(文件的属性是数据,要存储)
文件操作 = 对文件内容的操作 or 对文件属性的操作
Linux 中,以 . 开头的文件叫隐藏文件
登录时,默认所处的 路径、目录 叫家目录
超级用户 root /root 是 root 用户的家目录
CentOS 系统中,所有普通用户,用户账号会统一放在 /home
一. 基本指令
基本功能
ls 指令:显示当前目录下的所有文件属性(只显示文件名属性)
显示结果:用空格分开的是一个一个的文件
什么是当前目录:
pwd 指令:显示当前命令行在进行操作时所处的目录在哪里
mkdir 指令:建立目录(make directory) <==> Windows 建文件夹
cd 指令:更改/进入目录(change directory) <==> Windows 双击进入文件夹
touch 指令:建立普通文本文件(不能创建目录)
路径分隔符:Linux:/ Windows:\
ls 指令
指令可以携带选项。选项让同一个指令表现出不同的行为,是指令的一种子功能(Windows 也有指令)
ls -l:显示文件更多的属性,简写为 ll(list 列表)
ls -a:显示所有文件,包括隐藏文件
ls -a -l ls -al ls -la 一样
. .. 是什么?
Linux 任何一个目录下都有这俩隐藏文件
.. 表示当前路径的上级路径 <==> Windows 回退
. 表示当前路径
. 存在的意义:帮助用户定位当前目录下的一个文件(举例现在看不懂)
显示文件列表时,在众多属性中,第一个列表的第一个字母:文件类型
d:是一个目录
-:文件是一个普通文件(后面再说)
目录也是文件
想查目录时,默认不是显示目录的属性;而是把目录内部的文件 及 内部更多文件属性显示出来
ls - d:将目录像文件一样显示,而不是显示它里面的文件信息
只显示 ShanXi 这个 目录 / 文件夹 自己的属性
ls -F:可视化的形式给每个文件后面带符号
带 /:文件是个目录
*:当前文件是普通的可执行文件
什么都没带:文本文件
通配符 * :可以匹配任意名称的文件
安装树:输入指令:yum install -y tree
pwd 指令
cd 指令
退到只剩一个 /:Linux 的根目录
证明:
蓝色那一行是 / 目录下的内容,我只想看 / 这个目录的属性:ls -ld /
在众多属性中,第一个列表的第一个字母是 d ==> 是个目录
一个目录,里面可以再放目录 或 普通文件
所以:Linux 的整个目录结构:一定是个多叉树的样子
它的叶子节点,一定是空目录 或 非目录文件;路上节点一定是一个非空目录
所有的对文件 或 目录的增删查改,本质都是对这颗多叉树的增删查改
定位一个文件,通常通过路径来进行定位。路径定位有唯一性,因为任何节点都只有1个父节点
从 / 开始定位到指定位置,具有唯一路径,叫绝对路径
以自己当前所处的路径为起始参照位置,来进行特定文件的定位,叫相对路径
我们所处的路径发生变化,可能相对路径就失效了
- 绝对路径往往比较长,但是不变,一般在一些固定场景,配置文件中使用
- 一般命令行输入,常用相对路径
想进入一个目录,可以采用绝对路径的方式
cd ~ 指令:直接恢复到自己刚开始登录时所处的目录
cd - 指令:回退到最近(上一次)所在的路径
touch 指令
创建一个普通文件,不能创建目录
mkdir 指令
mkdir -p:创建一串路径
rmdir 指令 && rm 指令
rmdir 指令:只能删空目录
rm 指令:直接删普通文件
rm test.txt:在 root 下会问是否确认删除。再输入 y 或 n;普通用户下不询问,想让你询问:rm -i
不想让你提示,我要强制(force)删除:rm -f
rm 不能直接删除目录。目录本身是递归形式定义的,所以删除要递归(recursion)的删除
rm -r:删除目录
太烦了,如果几百个,路程很长。
rm -rf:递归并强制删除(一定要慎重!!!)
man 指令
做开发时,Linux 是用C语言写的,提供的接口都是C,不可能全都记住。查官方文档,通过 man 手册来查指令
man 指令 可以更加详细的 查看某些指令对应的说明。按 q 退出
输入 man man,查看 man 手册,一共8章
1号手册:基本指令;2号手册:系统调用接口;三号手册:C语言
例如:输入 man printf 打开的是1号手册。这个和C语言的printf毫无关系
想看C接口怎么办?输入 man 3 printf
man pagenumber(手册编号) target(查的东西)
不指定编号,默认按手册编号顺序找。1号里没有在2号里找,通篇都没有 No manual entry for ...
cp 指令
向 test.txt 内部写入
echo 将后面跟的字符串原封不动的向显示器打印
echo "Hello Linux" > test.txt echo 字符串 > 文件名
现象 1. 没有在显示器显示;2. 而是数据被写入到目标文件中
输出重定向:把本来应该显示到显示器的内容,写入到文件中
cat 文件名:打印文件内容
cp 拷贝指令的基本用法
用法1:拷贝普通文件 cp src(源文件) dest(目标文件)
用法2:把它拷贝到上级路径下 cp src 相对/绝对路径
用法3:拷贝目录 cp -r src(源文件) dest(目标文件)
mv 指令
重命名:mv src(源文件) dest(目标文件)
剪切:mv 源文件 想去的路径 或 mv 源文件 想去的路径/目标文件
mv 源文件 目标文件 也可以被认定为剪切并重命名,因为:mv 源文件 ./目标文件
目录和普通文件一样,想把 dir1 剪切到上级路径并重命名为 newdir1
新名字一定不能和想去的那个上级路径中,已经存在的某个目录的名字相同
否则,就把想要改名字的目录,移动到这个目录(路径)下了
路径最后跟的目录后面带不带 / 都可以。前提:这个目录必须存在
Linux下没有垃圾桶,删除就找不到了
可以自己写一个垃圾桶(目录),对 rm 指令重命名,把 rm 指令用 mv 替换掉
未来想删文件,操作系统自动转换成 mv 指令
mkdir 垃圾桶
touch test.c
rm test.c ==> mv test.c 垃圾桶
本篇的分享就到这里了,感谢观看,如果对你有帮助,别忘了点赞+收藏+关注。
小编会以自己学习过程中遇到的问题为素材,持续为您推送文章