目录
前言:
我们不能总沉浸在编程语言中,虽然代码能力提升了,但是也只是开胃小菜。我们要朝着更高的方向发展。
最近小编一直在刷力扣,以至于博客更新的比较少。今天就带各位开始学习全新的知识——Linux.至于为啥要学?
Linux是很多操作系统的底层(其实其本身就是操作系统),我们熟悉的Android底层就是它来实现的。而实现Linux是C语言,所以各位,开启新篇章吧!
什么是Linux?
Linux就是操作系统,我们一般使用的是Windows操作系统。嗯……接下来就涉及计算机组成原理了。
所以操作系统也是软件!这个软件大家可以理解为管理设备驱动和硬件的软件,我们平时用的软件是在操作系统上使用的。
这里有一些区别:
Windows中:\是路径分隔符
Linux:/是路径分隔符
Xshell:
为了更好的学习,我们使用Xshell来进行学习,就是使用云服务器,选择镜像centOS,之后登录(具体含义后续了解吧,原谅博主水平不高)。
登录命令:
当我们购买了云服务器以后,它会让我们设置密码,并给我们一个公网IP,我们需要利用公网IP进行远程登录Xshell。
ssh root@公网IP
之后会有一个弹窗,默认用户都是root用户。
之后输入你设置的密码即可。
新建用户:
当我们以root用户登录以后可以新建一些用户。
adduser 用户名
之后他会让你设置它的密码,确认以后就行。
之后这个用户下次登录就可以指定用户名,之后使用他的密码登录即可,这就是Xshell好用的地方。
我们链接时,需要输入密码,就是我们当时设置的密码,就可以登录。
pwd命令:
pwd是显示当前路径。
ls命令:
这个命令是把当前文件夹里包含的文件展示。但是我们可以加上选项-a,就是显示当前目录下的所有文件。
ls -a
还有一个选项-l,就是list,以列表的形式展示。
ls -a -l
注意这里不需要注意顺序。
关于 -a:linux中,以.开头的文件,我们叫做隐藏文件。
其实-a是展示文件的具体属性:
我们也可以通过ls之后指定要展开的目录,在 Linux 中,ls -d
命令中的选项d
表示仅列出目录本身的信息,而不是列出目录下的内容:
隐藏文件:
我们创建一个.seeme文件,发现ls以后还是看不到,因为这是隐藏文件。
Windows中也有隐藏的文件和目录。
cd命令:
这个命令是切换到指定目录。
比如此时我们使用相对路径进入当前文件夹的empty文件夹:
关于cd命令有几个特殊的指令,我们需要记住:
至于家目录,我们后面再做了解。 我们先了解cd-。
家目录:
cd ~都会到/root目录,这就是linux的家目录。记住这不是根目录。其实Windows也有家目录,也就是我们每次开机看到的桌面。
比如此时我们以普通身份登录:
用户登录linux,默认所处路径,都在自己的家目录下。
home目录:
home目录中就保存每个用户。
root用户:
root用户是超级管理员,可以在任何人家里进行操作;普通用户只能在自己家操作。
. 和 ..隐藏文件:
刚才我们说,直接ls我们看不到关于隐藏文件的信息,我们必须加上-a选项。那么我们可以看到每次展开文件夹都会存在. 和 .. 两个隐藏文件,这是什么呢?
可以理解为.指向当前文件,..指向上一个文件。但是根目录比较特殊..也指向自己。
cd相当于选择路径,我们一直回退,可以看到最终到 / (也就是根目录)就会停止。所以说 / 是根目录。
根目录:
我们通过以上内容就可以得知 / 是根目录,每个操作系统都会存在一个根目录,Linux中根目录就是 / 。
tree命令:
这个命令是以树状形式呈现,前提是下载这个命令(下载yum仓库,后期介绍,不懂没关系)。可以先不使用。
yum install -y tree
我们可以把这些目录想象为多叉树,我们指定一个文件只有一条路径,这个文件到根节点也只有一条路径。所以路径具有唯一性。
从根目录开始的路径叫做绝对路径;相对路径不多做解释。一般命令行操作时,一般使用相对路径。一般配置文件时,使用绝对路径。
mkdir 和 touch:
mkdir顾名思义,就是创建文件夹。
而touch是创建一个具体的文件,比如test.txt。
这是AI生成的:在Linux中,mkdir和touch命令都用于文件系统操作,但它们的功能不同。
mkdir命令用于创建新的目录。例如,如果你想创建一个名为notes的目录,你可以使用以下命令:
mkdir notes
这将在当前工作目录中创建一个新的名为notes的目录1。
touch命令通常用于两个目的:创建一个新的空文件,或者更新现有文件的时间戳。例如,如果你想创建一个名为hello.txt的新文件,你可以使用以下命令:
touch hello.txt
如果hello.txt文件已经存在,再次使用touch命令将会更新该文件的时间戳2。
总结来说,mkdir用于创建目录,而touch用于创建或更新文件的时间戳。
比如此时我们要创建多个文件夹,就需要使用-p命令,这个是递归的意思。在mkdir命令中,-p选项用于确保目录名称存在,如果不存在则创建目录。例如,使用mkdir -p dirName可以创建多级目录结构。
touch命令可以通过空格一次创建多个目录。
通配符:
为了方便我们查找文件,Linux提供了通配符。
rmdir命令:
这个命令很鸡肋,只能移除空文件夹:
rm命令:
rm是删除文件或目录,他可以删除非空目录和空目录。也可以加上选项。
-rf是递归并强制删除指定文件。
其实根目录(/)也能被强制删除,但是只有正在运行的文件不会被删除,在重启时可能会崩溃,无法运行操作系统,所以绝对不能这么干。
man命令:
man 命令是帮助命令,可以帮助我们查看linux的各种命令。
比如 man ls:
man命令还可以查看C语言当中的各种函数。
我们也可以使用man man 来帮助我们查看man命令。
这里有几个手册,我们需要了解一下:
默认查的是1号手册。
比如查strstr函数,默认从1开始查,之后按照顺序,直到查到为止。
nano命令:
如果没有安装,直接:
yum install nano -y
此时可以直接这样往文件中写内容:
nano 文件名
当用nano往文件中写完内容以后,点击Ctrl + X,之后它会问你是否保存,之后输入"Y"(保存)或者"N"(不保存),之后回车即可退出并保存。
gcc编译.c文件:
当我们使用完nano写完一个.c文件后,Linux上面的C语言编译器为gcc,我们可以用gcc命令来编译并链接文件,比如:
# test.c 为C的源文件,之后编译并链接为-o选项,并生成一个你指定的文件名
# 格式为 : gcc src -o dst
gcc test.c -o mytest
cp命令:
接下来我们要来讲解cp命令,说白了就是复制文件。
cp src dst
#cp 源文件 目标文件
我们先用touch创建一个test.c文件,之后使用nano命令往文件中写入内容。
我们ctrl + x退出,之后直接保存并点击回车就可以保存退出了。
我们知道Linux上是通过gcc编译.c文件的,并生成.o的目标文件。
因为在Linux系统中,可执行文件通常没有.exe
扩展名,这与Windows系统不同。Linux系统中的可执行文件只需要有执行权限即可运行,而不是依赖于文件扩展名。
之后我们就可以拷贝了:
如果是要拷贝的文件里面中包含多个文件,我们可以加上-r选项递归拷贝。
此时如果再次执行cp拷贝命令,和上面的命令一样,相同的拷贝内容,相当于重新拷贝,相当于内容覆盖。
在普通用户下,可以加上-f选项直接强制复制;root用户其实也可以,但是还是会问你是否复制。
任何目录下,不能创建统一名称的文件。
ll命令:
ll命令其实就是ls -l命令的结合。
关于Xshell的快捷键:
在xshell中,可以Alt + Enter进入全屏模式。
热键:tab快速摁两次,可以进行补齐。
所以没事就tab。
命令行当中,出现了失控的状态,Ctrl + C终止。
总结:
OK了,结束,这只是基础,下节更精彩!