目录
听说点赞的UU会撞大运哦!!!
基本指令:
ls指令:
cd指令:
makdir指令:
cat指令:
rm指令:
mv指令:
cp指令:
nano指令:
man指令:
cat指令:
more和less指令:
| :管道
date指令:
find指令:
grep指令:
zip和unzip指令:
tar指令:
sz和rz命令l:
uname指令:
shutdowm指令:
echo指令详解:
相关重要指令:
背景知识:
什么是文件?
路径分割符:
*符号:
.和..的含义:
相对路径和绝对路径:
什么是家目录:
指令的本质:
热键:
基本指令:
基本指令都是一样的格式:【指令】 【选项】 【目录/文件】
ls指令:
ls:罗列出当前路径下所有的文件名
ls -a:显示all(包括隐藏文件)
ls -l 显示更详细的文件属性内容包括文件/目录名 (简化为ll)
ls -d 【某个文件夹】:只查看目录文件属性,不打开内容
注意:
以d开头叫做目录文件
以-开头叫做普通文件
cd指令:
cd 文件名:跳转到该文件夹(change director )
cd - 转到我们最近一次所处的文件路径下
cd ~ 进入用户家目录
cd后面可以跟绝对路径,也可以跟相对路径
makdir指令:
mkdir 文件名:在当前路径下,创建一个新的文件夹(make director)
mkdir -p 文件路径:创建文件路径
cat指令:
cat:打印指定文件的内容
-n 文件名:打印带行号
-s:省略多个空白行为一行
rm指令:
rmdir 目录:删除文件目录,只能删除空目录(非空目录不能删除)
rm 普通文件:删除文件(如果是root用户下,就会比较谨慎,会问是否删除,回答y/n即可,不小心输错y和n,按ctrl就可以直接删除)
rm -f file:强制删除(不要再弹出询问)(falust))
rm -r dir:删除文件目录(r表示递归,这是递归式删除)
rm -rf dir/file:强制删除(不再弹出询问)
记住,最好不要把根目录给干掉了(但是云服务器随便搞,但是依旧)
如果将系统删除了,就不能恢复(只只能重装系统)
一般来说,我们大概率都会经历删除的事情,如果是在岗位,不小心删了,那就是直接向上级报告
因此,一旦有不确定的目录或者文件,宁可备份,不可删除
mv指令:
mv src源文件或目录 dst目标文件或目录:
1、对指定文件或者目录重命名
2、将指定目录下的文件或者目录,剪切到指定的目录下
3、mv src path/newname :在剪切的同时,顺便重命名
mv 文件路径 文件名字-backup :剪切文件到指定目录下(backup是备份的意思)
cp指令:
cp src dst(目录/带路径的文件名) :拷贝到指定目录
src如果是目录:src直接拷贝到这个目录下,但是只会有一个空目录
src如果是带路径的文件名:拷贝到指定目录,顺便重命名
如果是目录文件的拷贝操作:
cp -rf src dst :对整个src目录进行拷贝
src和dst都可以携带绝对路径或者相对路径进行拷贝
nano指令:
nano 文件(txt文件):跳转到txt文件书写
ctrl x -> y -> 回车:退出
编译执行:
gcc code.c
./a.out
man指令:
man 某个指令:查看指令
上下方向键进行上下滑动
退出:Q
man man :有9个手册(如果没有指定,查找顺序从上往下找)
1、可执行程序(man如果不指定命令来源,一般就会默认为这个手册中的指令)
2、系统调用
3、C语言库函数
4—9基本没用
cat指令:
cat filename:打开文件,将内容显示到显示屏文件
cat 回车:读取键盘输入的字符,原封不动的直接打印在显示屏上
cat默认会从键盘文件读取数据
< :输入重定向
cat < filename :原本cat默认会从键盘文件读取数据,打印到显示器文件;
但是,有了这个<输入重定向后,改变了cat默认读取数据的方向
变成不是从键盘文件,而是从指定的文件读取数据,输入到显示器
同时,读文件首先要打开文件,这里的会以r(读)的形式打开文件
cat /etc/redhat-release:查看操作系统版本
cat /proc/cpuinfo :查看cpu信息
cat /proc/meminfo:查看内存信息
more和less指令:
cat filename :查看文件内容,如果文件内容比较大,就会刷屏,不方便浏览
所以,使用more更合适
more filename:将屏幕打满,但是不刷屏,按回车可以进行逐行查看
同时,按/再输入行数,可以进行指定查看。但是more只能向下查找,不推荐使用这个方式查看
less filename:可以用来查看大文本,使用上下方向键上下逐行翻阅,同时也可以使用/进行指定查看
查文件的意义是查看文件日志,排查错误
head -number filename:提取文件的头部信息,number为前number行(默认为10行)
tail -number filename:提取文件的尾部信息,number为后number行(默认为10行)
| :管道
管道:资源传输,有入口出口。可以使用管道进行指令集联
例如:
head -n filename | tail m :先取文件内容前n行,再从该前n行提取后m行
date指令:
date +%Y %m %d %H %M %S :在屏幕打印年月日、时分秒
date +%s:时间戳
格林威治,1970 1 1 0点开始到现在的时间(方便时间统一,单调递增)
但是我们是东八区,北京时间,所以实际上是从8点开始
find指令:
find 文件路径 -opt(name) filename: 查找文件(opt为选项)
find / -name text.txt:从根目录开始,查找名为text.txt的文件
find是在树形文件系统的结构里查找的
grep指令:
grep :行文本过滤工具(只针对文本文件)
grep -n(带行数)“999”big.txt: 将big.txt文件内,行数包含999关键字的行数打印出来
grep -v(不包含999的)“999”big.txt: 打印不好含999关键字的行数
grep -i(忽略大小写)“999”big.txt:忽略大小写
三者nvi可以自由组合,一般来说,这种-n叫做option,即选项
zip和unzip指令:
1、什么是打包压缩?
缩小体积,占据磁盘空间比较小,下载快;不会轻易丢失文件
2、为什么要打包压缩?
方便网络传输数据
zip -r XXX.zip 目录 :对目录进行打包(-r递归式处理)
unzip XXX.zip 目录 :对目录进行解压
unzip XXX.zip -d /文件路径:解压到指定文件夹
如果你想压缩一个目录或者一个普通文件,只需要zip filename/dirname即可
如果你想压缩目录和普通文件一起,zip filename dirname即可,也就是说zip后面可以跟多个文件/目录
如果想压缩当前文件路径下所有的文件,无论是目录还是普通文件,直接zip filename *即可
也就是说,其实目录也是普通文件同等对待,目录就是一个文件而已
如果压缩/解压不指定文件路径位置,就会默认压缩/解压到当前文件目录下
但是注意,对目录的压缩,如果不带-r(递归),就只是压缩一个空目录而已,不会带目录下的内容
所以,如果要对整个目录整体的进行压缩,就加一个-r
tar指令:
压缩:
tar -czf test.tgz file1 file2.....:可以同时压缩多个文件,直接跟在后面即可(czf的含义:creat、zip、file)
creat的意思是:压缩首先要创建一个新的压缩文件。
zip的意思是:使用zip压缩算法
file的意思是:新创建的压缩包文件的名字是什么
新创建的压缩文件后缀名为tgz
后面跟着的是要压缩的文件/目录名
解压:
tar -xvzf file path(可写可不写,默认为当前路径)
-cvzf :加v表示显示压缩的过程(字母的顺序可以打乱)
解压到指定位置:tar -xvzf file -C path (大写的C)
sz和rz命令l:
sz file :可以传输文件从云服务器到windows本地电脑
rz 从本地电脑传输文件到云服务器上
同时,也可以支持云服务器之间进行传输:
scp(跨网络拷贝) file root@ip地址:path
scp XXX.tgz 用户名@另一台Linux机器的ip:path
不论是win之间还是Linux和win之间互传,都是以压缩包的形式进行压缩
下载rz/sz :apt install lrzsz
uname指令:
uname:检查当前计算机的体系结构
uname -r :查看当前操作系统的内核版本
前面的是内核版本 el7是centos 7 的release l7版本
x86:32位机器
x86_64(x64):64位机器
32位的软件可以在64位的环境跑,但是64不能在32位跑
shutdowm指令:
shutdowm -h :云服务器立即关机(但是云服务器强烈建议不要关机,永远不要关机)
shutdowm -r:系统服务停掉后重新启动
shutdowm -t sec(秒数):过几秒后关机
echo指令详解:
echo “hello Linux”:输出从重定向(在屏幕打印显示)
echo “hello Linux” > text.txt :1、创建文件、2、将本来应该显示在显示器上的数据,显示到文件中
echo > newfile.txt:创建新文件
> newfile.txt:创建文件
重要的是>这个符号、
什么叫做重定向?
在Linux设计理念中:一切皆文件
那么现显示器也是一个文件,相等的,所有的硬件都可以视为一个文件
而对任何文件来说,只有两种状态:读和写
那么,显示器设备 = 显示器文件
当我们对显示器文件进行写时,就是对显示器进行写,所以会打印到显示器上
而当我们把写进文件的方向改变为别的文件时,就不会写到显示器文件
所以,>叫做输出重定向
echo写入的特点是:先清空文件内容,再写入新的内容
> file :创建文件也是一样的,如果已经有了该文件,会清空原文件,再创建一个新的;如果没有源文件,就会创建一个新的空文件
因此,如果想要清空文件,可以使用>源文件名字的方式
为什么会清空文件呢?又或者为什么创建文件的时候会清空文件呢?
因为,要对文件进行输出,就首先要打开文件才能操作,打开文件操作完后还要关闭文件
而>就类似于C语言中的以W方式打开文件,此时先看存不存在该文件,如果有这个文件,就清空再打开;没有就创建一个
而追加>>就等同于以a方式(append追加)打开文件,在原来的基础上进行追加
这就是清空的原因
>>:追加重定向,不再清空源文件,而是在原文件的基础上增加
类似于以C语言文件操作中的以a方式打开文件一样,打开文件,不清空文件,而是在源文件的基础上增加内容
echo "内容" >> file:
相关重要指令:
whoami:查看当前账号
pwd:显示当前文件位置
clear:清屏
which 指令:打印出这个命令所在的文件路径
stat 文件名 :查看一个文件更详细的属性信息
tree 文件目录:以树状形式打印当前目录
cal (-3):显示公历(-3表示当前月前后三个月)
tac 文件名:逆着打印文件内容
touch > filename:在当前路径下创建一个普通的文件
bc命令:Linux下的计算器
centos yum指令安装:yum install -y 指令
wc -l file :查看文件内容总共有多少行
alias lisi = ‘ls -a’//给某个指令起别名(这里意思是将ls - a指令改名为lisi)
背景知识:
什么是文件?
文件 = 文件属性 + 文件内容
文件属性也是数据、数据就要保存
故而,对文件的操作,要么对属性进行操作、要么对内容进行操作
文件名左边的时间是文件创建时间或者最近修改时间
路径分割符:
/:Linux的路径分割符合
\:windows的路径分割符
1、在两个分割符之间的一定是一个文件夹
2、路径最末端一定是一个普通文件或者一个文件夹
*符号:
ls a * b :表示列出所有以a为开头,b为结尾的文件名,不论中间多少字符(*:表示通配符,匹配任意文件名)
例如:*.txt:任意名字的,以为txt为后缀的文件
当文件名或文件路径表示为*:可以表示当前路径文件夹下所有的文件
.和..的含义:
在linux中,以.开头的文件为隐藏文件
在任何目录下,都会默认有两个隐藏目录:. ..
. :表示当前路径
.. :表示上一级路径
所以:cd .. :表示进入上一级路径
为什么要有. 和 ..呢?
..实际上是上一级目录的指针,所以我们才能回退到上一级目录
也就是说,每一个子文件都包含一个指向其父文件目录的指针
.在当前路径下,比较方便直接引用找到某个文件(例如可执行文件)
相对路径和绝对路径:
首先,linux的整个文件目录结构是一颗多叉树
为什么文件路径必须是唯一性,因此同目录下不能存在相同文件名的文件
因为Linux的文件系统结构是一个多叉树,每一个叶子节点只有一个父亲节点
所以从任意一个节点往回推,回到根目录的路径是唯一的
从根目录开始往下的路径叫做绝对路径
根目录又是什么?
就是最顶部的那个目录
一般来说,/就是根目录
因为有文件路径,我们才能找到文件,找到文件,才能访问文件。
相对路径:从当前某个目录进行退回或者别的操作进行访问别的文件
为什么系统里有一个路径?为了系统层面标识文件的位置
什么是家目录:
windows和Linux都是多用户操作系统
桌面本质上是文件夹,当登录windows时:
1、确定用户
2、根据用户名找到用户目录下的桌面文件夹
3、将桌面文件夹设置为图形化界面
而当我们下载东西的时候,如果你不特别的规定某个文件路径,就会默认为用户家目录下的下载文件夹
也就是说,用户目录下包含所有的关于该用户相关的所有数据
root是超级管理员用户,默认家目录为/root
对于普通账号,默认家目录为/home/xxx xxx就是新建的普通用户名
当每一个用户首次登陆的时候,所处的路径默认为自己的家目录
指令的本质:
指令本质都是程序---指令、可执行程序
而程序就是文件,文件=属性+内容(二进制)
例如,安装和卸载实际上就是将可执行程序拷贝/删除到系统路径下
也就是说每一个指令都是一个可执行程序
怎么理解?
事实上,我们每一次执输入一个执行,就和我们使用windows下的双击某个应用一样(应用实际上也是一个可执行程序)
Linux有一个理念:
Linux一切皆文件得好处是:可以以统一的方式对文件/设备进行访问
所以终端其实就是显示器文件
热键:
断开链接:ctrl + D
全屏:ALY + 回车
ctrl + C:终止打印(凡是影响你指令操作的情况,直接无脑ctrl + C)
查看历史命令:上下键
tab(两下):命令补齐和档案补齐(列出所有相关的关键字指令)
Ctrl + d(两次):关闭
ctrl + r :搜索历史命令(输入历史命令的残缺片段,就会自动搜索相关历史命令)