栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux 基本指令与概念

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux 基本指令与概念

文章目录
        • Linux历史基本概念
        • 创建用户
        • 删除用户
        • ls
        • who am i
        • pwd
        • nano
        • Linux的存储结构
        • which和alias
        • 当前路径和上级路径
        • stat
        • 绝对路径和相对路径
        • cd
        • cat和tac
        • touch
        • mkdir
        • touch 和mkdir总结
        • rm
        • mv(剪切命令)
        • cp
        • man
        • more
        • less
        • head
        • tail
        • cat,more,less,head,tail总结
        • echo
        • 输出重定向
        • 追加重定向
        • 输入重定向
        • 管道
        • 时间相关的指令
        • cal
        • find
        • grep
        • bc
        • zip(压缩)
        • unzip(解压)
        • tar
        • 打包和压缩的区别
        • uname
        • Linux中的热键
        • file
        • history

目标:学会Linux中常见的基础指令,对于不常用的指令,会给出使用的格式和功能。

Linux历史基本概念

相比于一些操作系统,Linux的出生时间较晚,但是其发展速度却非常之快,很大的一个原因就是Linux之父将Linux进行了开源。所谓开源就是开放源代码。成千上万的程序员都可以使用这个操作系统。从前操作系统是几千个人在发现和修改问题。开源以后全球的程序员一起发现问题,这样使得很多问题被暴露出来,也正是因为这些问题得以被暴露出来,Linux才得到了很快的发展。所以我们说,开源会使得程序更加安全。

在了解了一些基础概念以后,我们正式开始进行Linux的学习。
第一步:创建和删除用户

创建用户

在Linux中,和windows一样,用户也具有不同的等级。现如今我们只需要知道root用户和普通用户。
root用户就如同window下的超级管理员,其有着很高的权限。可以执行很多的功能。
但是这也会带来坏处,使用的不好就很容易使得操作系统挂掉。所以我们建议大家学习并使用普通用户。
格式:adduser 用户名字

创建一个用户以后我们需要为其设置密码(也可以不设置)。
ps::创建用户必须是在root用户下!
格式:passwd 用户名
ps::在输入密码的时候是不显示的,并且如果密码过于简单系统会提示是否使用,继续重新输入一次密码就好了。大家设置完密码可以保存到一个记事本里,避免后面忘记密码,并且将密码设置的复杂一点。

successfully说明创建成功了!

删除用户

ps::同样得在root用户下。
格式:userdel 用户名

ls

   ( 1 ) (1) (1)ls
格式:ls 文件名(默认是当前路径)
功能:以列表的形式显示当前路径下的文件和目录。

   ( 2 ) (2) (2)ls-l
格式:ls-l 文件名(默认是当前路径)
功能:以列表的形式显示当前路径下的文件和目录的属性

在理解了这个概念以后,我们也需要知道Linux中经常用的ll其实就是ls-l的别名。

   ( 3 ) (3) (3)ls-a
格式:ls-a 文件名(默认是当前路径)
功能:显示隐藏文件
在Linux中,.开头的文件是隐藏文件。
可以对比一下ll和ll-a的不同之处
ll

ll-a(多出来的文件即是隐藏文件)

剩余的命令,我们就不一一演示了,以表格的形式呈现给大家,大家在需要的时候查表就好。

后缀功能
-a列出目录下的所有文件,包括以 . 开头的隐含文件。
-d将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-k以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l列出文件的详细信息。
-n用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“
-r对目录反向排序。
-t以时间排序。
-s在文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R列出所有子目录下的文件。(递归)
-1一行只输出一个文件。
who am i

格式:who am i
功能:显示当前使用的用户

pwd

格式:pwd
功能:显示当前所处路径

nano

功能:Linux上自带的文本编辑器
格式:nano 文件名
如果大家的Linux没有安装nano,可以输入yum -y install nano进行安装。
接下来我们看看nano如何使用。
   ( 1 ) (1) (1)创建文件

   ( 2 ) (2) (2)输入内容。
ctrl+x退出,系统会问你是否选择保存,y保存,n不保存,再按回车就可以退出了。

   ( 3 ) (3) (3)运行内容
我们可以运行写入的代码:
C++的编译器需要选择g++
而c语言则是gcc。

在运行完这串指令以后,代码会生成一个.exe结尾的可执行程序a.out,执行这个可执行程序就可以运行代码了。

Linux的存储结构

在window中,我们的磁盘分为D盘,C盘,每个磁盘下又分为众多的目录和文件,通常一个目录下又有目录。
这种结构类似我们数据结构中学的多叉树。
在Linux下也是如此:


/称作根目录。同时又是路径分隔符。

which和alias

