前提引入:历史上先出现的键盘还是鼠标?
答案:键盘
✨所以刚开始的时候绝对没有图形化界面,因此操作系统刚开始兴起的时候绝对没有图形化界面,因为当时没有鼠标。
✨因为没有图形化界面,只有键盘,决定了操作系统早期进行交互时只能是指令操作。后来随着乔布斯和比尔盖茨将图形化界面版的操作系统推向全球。
✨世界上第一款鼠标
✨图形化界面和命令行操作本质是一样的,都是对操作系统进行直接或间接的操作的。
文章目录
前言
一、常用指令入门
登录上linux想知道当前在哪个目录下 使用指令pwd
看一下当前目录下有什么文件 使用指令ls
想要看到目录下文件的更详细的信息 使用 ls -l 指令
制作一个文件夹(用linux的话术说是目录) 使用 mkdir [目录名] 指令
进入到其他目录下 使用cd [目录名] 指令
二、指令详解
1.touch指令(作用:创建文件/更改时间)
用法
(1)创建文件
新建一个文件夹是为了进入的,为了在里面创建普通文件的
新建一个文档,相当于新建一个记事本,里面可以写简单的东西
可以一次创建多个文件
touch test1.txt test2.txt test3.txt test4.txt
(2)更改时间
linux获取文件的时间
注意:
touch+不存在的文件名:新建一个不存在的文件
touch+已存在的文件名:对应的ACM时间全部被更新
2.ls指令(显示该目录下的所有子目录与文件名)
ls 只查看文件名
ls -l 列出当前目录下的所有子目录与文件更多的属性信息
✨小常识:新建一个空文件,这个文件要不要占据磁盘空间?
一个文件没有内容,大小确实为0
但是一个文件有名称,修改日期,类型,大小。这些叫做文件的属性。
🧨属性是数据吗?
文件的属性在宏观上是数据。比如文件名是字符串,大小是整数
文件的属性也是要保存在计算机上的。
🎐文件=内容+属性
无论是内容还是属性,在计算机看来本质上都是数据
文件在磁盘或硬盘上保存,也就是文件的内容和属性在磁盘硬盘上保存
✨解答:新建一个空文件,这个文件要占据磁盘空间🎃对文件的操作,无非就分为:
对内容的操作
对属性的操作
所以ls -l是查看文件的相关属性
ls -l -a 列出目录下的所有文件,包括以.开头的隐含文件
也可以写成 ls -la
✨在linux中以.开头的文件称之为隐藏文件
✨ls -l不显示隐藏文件
.表示当前所在目录
. .表示上级目录(也就是当前目录所在的路径)
cd . . 进行目录的回退
./a.out 执行程序(.表达的意思是找到并执行当前路径下的程序,名字叫a.out)
我们用的指令,本质其实就是可执行程序(C\C++\其他程序写的)
指令包括工具和可执行程序,本质:就类似于我们写的可执行程序
ll是ls -l的别名 linux中允许给指令起别名
3.cd指令
用法:
(1)cd 目录名
(2)cd … (进行上级目录的回退)
/ 在linux中是linux下的分隔符,\ 在windows中是路径分隔符
(3)cd 绝对路径
(4)cd 相对路径
(5)cd ~ (进入当前用户对应的家目录,也就是当前是谁在linux下使用这个目录)
linux下不同账号下的家目录
(1)root账号下的家目录是/root
(2)普通用户账号下的家目录是/home/zhm
(6)cd -(返回当前目录路径的上一次目录路径)
该图注释:
(1)/ 是根目录
(2)一个目录里可以放多个目录,目录中的目录还可放多个目录,所以linux的目录结构本质是多叉树结构
(3)Linux当中所有的非目录文件一定是linux多叉树目录中的叶子结点
(4)所有的叶子结点可能是普通的文件或者是空目录
(5)路上节点(从二叉树树顶深度优先往下走)中的非叶子节点一定是目录
疑问:
1.我们为什么要采用路径的方式找到一个文件呢?如何理解?
一定会存在多个文件,找文件必须采用唯一标识文件的方式,那就是通过路径标识的
2.为什么是唯一的?
一个目录可以放很多目录,一个结点可以放很多结点。一个子结点照样也可以有很多结点,但是任何一个结点都只有一个父结点。所以从根结点往下找路径是唯一的。
区分绝对路径和相对路径
针对下面这个目录结构
linux中表示一个文件的路径方案:绝对路径和相对路径
绝对路径:从根目录开始一直到要找的叶子结点叫做绝对路径
相对路径:相对当前位置找路径
注意
(1)绝对路径:不用随意更改,一直是有效的(一般在配置文件中使用)
(2)相对路径:相对当前的位置,虽是唯一的,但是范围是有限制的有效范围(手写,比如命令行)
举例:
绝对路径表示:比如/home/bit/test.c
相对路径表示:比如当前所在位置是dev,表示test.c的相对路径为…/home/bit/test.c
4.mkdir指令
作用:
创建目录
用法:
(1)mkdir 路径 名字 (在指定的路径下创建该名字的目录)
(2)mkdir 名字 (在当前路径下创建该名字的目录)
(3)mkdir -p dd/dd1/dd2/dd3 创建一串目录
补充解释:tree dd意思是以树状结构,以dd为入口,旗下所有的叶子结点全部显示出来
如何在系统中安装tree命令?
(1)如果是root用户 yum install -y tree
(2)如果是普通用户,
指令如下:
su (把自己变成root用户,输入密码)
whoami (看一下当前用户是什么,如果是root,执行下一步)
yum install -y tree
5.rmdir指令和rm指令
用法:
(1)rmdir 目录名 (只能删除空目录)
(2)rm 选项 文件名 (rm指令可以删除文件,也可以删除目录,目录为空可以删除,目录不为空也可以删除)
选项有:
-f 删除不需要提示,直接删除
-i 删除前注意询问确认
-r 删除目录及其下所有文件
危险指令
如果是root用户,危险指令rm -rf /
这条指令将系统中的各种库,指令,配置文件,软件,操作系统预装的软件…一键删除,意味着linux要重装,但不代表把linux系统中所有文件都删除,比如正在使用的文件即使是root也无法删除
处理方法:如果是云服务器的话,在对应的网页后端点击重装系统
6.man指令
作用:
查指令和C接口
用法:
(1)man 手册编号 命令
(2)man linux中的指令
7. 小的文本编辑器nano
8.cp指令
作用:
(1)拷贝文件或目录
拷贝文件
cp 源文件或目录 目标文件或目录
拷贝整个目录
✨指定名称
cp -r 源目录 目标目录指定名称
(test目录及其子目录一定构成树结构,在拷贝时要保证递归拷贝,用-r将test拷贝到指定名称的目录)
✨不指定名称
(2)拷贝时对文件进行重命名
cp 源文件或目录 目标文件或目录/重命名的名字
用法:
(1)cp 源文件 目标文件
(2)cp 源文件或目录 目标文件或目录/重命名的名字
(3)cp -r 源目录 目标目录指定名称
(4)cp -r 源目录 目标目录不指定名称
(5)如果拷贝时不想有任何提示,可以加上-f选项
cp -rf 源文件/目录 目标文件/目录
9.mv指令
作用:
(1)将文件剪切到另一个新目录中
(2)将文件重命名
用法:
mv 源文件 目标
目标是目录,下面没有指定的文件或者文件夹,叫剪切
目标是普通文件名,就是重命名
目标不存在,把它当做重命名
示例:
10.cat指令
作用:
打印普通文件中的内容
用法:
(1)cat单独出现,默认是从键盘文件读取内容,退出用ctrl+C
(2)cat [选项] 文件名:从文件中读取内容
[常用选项]
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行(如果有多行空行,打印时将多行空行打印成一行空行)
(3)cat <文件名
<叫做输入重定向(本来应该从键盘文件中读入数据,变成了从指定的文件中读取对应的数据)
✨重点补充:
(1)
指令中的>是输出重定向,它所做的工作如下:
🎐新建一个文件
🎐本来应该显示到显示器的内容,写入了文件中,这个操作叫做输出重定向
(2)文件=内容+属性
(3)理念:linux下一切皆文件!
向显示器打印–>向显示器写入
从键盘读取数据–>从键盘读入
这里的显示器,键盘都是文件
向显示器文件写入:
(4)输出重定向的特点:
每次写入到文件之前,要先清空原始文件中的内容
如果文件只以写的方式打开,打开之前这个文件是先被清空的,后续的操作都是在被清空的基础下
注意:打开文件内容不一定会清空文件内容,以w方式打开会清空,以a方式打开不会清空,会追加文件内容
(5)利用输出重定向可以做什么?
🎐创建一个空文件
🎐清空文件内容
(6)追加重定向 >>
就是把文件打开,不清空里面的内容,写入时在文件的结尾写入,不断让文件的内容增多。
(7)默认程序运行的时候,会打开三个输入输出流:
标准输入:键盘
标准输出:显示器
标准错误:显示器
以上对应的设备一定以文件的形式呈现出来。
(8)重定向既修改了文件的内容,又修改了文件的属性
11.tac指令
作用:
从文件的尾部向前去打印,倒着去看文件
用法:
tac 文件名
示例:
12.more指令
作用:
查看大文件内容
用法:
more [选项] 文件名
常用选项:
-n 对输出的所有行进行编号
-q 退出more
注意:
回车键可以下翻,但是不可以进行上翻操作
13.less指令
作用:
查看大文件内容,less与more类似,但使用less可以随意浏览文件,而more只能下翻不能上翻,而且less在查看之前不会加载整个文件。
用法:
less [选项] 文件名
常用选项:
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串 向下搜索字符串的功能
?字符串 向上搜索字符串的功能
14.head指令
作用:
只看文件的开头,默认是开头前10行
用法:
head -n 文件名
n根据要显示的行数更改相应的数字
15.tail指令
作用:
只看文件的末尾,默认是末尾的后10行
用法:
tail -n 文件名
n根据要显示的行数更改相应的数字
如何拿到文件内容的某个区间行(比如一个大文件的500-510行的内容)?
🎐方法1
先提取到文件的前510行
head -510 big.txt
把前510行刚打印的文件写到临时文件中
head -510 big.txt>tmp.txt
然后把临时文件的后10行拿到
tail -10 tmp.txt
🎐方法2
先截取文件前510行,将指令结果交给下个指令截取后10行
head -510 big.txt | tail -10
这个竖划线叫管道,这里的管道文件相当于方法一中的临时文件
✨在Linux中,将多条具有输入输出能力的指令用管道 | 连接起来,形成一个类似于流水线的工作
16.wc指令
用法及作用:
wc 文件名 :统计一个文件有多少行数和字符数
wc -l 文件名 : 统计一个文件的行数
示例:
17.uniq指令
用法及作用:
uniq 文件名 : 对相邻的信息进行压缩和去重
(意思是相邻的多行相同的内容合为一行)
示例:
18.sort指令
用法及作用:
sort 文件名 : 对文件内容直接做排序
将文件所有相同内容进行去重:先排序后去重
19.date指令
作用:
date指定格式显示时间
用法:
date+%Y-%m-%d_%H:%M:%S
使用者可以设定想要显示的格式,格式设定为一个加号后接数个标记,标记列表如下:
%Y 年份
%m 月
%d 日
%H 小时
%M 分
%S 秒
时间戳
(1)时间转换为时间戳:date +%s
(2)时间戳转换为时间:date -d@时间戳
可以控制转换为时间的格式:
date +%Y-%m-%d_%H:%M:%S -d@时间戳
(3)时间戳:是从格林威治的1970年1月1日的午夜0点开始经过的秒数,这是一个线性增长的数字,时间戳具有唯一性。
20.cal指令
作用:
用来查看日历等时间信息
用法:
cal [选项] [年份]
常用选项:
-3 显示系统前一个月,当前月,下一个月的日历
示例:
cal 2023
21.find指令
作用:
查找文件
用法:
find 路径 -name 要查找的指令或者文件名
22.grep指令
作用:
基于文件内容对行进行过滤
用法:
grep [选项] ‘要搜索的字符串’ 文件名
在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所有大小写视为相同
-n:顺便输出行号
-v :反向选择,显示出没有要搜索的字符串的行的内容
✨文件名处可以写多个文件名,代表在多个文件中搜索,查询结果前会显示文件名,当只在一个文件中搜索时,查询结果不显示文件名
✨上下键可以对历史指令查看。
✨对历史指令进行搜索:
ctrl+R
出现
输入要搜索的指令内容
搜索完毕后按左右键进行局部修改
不想用按ctrl+C
✨ps ajx 查看系统中所有运行的进程
ps ajx | grep sshd 把系统中的sshd任务调出来
✨history 可以查看所有历史指令
23.which指令
作用及用法:
(1)专门用来查指令
which 指令
(要想知道指令在哪里安装着)
(2)可以用which快速地在linux当中直接找到该指令所在的linux目录是什么,会以绝对路径的方式显示指令的位置以及指令的信息。
注意:
which是基于文件名的操作
24.whereis指令
作用:
用来查找包含关键字的文档,查指令
(查指令会查包含指令的可执行程序和压缩包)
✨whereis是基于文件名做搜索
25.zip和unzip指令
什么是打包和压缩
打包: 把所有的东西放在一起,也就是把多个文件合为一个文件
压缩: 把所有东西按一定算法减小体积
为什么要打包压缩
打包是为了防止丢失
压缩是为了减小体积,方便网络传输
如何打包和压缩
zip 压缩文件名.zip 目录或文件
(功能:将目录或文件压缩成zip格式)
✨注意:-r 递归处理,将指定目录下的所有文件和子目录一并处理
如何解压
(1)unzip 压缩包名 :会解压到当前路径
(2)unzip 压缩包名 -d 指定路径 :会解压到指定路径
26.tar指令
作用:
打包/解包,不打开它,直接看内容
用法:
(1)打包并压缩
tar -cvf test.tgz ./*
-cvf是选项,test.tgz是tgz类型的压缩包,最后是要打包压缩的文件或目录的路径
(2)解压并解包
tar -xzf test.tgz
-xzf是选项
(3)解压到指定路径
tar -xzf test.tgz -C 指定目录
[常用选项]
-c 建立一个压缩文件的参数指令
-x 解开一个压缩文件的参数指令
-z 是否同时具有gzip的属性?即是否需要用gzip压缩?
-f 使用档名,请留意,在f之后要立即接文档名,不要再加参数
-C 解压到指定目录
27.bc指令
作用:
一般结合管道进行数据计算
用法:
echo “1+2+3” | bc
28.uname指令
用法及作用:
(1)uname -r
只查看当前体系结构和内核版本
(2)uname -a
详细输出所有信息,依次为内核名称、主机名、内核版本号、内核版本、硬件名、处理器类型、硬件平台类型、操作系统名称
29.重要的几个热键
[Tab]按键
具有命令补全和档案补齐的功能
[Ctrl+c]按键
让当前的程序停掉
[Ctrl+d]按键
按一次 退出登录
按两次 退出XShell
30.shutdown指令
作用:
关机
用法:
shutdown [选项]
常用选项:
-h 将系统的服务停掉后,立即关机
-r 再将系统的服务停掉后就重新启动
-t sec (-t后面加秒数,也就是过几秒后关机的意思)
31.拓展命令
安装和登录命令
login
shutdown
halt
reboot
install
mount
umount
chsh
exit
last
文件处理命令
file
mkdir
grep
dd
find
mv
diff
cat
ln
系统管理相关命令
df
top
free
quota
at
lp
adduser
groupadd
kill
crontab
网络操作命令
ifconfig
ip
ping
netstat
telnet
ftp
route
rlogin
rcp
finger
mail
nslookup
系统安全相关命令
passwd
su
umask
chgrp
chmod
chown
chattr
sudo ps
who
其他命令
tar
unzip
gunzip
unarj
mtools
man
unendcode
uudecode
总结
linux中的常用指令就分享到这里啦,如果对友友们有帮助的话可以点赞收藏博客,关注后续的Linux专栏学习内容哦~✨
版权归原作者 蛇喰keying. 所有, 如有侵权,请联系我们删除。