Linux 基本指令与概念


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

Linux历史基本概念

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

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

创建用户

Linux中,和windows一样,用户也具有不同的等级。现如今我们只需要知道root用户和普通用户。
root用户就如同windows下的超级管理员,其有着很高的权限。可以执行很多的功能。
但是这也会带来坏处,使用的不好就很容易使得操作系统挂掉。所以我们建议大家学习并使用普通用户。
格式: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中,.开头的文件是隐藏文件。
可以对比一下llll-a的不同之处
ll
在这里插入图片描述

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

这里我们提前介绍下...,在linux中,..表示上级路径,.表示当前路径,在任何路径下都会存在...两个隐藏文件。

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

后缀功能
-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的存储结构

windows中,我们的磁盘分为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)相对路径
定义:相对当前路径下的一条路径。

例如我当前所处的位置是/home/pass,这时我想跳转到bin目录,这时我就可以使用相对路径:cd ../../bin

这里需要理解清楚:相对路径是相对我当前位置的一种延申,如果我想到home目录,我不能直接cd home,因为Linux不知道这个home究竟是哪个路径下的home

cd

   ( 1 ) (1) (1)cd
格式:cd 路径(绝对路径or相对路径)
功能:跳转到指定的路径下
同时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::lessmore更加灵活,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总结

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

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的首写字母。mmonth的首写字母,剩余几个也是如此,书写代码的时候别忘了大小写。

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 自动显示行号
-r 进行递归的搜索

bc

bcLinux上的计算器,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
功能:显示指令的历史记录
在这里插入图片描述

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤梨罐头@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值