格式:which 指令
功能:查看指令的存储路径

在Linux中我们需要逐步加深一个概念,Linux的指令其实都是一个个文件,ls命令就是存储在/usr/bin下的一个文件。
这里有一句指令 alias ls='ls --color=auto'
在英语中,alias的意思是别名,alias的作用就是取别名,我们平常使用的ls其实是ls --color=auto。

当然我们也可以对指令进行取别名。
ps::我们自己取的别名只在本次登录有效。
格式:alias 别名='指令名'

当前路径和上级路径

在Linux中,
一个.表示当前路径。
两个.表示上级路径。
这里我们也就能理解为什么执行a.out的时候需要输入./a.out。
.是告诉编译器a.out属于当前路径下。/是路径分隔符

stat

格式:stat 文件名
功能:查看文件的时间
p4文件具有三个时间,分别是Access(创建时间),Modify(修改时间),Change(修改时间)。对于这三个时间大家有个了解就好,后面的博客我们会再提到。

绝对路径和相对路径


   ( 1 ) (1) (1)绝对路径
定义:必须是从根目录开始的一条路径。
如:我们要到pass,只有一条路/home/pass

   ( 2 ) (2) (2)相对路径
定义:相对某个路径下的一条路径,可以是任意路径下。
相对路径可以有很多条,重点是相对。
如:我们要到pass,相对路径就可以从dev/../home/pass,也可以home/pass…
总结:
相对路径是就是找一个参考点,然后从这个参考点出发前往目的地。
绝对路径就是只能从家里出发。

cd

   ( 1 ) (1) (1)cd
格式:cd 路径(绝对路径or相对路径)
功能:跳转到指定的路径下
同时cd可以搭配上之前学的..,cd··就是跳转到上级

同时cd不能进入空目录

   ( 2 ) (2) (2) cd -
-:-在Linux中根据路径实时更新,-记录着上次从哪一个路径来到用户当前的路径。
我们通过路径进行分析:

进入目录p8,继续跳转到目录p9,这时-记录的就是p8的路径
接着cd-跳转到p8,再跳转p9,又跳传到p8,这时是从p9跳到p8,-记录的就是p9的路径
   ( 2 ) (2) (2) cd ~
~记录的是当前用户的路径(不是当前路径,而是用户存储的路径。)
普通用户一定是在home/这个目录下的。

而root的~记录存储的一定是/root

在Linux的学习中,我们需要建立起一个概念,文件=内容+属性,我们在定位一个文件的时候,需要回答两个问题,我在哪里?和我是谁。我在哪里说明了我所处的路径,我是谁说明了我的名称。

cat和tac

一:cat
   ( 1 ) (1) (1)功能一
格式:cat
功能:显示键盘输入的内容

   ( 2 ) (2) (2)功能二
格式:cat 文件名
功能:显示文件的内容

   ( 3 ) (3) (3)功能三
格式:cat -n 文件名
功能:显示文件的内容的时候自动带上行号

二:tac
格式:tac 文件名
功能:逆序显示文件的内容
tac其实就是cat的逆序,两者名字相反。

touch

   ( 1 ) (1) (1)功能一
格式:touch 文件名
功能:创建普通文件

   ( 2 ) (2) (2)功能二
格式:touch 文件名
功能:更新文件的创建,修改时间
文件p4的创建时间是21.30,再次touch以后,时间变成了21.31。
ps::touch同一个文件,文件里的内容会被删除吗?
答案:不会。

后缀功能
-a 或–time=atime或–time=access或–time=use不改动modify时间。
-c 或–no-create不建立任何文档。
-d使用指定的日期时间,而非现在的时间。
-f此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或–time=mtime或–time=modify不改变access时间。
-r把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t使用指定的日期时间,而非现在的时间。
mkdir

   ( 1 ) (1) (1)功能一
格式:mkdir 目录名
功能:创建一个空目录

   ( 2 ) (2) (2)功能二
mkdir -p 目录一/目录二/目录三
递归创建连续的目录

touch 和mkdir总结

touch用来创建的是文件
mkdir创建的是目录,并且如果想要创建连续的目录需要带-p
两者的功能不同,需要注意区分。

rm

   ( 1 ) (1) (1)rm
格式:rm 文件名
功能:删除普通文件

   ( 2 ) (2) (2)rm -f
格式:rm -f 文件名
功能:强制删除普通文件,取消系统提醒

   ( 3 ) (3) (3)rm -r
格式:rm -r 目录名
功能:递归删除目录
r是递归的意思
ps:匹配-f使用更爽!

mv(剪切命令)

   ( 1 ) (1) (1)功能一
格式:mv 源路径 目的地路径
功能:将文件/目录剪切到目的地路径

   ( 2 ) (2) (2)功能二
