目录
ls指令:
1、ls:
2、-l:
文件 = 文件内容 + 文件属性
3、-d
4、-a:
pwd指令:
路径:
路径存在的意义:
cd指令:
绝对路径:从根目录开始定位一个文件
相对路径:
用途:
cd指令的快捷方式:
家目录:
whoami指令:
作用:
注:
touch指令:
编辑 stat指令:
mkdir指令:
tree指令:
tree指令的安装(root账号下):
rm/rmdir指令:
" * "的用途:
man指令:
which指令:
指令的本质:
ailas指令:
echo指令:
Linux设计哲学:Linux下,一切皆文件!!!
echo '字符串' >文件名:"输出重定向"
echo '字符串' >>文件名:"追加重定向"
cat<文件名"输入重定向":
cat指令:
tac指令:
cp指令:
注:
选项:
mv指令:
more指令:
日志文件:
功能:
缺点:
less指令:
head指令:
tail指令:
应用:
管道(|):
date指令:
时间戳:
cal指令:
find指令:
whereis指令:
grep指令:
应用:
nano指令:
top指令:
zip/unzip指令:
打包压缩:
语法:
选项:
安装:
不同系统的压缩文件互传:
tar指令:
bc指令:
uname指令:
lsb_release指令:
history指令:
关机指令:
reboot指令:
命令行中的热键(常用按键):
1、TAB按键:
2、CTRL+C键:
3、CTRL+D键:
4、CTRL+R键:
5、!+命令行中某个字符:
ls指令:
语法:ls [选项] [目录名/文件名]
功能:列出当前所处目录所有文件
根据不同选项,所列出文件信息有所不同
1、ls:
单一一个ls,就是默认列出当前目录下所有文件名
图片中的pwd指令是用来查看用户当前所处在哪个目录下
2、-l:
该选项的作用是,列出列出当前目录下所有文件的详细信息
文件 = 文件内容 + 文件属性
根据这里的文件详细信息可得,里面有的文件内容为空,但它仍然在磁盘空间中占据空间
在这里就要扯出一个理论知识:文件 = 文件内容 + 文件属性
所以对文件操作就分为两种:
1、对内容做操作
2、对属性做操作
3、-d
ls -l -d 目录名:查看目录本身
就只表示该目录信息,不进入目录里
例:根目录信息:
4、-a:
这个选项的功能和-l差不多,但是它还可以显示当前目录下的隐藏文件,以及当前目录和上一目录文件
在图中我们就可以知道
1、在Linux中以点开头的文件就是隐藏文件
2、" . "在Linux系统中单一出现就表示当前目录文件
3、" .. "在Linux系统中单一出现就表示上一目录文件
5、在其中以"d"开头的是目录文件,而以"-"开头的是普通文件
我们可以用" ls -la " 指令来对" . "和" .. "进行查看
由pwd指令可知,当前我们所处的目录文件为self,对" . "进行查找就是上图所示,那再对self这一目录文件进行查看,就可得:
两张图中内容都相同,就可证明" . "就表示当前所处目录文件
" .. "证明过程和" . "相同:
在这里讲到当前目录文件和上一目录文件的表示方式,是为了给cd指令的讲解做铺垫,下文就会讲到
注:
ls指令还有很多选项及用法,在这里因为是初学者就不过多缀叙,会在后面的指令讲解中穿插讲解
pwd指令:
语法:pwd(就单一一个pwd,后面不需要加什么文件名)
功能:用来查询用户当前所处目录
在这里我们就需要涉及一个新概念:路径
路径:
在我们的Windows下要查看文件所在位置,就会出现一条这样的"地址":
这便是一条路径,在Windows中用"\"来作为路径分隔符,而在Linux系统中是用"/"作为路径分隔符
路径存在的意义:
在于标识文件的唯一性和定位目标文件
而这个路径存在的意义就引出下一个指令:cd
cd指令:
语法:cd 目录名
功能:跳转到指定目录下
前文说到的当前目录和上一目录,就在这里有更具体的使用
cd .:去当前目录
cd ..:去上一目录
使用这种方法,我们就可以一直往上寻找,这就叫做路径回退
但是,路径回退有限制,回退到一定程度就无法回退了,这时就达到了根目录了
这里根目录指的就是Linux的目录结构的根目录
每一条路径的第一个"/"就是根目录(在这里我们的账号是root(管路员账号))
使用cd+".."来实现路径回退,在这里我们其实就会发现它和递归是相似的:从子结点回到父结点
更可以从这个根目录的结构可知:根目录就是根结点,它下面有许多子结点,它的结构就是一个多叉树
由树状结构可知:每一个路上节点都是目录,而叶子结点就是空目录或者普通文件
根据这个树状结构我们就可以进行目录的跳转,而跳转的方式也分为两种:
绝对路径:从根目录开始定位一个文件
例:
在这里就涉及到一个理论知识:唯一性
其实就是:任何一个节点都只有一个父结点
注:
这种方法就需要将完整的的路径给写出来,那就需要将完整路径给记下来,在文件很多的时候就会比较麻烦
相对路径:
在我们需要查找同一个目录下的另一个文件时,就可以用相对路径:只需要用到".."跳转到上一目录下就能很快找到,要去的目录
相对路径中的'相对"是指:相对于当前所处路径
不同于绝对路径只有一条,相对路径有多条,但它也有唯一性:
图中1途径:从2文件回到rc.d就符合唯一性的条件:任何一个结点都只有一个父结点
2途径就符合绝对路径,也就有唯一性
用途:
绝对路径:配置文件中写入某些文件的配置路径
相对路径:命令行操作时会用到(不需要写明根目录)
cd指令的快捷方式:
1、cd -:跳转到上一次所处路径
2、cd ~:跳转到当前用户的家目录
家目录:
指定用户首次进入系统所处路径
例:管理员账号的用户名就是root,家目录就是:"/root"
whoami指令:
表示当前用户名
作用:
提供默认所处路径,后续操作都在自己的家目录下去做
注:
Windows也有自己的家目录,因为它也是多用户操作系统
Linux中新建的用户放在home目录下
touch指令:
语法:touch [选项] 文件名
功能:
1、创建普通文件:touch 文件名(这种方法不常用)
2、修改/更新文件时间:touch 文件名(已存在)
选项:
-c:统一更新"ACM时间"/在正常情况下只修改Modify时间(根据系统不同,改法不同)
-m:修改Modify和Change时间
-a:修改Access和Change时间
stat指令:
语法:stat 文件名
功能:查看文件属性
文件在操作时由三个时间("ACM时间"):
1、Access时间:访问时间
2、Modify时间:文件新建时间
3、Change时间:属性修改时间
mkdir指令:
语法:mkdir [选项] 目录名
功能:创建目录文件
若我们要创建一条路径时:mkdir -p d1/d2/d3
tree指令:
语法:tree 目录名(也可以用"."和"..")
功能:查看当前目录下文件,并以树状结构展示
tree指令的安装(root账号下):
Ubuntu系统:apt install -y tree
centos系统:yum install -y tree
rm/rmdir指令:
rmdir是一个和mkdir相对应的指令,mkdir是建立目录,而rmdir是删除目录
常用选项:
-p:当⼦⽬录被删除后如果⽗⽬录也变成空⽬录的话,就连带⽗⽬录⼀起删除
我们一般不适用rmdir指令来删除文件,而用rm搭配不同选项,来实现不同删除功能
rm 命令可以同时删除⽂件或⽬录
语法:rm [选项] 文件名
我们在使用该指令时,如果不加其他选项的话,系统会提示我们是否要删除
常见选项:
-f:直接删除文件,系统不做过问(强制执行)
-r :用于删除目录文件,因为目录结构是树状结构,所以它的删除就会用到递归删除
注:
1、在-r后面加上f就能实现直接删除目录
2、切记不能直接删除根目录,删除了的话,系统就也被删除清空,就需要重装系统
3、删除当前目录下所有文件:rm -rf *(这条指令要慎用)
" * "的用途:
可以用于ls指令中:ls *.c -l:查找当前目录下以.c结尾的所有文件
可以用于touch指令,用于新建多个普通文件:touch file{1..100}.txt(建立100个以.txt结尾的file文件)
如果在普通用户账号下删除文件要有提示:rm -i 文件名
man指令:
语法:man [选项] 指令名
功能:查找各种指令
这个指令就相当于是Linux中的一个字典
进入这个指令后,如果想要退出就直接按"Q"键
man在查找指令,会根据给出的章节来查找(不同系统会有差别)
which指令:
语法:which 指令名
功能:查找指令所在路径
所有的指令都存放在Linux系统下的"/usr/bin"路径下
指令的本质:
命令/指令的本质:就是Linux指令目录下("/usr/bin")的可执行文件
当我们在linux中写了一个自己的程序,因为每一个可执行程序都存放在一个特殊目录下,所以要执行这个程序就需要用"./"+程序名,如果直接执行,系统就会默认在"/usr/bin"下寻找
所以说我们使用的命令都是在程序员写好的可执行程序/脚本被放在系统指定路径下("/usr/bin")
所谓的电脑安装软件,其核心也是把目标软件拷贝到系统认识的路径下
Linux上的指令==Windows上的软件==手机上的app
ailas指令:
语法:ailas 指令名 = '别名'
"ll"的本质就是"ls -l"取别名
echo指令:
语法:echo '字符串' >/>>文件名
功能:将后面接的字符串在系统中回显出来
当输出字符串为空时,不代表里面没有内容,而是表示换行:''=='\n'
Linux设计哲学:Linux下,一切皆文件!!!
上面的将字符串回显在显示屏上这一行为,在Linux视角下可以转换为向显示器文件写入字符串
从键盘中读取数据到文件中这一行为,在Linux视角下可以转换为从键盘文件里面读取内容
终端也是文件:
终端是文件,那显卡也可以是文件
这些都是转换为对文件的理解
echo '字符串' >文件名:"输出重定向"
把原本要写入显示器文件的字符串给写入指定文件中,这一行为叫做:"输出重定向",也就是在输出的时候给重新定了个方向
特点:每次进行输出重定向时,都会将文件中原有内容清空,从而重新写入新内容
>文件名(这里中间没有空格):对指定文件清空内容/当文件不存在时,就会建立这个文件
所以,我们一般用这方式建立普通文件
echo '字符串' >>文件名:"追加重定向"
功能:向文件中追加内容,不会清空原有内容
cat<文件名"输入重定向":
向指定文件中输入内容
cat指令:
语法:cat [选项] 文件名
功能:打印文件内容
常用选项:
-n:对输出文件内容的所有行进行编号
-b:对输出文件内容的所有行(除却空行)进行编号
-s:把文件内容中多行相邻的空行压缩为一行
tac指令:
功能:将文件内容逆向输出
该指令没有cat指令的选项
cp指令:
语法:cp [选项] 文件1 文件2
将文件1拷贝到文件2中,文件1和2可以是普通文件,也可以是目录文件
注:
在拷贝过程中,还可以给文件1进行重命名为文件2(当文件2不存在时,目录文件也是可以的)
选项:
-r:递归处理,将目录文件整体拷贝过去
-i:在文件1和文件2重名时,会发生覆盖,加上这个选项,系统就会提醒用户
-f:会强制进行复制,不会提醒用户
mv指令:
语法:mv 文件1 文件2
功能:
1、对文件1进行重命名为文件2(普通文件和目录文件都可以)
2、剪切,当文件2存在时,就会将文件1剪切到文件2,在这个过程中也可以进行重命名
more指令:
日志文件:
一种巨大的文本文件,一般用于大型程序中,用于记录程序的运行情况
cat和tac指令只能用于xiaowenjian和配置文件的查看,所以就需要新指令来查看大型文件
功能:
对大型文件进行按行查看
缺点:
只能进行向下翻找,不能向上找,所以一般不用该指令查找
less指令:
语法:less [选项] 文件
功能:对大型文件进行按行查找,可以进行上下翻找
less模式中:
q键:退出less模式
/: :搜索含有该字符串的行
n键:在搜索到含有第一个该字符串的行后,跳转到下一个含该字符串的行
head指令:
语法:head [参数n] 文件
功能:可以查看文件中任意前n行,如果没有表明n为多少,默认为前十行
tail指令:
语法:tail [参数n] 文件
功能:可以查看文件中任意后n行
应用:
当查找中间内容时:
head -n 文件 | tail -m
输出文件中(n-m+1)到n的信息
在这里就涉及一个新概念:管道(|)
管道(|):
管道其实就是一种文件,联合上面的例题,可以这样理解:
将”/var/log/messages“中前1010行数据传到管道这个文件中,再从管道文件中选出后面11个数据输出出来
这个文件的目的就是进行指令的集连,串联多个指令
date指令:
功能:能按照指定格式显示时间(系统提供的时间)
这里的格式中:
1、+是不能省略的
2、Y表示年份,m表示月份,d表示日,H表示小时,M表示分钟,S表示秒数
2、s表示时间戳
时间戳:
这个数字是从公元1970年1月1号0点开是计数的,不同时区开始计数的时间不同,我们中国以北京时间为主,所以就是在东八区,也就是从1970年1月1号早上8点开始计数
时间戳的应用主要是在日志文件中,计算机就是根据时间戳来查找信息的
cal指令:
语法:cal [参数] 年份
功能:用来显示公历日历
常见参数有:
-1:表示上一个月的日历
-3:表示上个月、这个月、下个月,三个月的日历
find指令:
语法:find 目录名 -name 文件名
功能:在该目录下查找该文件(按名字查找),这里我们就只讲解带有-name选项的用法
whereis指令:
查找程序的源、二进制文件或手册
grep指令:
语法:grep [选项] '要查找的字符串' 文件
功能:在文件中找到要查找的字符串并将其行打印出来
常见选项:
-i:忽略字符串大小写,进行查找
-v:查找不包含要查找字符串的行
-n:把包含要查找字符串的行号也给打印出来
应用:
在后面学习到的进程中会用来进行信息查找
nano指令:
功能:就是Linux中的记事本,将文件当作记事本来进行修改
要tuichunano模式就按CTRL+x键,在按y键,最后回车就退出了
安装该指令:
Ubuntu:apt install -y nano
cantos:yum install -y nano
top指令:
这个指令就是Linux中的任务管理器
常用选项:
-d:刷新时间间隔
-n:刷新次数
例:top -d 1 -n 5
这就是每隔一秒刷新一次,一共刷新五次,然后退出
zip/unzip指令:
打包压缩:
这是一个将多个文件数据合为一个文件的过程
它是通过相应算法来实现的
语法:
zip 文件2 文件1
将文件1打包压缩为文件2
unzip 文件2
将文件2解压为文件1,解压后文件名依旧为文件1
选项:
-r:递归处理,将目录文件整体打包压缩
-d:将压缩包解压到某个路径下
安装:
Ubuntu:apt install -y zip unzip
centos:yum install -y zip unzip
不同系统的压缩文件互传:
进行系统间的传送需要一个指令:lrzsz
安装:
Ubuntu:apt install -y lrzsz
centos:yum install -y lrzsz
1、linux->windows
步骤:
1、sz 文件名
2、这里就会跳出选择框,选择好传送到哪里就行,然后就实现了Linux传送到Windows
2、Windows->Linux
步骤:
1、rz,然后回车
2、就会跳出选择框,选择想要传送的文件就行,然后就完成了Windows到Linux的文件传送
3、Linux到Linux
步骤:
1、scp 文件 另一个用户名@另一个主机地址:要去的地址
2、将另一个用户账号密码输入就可以了
tar指令:
语法:
tar [选项] 文件2 文件1
功能:将文件1打包为文件2
tar [选项] 文件
功能:解压文件
选项:
-c:创建一个打包文件(不压缩)
-z:表示gzip压缩,文件名以.tar.gz/.tgz结尾
-v:显示文件打包压缩的过程
-f:后面接的文件必须是新建的
-x:解压缩文件
最常用选项:
-czvf:打包压缩文件
-xzvf:解压缩文件
注:选项前的"-"可以省略
-C:将压缩包解压到其他路径下
tar -xzvf 压缩文件 -C 其他路径
bc指令:
这个指令其实就是一个计算机
运用:
这种运用还能证明"|"是一个文件,因为bc指令的标准输入是键盘文件,而该运用中echo将'1+2'传入"|"中,再通过"|"传给bc,就证明"|"是一个文件
uname指令:
这个指令进行系统硬件的查看
选项:
-a:完全显示当前系统的硬件信息
lsb_release指令:
进行系统软件信息的查看
选项:
-a:完全显示当前系统的软件信息
history指令:
显示历史中使用的所有命令(最多显示1000多条)
因为博主学习到现在只用了这么多命令,所以显示的比较少
关机指令:
shutdown [选项]
选项:
-h:将系统的服务器停掉后,立即关机
-r:将系统服务器停掉后在重新启动
-t:-t后面加秒数,即【过几秒后关机】的意思
注:
如果指令后面没有加选项,就表示直接关机,而且CTRL+C终止不了该指令
Linux云服务器或未来使用的服务器,是永远不关机的
如果将云服务器关机了,就需要回到该云服务器官网中找到对应服务器中对应的实例重新开启
reboot指令:
重启指令
命令行中的热键(常用按键):
1、TAB按键:
具有命令补齐的功能
输入命令行中某个字符,按两次tab键就会将所有命令中含有该字符的命令显示出来
2、CTRL+C键:
终止当前指令或程序
3、CTRL+D键:
退出当前用户账号
4、CTRL+R键:
对历史命令进行搜索
5、!+命令行中某个字符:
会找到最近使用过含有该字符的命令,再按回车键就可以执行该命令了