个人主页:点我进入主页
专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶
C语言刷题 数据结构初阶 Linux
欢迎大家点赞,评论,收藏。
一起努力
Linux系统有很多使用方式,我们可以在电脑上搞一个双系统,也可以下一个虚拟机,当然我们也可以购买一个云服务器人然后使用我们的Xshell进行登录,Xshell免费版本,可以点击这个,连接进行下载,Linux的学习尤其是Linux前期的学习是非常的痛苦,Linux也是我们学习新的大门,1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组
(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的小操作系统——Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有被发布,原因是0.01版本不实用。 Linus仅仅在第一个Linux的FTP站点(ftp://nic.funet.fi)上提供过这个版本的的源代码Torvalds于10月5日发布的这个Linux版本被称为0.02版,它能够运行GNU Bourne Again Shell(bash)和GNU的C编译程序(gcc)以及为数不多的其它语言。 Torvalds绝对没有想到他设想的一种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的Linux。;Linux发布时的版本是0.02,后来又有0.03版,然后又跳到0.10版。因为世界各地越来越多的程序员都开始开发Linux,它已经达到0.95版。这就意味着正是公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的。
我们直接输入ls指令我们就可以看到我们当前目录中的文件以及子目录
当然我们输入ls -a是指我们将隐藏文件,文件,子目录输出出来
我们可以看到 .文件, ..文件等文件就是隐藏文件,我们还有一个常用的是ls -l也可以写为ll这是将文件和子目录以及它们的文件信息打印出来,
当然我们也可以输入ls -la或者ls -al对隐藏文件和文件,子目录的文件信息进行输出,当我们输入ls -la 文件名时我们会将这个文件中的文件信息进行输出
pwd指令就是现实我们现在文件所在的路径,/root就是我们所在的位置。
cd指令是使用方式是 cd 路径(几个特殊符号),例如我们再根目录想进入/root/yang中我们输入cd /root/yang,然后输入pwd进行查看我们所在的位置
如果我们错误进入一个文件内比如我们再根目录里想进入root里面,却进入了root里面的yang文件中难道我们还重新输入cd /root吗?显然不是,还记得我们上面那个 . 文件和..文件吗?这时候就需要我们使用这两个操作了我们输入cd .是进入到当前路径,我们输入cd ..是进入到上一个路径里,
对如cd指令我们还有两个常用的指令cd -和cd ~这两个指令其中cd -指令是进入上次在的路径中就像我们浏览器中的前进和后退
我们再看cd ~指令这是进入我们登录的路劲当中比如我们是使用的root进行登录的我们使用这一个指令就会进入到/root中无论我们在哪里
touch指令是创建一个文件
mkdir也是创建目录,例如mkdir atext
这时候问题来了如果我们想在目录a中创建一个目录b再在b中创建一个目录c再在c里面创建一个目录d难道我们创建一个然后进入里面进行创建就像下面的操作
事实上Linux提供了这样的操作也就是mkdir -p a/b/c/d,我们输入这个指令
rm指令是删除指令可以删除文件和目录例如我们想要删除text.txt文件我们需要输入rm text.txt,也就是说我们想要删除空目录只需要输入rm [目录名]
当然我们想要删除文件时需要我们的rm -rf 【文件名】,例如我们呢想删除文件a我们输入rm -rf a
我们可以看到文件a被删除,当然我们也就可以在rm后面加上绝对路径进行删除例如rm -rf /root/a/a也可以达到和上面相同的结果,但是由于我们不小心在root前面加上一个空格,这时候就会认为我们要删除根目录,根目录删除我们就必须重新装系统,我们自己的删除可能没有什么问题,但是当我们在工作时删除这就可能有很严重的后果,也就是我们常说的删库跑路。
Linux还提供了一种可以查看文件中的文件的指令,例如a文件中有b文件,b文件中有c文件,c文件中有d文件等我们输入tree a就可以查看a文件的文件
看a文件中有b文件和data.txt文本,b中有c,c中有d,能这样显示的主要原因就是由于文件在Linux中是以树的形式进行存储
tree指令后面也可以使用我们的绝对路径进行查询,比如我们输入 tree /root/a也可以进行查询
但是当我们不下心在root前面加了一个空格我们就会出现
疯狂的进行输出,会将我们的全都文件进行输出,难道我们必须等它输出完吗?这时候我们可以输入ctrl c强制停止。
man指令是Linux系统提供给我们的使用说明书,我们可以查看各种指令以及c语言函数的功能
我们输入man man,可以看到有这几行
其中我们用的多的就是1和3,其中1是指我们的指令,3是指我们的c语言函数例如我们想查询touch指令我们可以输入 man touch指令或者man 1 touch进行查询
我们想要退出只需要输入q即可退出 ,我们查询函数也是同样例如我们想要查询fopen函数我们输入man fopen或者man 3 fopen即可查询
which指令是我们用于查找指令的存储位置例如我们想要查询man指令所在的位置我们输入which man指令就可以查询为什么我们可以进行查询呢?这主要就是Linux系统的特点有关,Linux具有一切皆文件的特点每个指令就是一个个程序。
在这里man指令就在/usr/bin/man中。
cp指令可以对文件进行复制其中复制有两种一种是复制到当前路径一种是复制到其他路径下,例如我们创建一个text.txt文件我们想将这个文件复制一份到到当前路径并且命名为data.txt我们输入cp text.txt ./data.txt或者cp text.txt data.txt即可
我们想将text.txt文件复制到b文件里面我们输入cp text.txt ./b/data.txt(当我们不输入data。txt时会直接复制过去)即可
然而我们想要复制目录b到当前路径并且命名为a时单单输入cp b ./a 时不可行的
这时候我们输入cp -r b ./a即可
有我们的cp复制指令我们的剪切指令是不能少的mv指令可以实现我们的剪切功能也可以对文件进行修改名字,例如我们想吧b文件改为c我们只需要输入mv b ./c即可
例如我们想把文件c移动到a文件中时我们只需要输入mv c ./a/c即可
如果我们想要修改名字只需要将c进行修改即可。
这时候我们需要创建一个text.c文件
这时候我们打开记事本我们输入nano text.c对文本进行编译
然后依次输入ctrl x ,y, 回车进行保存,
我们再输入gcc text.c 对其进行编译我们在输入ll可以看到
a.out*就是我们要运行的程序,我们输入./a.out就可以运行我们的程序
我们就可以看到我们运行了我们的程序。
cat指令是显示文本的内容例如我们输入cat text.c 就可一看到其中的内容
当我们输入cat -n text.c就可以看到文件的行号
当我们输入tac text.c倒着输入(先打最后一行)
echo类似于我们的printf是将我们输入的信息进行打印例如我们输入echo hello linux它就会在屏幕上输出hello linux
但是我们想在text.txt中输出hello是时候需要我们的>符号和我们的echo,我们输入echo hello > text.txt,其中>是我的输出重定向,这个功能类似于我们C语言中的以w的形式进行写文件,当我们每次写时都会删除上次的内容,然后在写。
在C语言中我们还可以对文件的内容进行追加,也就是我们以a的形式进行写文件,在Linux中我们的>>是追加重定向,我们输入echo linux >> text.txt即可
还记得我们的touch指令吗?我们创建text.txt文件还可以利用输出重定向进行创建我们输入> tetx.txt指令就可以创建。
我们看到tetx.txt文件中有0个字节。
more指令是我们查询大文本的一条指令,我们在查询大文本时使用cat会造成刷屏,所以我们可以通过more指令,它会显示满一屏幕然后我们按回车可以进行翻页,我们还可以输入/关键字进行高亮匹配。
这个和more类似,我们输入/关键字可以找到对应的数据,可以通过上线键进行翻页,当我们输入/999时可以看到
head指令是查看文本的一个指令我们输入head [文本名]就默认查看文本的前10行内容例如我们想查看big.txt文件的前10行我们输入head big.txt指令即可
有时候我们向查看的不只是10行或许多于10行,或许少于10行这时候我们就可以输入head -行数 【文本名】即可,例如我们想查看big.txt的前5行我们输入haed -5 big.txt指令即可
有我们查看开始的几行文本的指令那么我们绝对不会少了我们查看文本结尾的指令,我们输入tail [文本名]就是默认查看文本后10行的内容,例如我们查看big.txt的后10行我们输入tail big.txt指令
同样的我们想查看多余或少于10行的内容我们输入tail -行数 【文本名】即可,例如我们想查看big.txt文本的后5行我们输入tail -5 big.txt指令即可
|符号是我们的管道符号是我们同时执行多行指令的连接符号对于我们指令的写入有很大的帮助例如我们想把big.txt的8000行到8010行的内容打印出来我们首先想到的是先把前8010行的内容写道一个新的文件然后再利用tail指令进行输出,就像下面一样:
这样写不是不可以但是比较浪费时间这时候就需要我们的管道操作符号了,我们输入指令tail -8100 big.txt | tail -10 就可以了
加入我们想倒着输出我们只需要输入指令 head -8100 big.txt | tail -10 | tac 就可以了
date指令是Linux显示时间的指令例如我们想展示一下当前的年月日时分秒我们可以输入指令
date +%Y-%m-%d_%H:%M:%S其中 -符号和_符号异界:符号可以让我们自由修改
其中%Y-%m-%d可以用%F代替,%H:%M:%S可以用%X代替
在时间里面有一个很重要的东西,时间戳,在生活中我们的二维码等信息都用到了时间戳,时间戳是在1970年1月1日0点开始的我们可以输入指令date +%s就可以查看
我们还可以利用date +%Y-%m-%d_%H:%M:%S -d @时间戳来看一下这个时间戳对应的日期
当然我们可以让时间戳为0来看时间戳的开始时间
由于我们在东八区所以为1970年1月1日8点 。
cal指令是我们查看日历的指令例如我们想查看这个月上个月以及下个月的日历我们输入cal -3就可以查看
我们想查看当年的日历我们输入cal -y就可以查看
我们想查看今天是一年中的第几天我们可以输入cal -j就可查看
find指令是一个用于寻找文件的函数例如我们想找包含所有后缀为.txt的文件我们输入指令find -name *.txt就可以了
grep指令是一种文本过滤的指令,例如我们创建一个文本,内容为:
例如我们想查找包含bit的内容,我们可以输入指令grep "bit" same.txt,
如果我们还想显示行号我们加入-n选项就行了
我们还可以输入-v指令,例如指令grep -v "bit" same.txt,是将所有不包含bit的进行输出
当然我们还可以忽略大小写,这需要我们输入选项-i进行,例如grep -i "bit" same.txt,
我们经常使用压缩包进行数据的传输,那Linux的生成压缩包是zip指令如我们想对于一个空目录或者文本信息生成压缩包我们输入指令zip 压缩后的名字 想压缩的文件例如我们想将text.txt他所为txt.zip
当我们想将一个非空目录进行压缩时我们需要输入选项 -r,因为我们需要递归进行压缩。
我们除了zip还有一种进行打包和解包的指令是tar,例如 我们想将目录a进行打包,我们输入指令tar -czf a.tga a就可以了。
当然选项中加入-m可以看到打包的过程,a.tga就是我们生成的压缩包。在解包时我们输入指令tar -xzf a.tga就可以进行解包操作
我们可以通过uname指令查看我们云服务器系统,例如我们输入uname即可以看到
我们输入uname -r就可以看到我们的版本
我们存在一种在虚拟机和主机之间进行交互的指令,sz和rz指令,我们可以通过他们在逐渐和虚拟机直接进行文件的上传和下载,例如我们想把a.zip传到主机上我们输入指令sz a.zip指令就可以了。
我们找好要下载的位置
我们可以找到
这样我们的虚拟机到主机的文件下载就完成了,我们想实现主机到虚拟机需要输入指令rz,
我们输入rz就可看到
选择好后进行查找就可以看到
到这里基本指令的内容就结束了,对于指令我们应该多去手动的使用,多去回忆,最后内创作不易,希望大家可以一键三连支持一波。