格式:文件名一 新文件名
功能:对文件进行重命名

cp

一:拷贝普通文件
   ( 1 ) (1) (1)cp 文件名1 文件名2
格式: cp 文件名1 文件名2
功能:将文件1的内容拷贝到当前路径下的文件2中,如果文件2不存在,则会默认创建一个文件,并且目标文件的内容会被清空

   ( 2 ) (2) (2)cp 文件名 路径
格式:cp 拷贝的文件名 拷贝到的路径
功能:将文件拷贝到指定的路径

   ( 3 ) (3) (3)cp 文件名1 路径/文件名2
格式:cp 文件名1 路径/文件名2
功能:将文件1拷贝到指定路径并且更名为文件名2

二:拷贝目录

   ( 3 ) (3) (3)cp 目录名1 -rf 目录名2
格式:cp 目录名1 目录名2
功能:将目录1的内容拷贝到目录2,如果目录2不存在则会被创建,拷贝目录不会清空目标目录的内容。

man

格式:man 指令
功能:man 是Linux中的男人,用不会的指令都可以询问这个男人。
man 有 9个手册,默认查询的是1号手册。
如果想查询其他的手册:如查询3号手册:man 3 printf

输入q就能退出man指令。

more

格式:more 文件名
功能:显示文件的内容,如果文件的内容超出屏幕范围,默认显示当前屏幕的内容
more指令可以与cat进行对比,cat是显示文件所有的内容,more是显示一部分内容。
按回车键可以继续查看下面的内容。
注意:more不支持方向键上下翻阅,只能回车键继续向下看。
输入q就能退出more

more还具有查找功能
格式:/ 要查找的内容
ps::这个是在more模式下进行使用。
more会出查找的的位置开始进行显示。

less

格式:less 文件名
功能:显示查看文件的内容,和more一样,只会显示一个屏幕。
ps::less比more更加灵活,less支持上下键翻阅。
按q退出less模式

同样的,less具有查找功能
格式:/查找的内容
less会从查找到的位置进行显示。

head

   ( 1 ) (1) (1)head
格式:head 文件名
功能:查看文件的前10行

   ( 2 ) (2) (2)head -数字
格式:head - 数字 文件名
功能:指定查看文件的前n行

tail

   ( 1 ) (1) (1)tail
格式:tail 文件名
功能:显示文件内容末尾的10行


   ( 2 ) (2) (2)tail -数字
格式:tail -数字 文件名
功能:指定显示文件末尾的前n行

cat,more,less,head,tail总结

cat:cat独具有自带行号的功能 命令:cat -n文件名
more和less:less相对比more更加灵活,可以支持上下翻阅。支持指定行数显示。并且还具有查找功能。
head和tail:head和tail用于头尾的查询。同时支持指定行数显示。

echo

   ( 1 ) (1) (1)echo
格式:echo
功能:向显示器输出一个空行

   ( 2 ) (2) (2)echo " "
格式:echo "内容"
功能:将字符串的内容输出到显示器上

   ( 3 ) (3) (3)echo
格式:echo
功能:查阅历史的指令记录,支持键盘上下翻阅

输出重定向

概念:本来应该显示到显示器上的内容,重定向写入到目标文件中。

符号:>
输出重定向的用法非常灵活,可以搭配很多命令一起使用,如echo
解释:echo指令是将字符串里的内容显示到显示器上,通过输出重定向将其输出到文件中,本质就是写入。
又分为两种情况:
   ( 1 ) (1) (1)目标文件不存在
则会创建该文件。
   ( 2 ) (2) (2)目标文件存在
文件的原内容会被清空。

追加重定向

概念:本来应该显示到显示器上的内容,重定向续写入到目标文件中。

符号:>>
追加重定向的用法和输出重定向的用法基本一致,只不过追加重定向是在目标文件内容的基础上进行续写,不会清空目标文件。
还是两种情况:
   ( 1 ) (1) (1)目标文件不存在
则会创建该文件。
   ( 2 ) (2) (2)目标文件存在
在原内容的基础上进行续写。

输入重定向

概念:将文件里的内容重定向输入到显示器上。

符号:<

管道

在学习管道之前,我们先看这样一种应用场景:
假设现在tst文件中有1-50这样的50个数字,现在我想要查看中间的20-30,该如何查看呢?

   ( 1 ) (1) (1)方法一:创建临时文件配合输出重定向
第一步:将前30行的数据写入到临时文件tmp中。
第二步:使用tail获得末尾的10行数据。

第一种方法虽然可以实现这种功能,但是还是需要用到临时文件作为中介,如果不能创建临时文件,又该如何解决?
   ( 2 ) (2) (2)管道

首先我们对比下物理世界层的管道和计算机层的管道。

物理世界层:管道是一种运输媒介,可以用来运输资源。
计算机层:管道在计算机的世界中依旧也是一种媒介,只不过用来运输数据。

在前面的学习中,我们知道指令在很多时候都是取文件中的数据进行相应的操作。我们能否用管道这种媒介将处理以后的数据进行传输给其他命令呢?
这也就是管道的作用。
下面的指令就是通过管道解决:

我们通过画图再次理解管道:
对于管道:我们也可以将其看作是流水线,只不过流水线上运输的是数据。

时间相关的指令

格式:date +%s
功能:显示当前的格林尼治世界
ps::关于这里的%,可以将其看作是c语言中的printf。

格式:date+%Y%m%d
功能:以现代时间显示当前的年月日

格式:date+%Y%m%d%H%M%S
功能:以现代时间显示当前的年月日 时分秒

总结:时间的这几个命令可以随意组合,Y其实是year的首写字母。m是month的首写字母,剩余几个也是如此,书写代码的时候别忘了大小写。

cal

格式:cal
功能:显示当前月份的日历信息

格式:cal +年份
功能:显示指定年份的日历信息

格式:cal -3
功能:显示当前月,上一个月,下一个月的日历信息

格式:cal -3 年份
功能:显示指定年份下对应当前月,上一个月,下一个月的日历信息

find

格式:find -name 文件名
功能:查找文件的存储路径

grep

grep是一种行过滤工具。
   ( 1 ) (1) (1)grep


格式:grep '关键字' 文件名
功能:将文字中带有关键字的内容显示出来
   ( 2 ) (2) (2)grep -v
格式:grep -v '关键字' 文件名
功能:将文件中不带有关键字的内容显示出来

grep 还具有两个后缀:
-i :自动忽略大小写
-n 自动显示行号

bc

bc是Linux上的计算器,Linux可以根据键盘输入的内容进行计算,并显示结果。
ctrl+c可以退出计算器模式


bc可以搭配管道进行使用。

zip(压缩)

   ( 1 ) (1) (1)zip
格式:zip 压缩以后文件的名字 被压缩文件的名字
功能:对文件进行压缩

   ( 2 ) (2) (2)zip -r
格式:zip -r 压缩以后目录的名字 被压缩目录的名字
功能:对目录进行压缩
ps::如果不带-r那么压缩过来的只是一个空壳,所以需要-r进行递归压缩

unzip(解压)

   ( 1 ) (1) (1)unzip
格式:unzip 压缩文件/目录名
功能:将压缩文件/目录解压到当前路径

   ( 2 ) (2) (2)unzip -d
格式 unzip 压缩文件名/目录名 -d 压缩的路径
功能:将压缩文件/目录解压到指定的路径

tar

格式 tar -czf 压缩以后的文件/目录名 压缩文件/目录名
功能:压缩文件/目录
ps::
-c 创建一个压缩文件/目录
-z 采用特定的压缩算法
-f 指定压缩以后文件/目录的名字

格式 tar -xzf 压缩文件名/目录名
功能:对文件/目录进行解压

ps::
-x 进行解压

打包和压缩的区别

打包和压缩的共同点:
打包和压缩都是将物品分门别类的存储到容器里

打包和压缩的不同点:
打包只是简单的将物品放在一个有限空间里。打包不关注空间,只关注打包本身,也就是将物品装起来。
压缩是在合理使用空间的情况下,将物品放在一个有限空间里,压缩追求的是空间的利用率。

这里我们可以举例说明:
在现实生活中,在我们去上大学的时候,都得带上一个行李箱,如果我们自己来装行李箱,就会发现很多东西都装不下,但是如果我们的父母来装行李箱,则可以装下更多的物品,因为他们知道怎么样装物品能更合的使用空间。

这里我装行李箱就类似打包。
父母帮我装行李箱就类似压缩。

因此压缩算法和好坏也决定了压缩的效率。

uname

   ( 1 ) (1) (1)uname
格式:uname
功能:显示Linux的信息

   ( 2 ) (2) (2)uname -a
格式:uname -a
功能:显示Linux的详细信息

Linux中的热键

   ( 1 ) (1) (1)ctrl +r
功能:根据输入的内容查找相近的历史指令
   ( 2 ) (2) (2)tab
ps::tab在使用的时候需要按两下。
功能:指令自动补全功能
   ( 3 ) (3) (3)ctrl +c
功能:退出异常进行的程序,具有退出,终止程序的功能

file

格式:file 文件名
功能:显示文件的具体信息

history

格式:history
功能:显示指令的历史记录

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858739.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号