前言
Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。
GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼为GNU计划而撰写,GPL给予了计算机程序自由软件的定义, 任何基于GPL软件开发衍生的产品在发布时必须采用GPL许可证方式,且必须公开源代码, Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都 可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。
一、指令详解
1. ls 指令:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
我们可以看到在家目录下,ls将显示家目录下的所有子目录与文件
当我们进入test目录后,ls显示的是test目录下的所有子目录与文件
2. mkdir指令: 在当前目录下创建一个新目录
我们在家目录下创建了一个新目录叫new,在家目录下用ls指令能够查到
mkdir -p :递归建立多个目录 后面的每个目录要用 / 隔开
3.pwd指令:显示用户当前所在的目录
我在哪个路径下就显示哪条路径,比如现在在家目录下就显示了家目录的路径
4.cd指令:进入指定的目录下
比如进入家目录下的new目录,cd new即进入,由于new目录下并没有其他子目录或者文件所以在当前目录下使用ls指令什么也没有。
5.touch指令:创建指定的普通文件
touch是创建一个文件,mkdir是创建一个目录,在我的linux环境下,目录是蓝色,文件是白色,红色则是压缩文件。
在new目录下,我们创建了一个名为newbook的普通文件,ls查看当前目录下的文件可以看到new目录下有一个newbook的普通文件。
6.whoami指令:查看我是谁(显示用户名)
由于linux支持多个用户同时登陆使用所以在使用的过程中必须得知道自己是谁
我在当前环境下用root的身份登陆所以显示的是root,这里每个人的用户名都不一样。
7.echo指令:为某个普通文件中写入内容
echo + " " + > (>为输出重定向,即使原来文件中有内容也会先清空在写入新的内容)
我们可以看到当我们在newbook文件中写入“这里是第一行”后,然后用echo+>符号继续在newbook文件中写入新内容时原先里面的“这里是第一行”的内容没有了,这就是输入重定向的意思。
echo + " " + >> (>>为追加重定向,当原来的文件内有内容时不会清空原有的文件而是在原先内容的基础上追加。
也就是说如果我们在一个文件内写入写入内容又不想删除原先文件内的内容,这样的话就用>>的追加方式,如果写入内容的同时想清空文件内的内容则用>的方式。
<符号位输入重定向,拿cat举例,cat默认是从键盘获取数据的,但是如果加上<符号cat就会从文件获取数据
8.ll指令 : 显示当前路径的文件夹及文件的大小权限等
可以看到ll指令比ls全的多,有文件创建的时间以及大小和权限。
9. .和.. 两个快捷命令
. : .是当前路径
.. : ..是上一级路径
我们可以看到在new路径下,cd .还是在new路径, 而cd ..后回到了上一级路径root,这两个指令在进行文件拷贝或者移动的时候非常方便
10.cd ~ :cd~可以直接返回家目录。
当我们进入某一个目录太深的时候,依靠返回上一级目录回到家目录太麻烦,这个时候我们直接cd ~即可,在linux中大部分命令都需要带上空格。
11.热键Tab (命令的自动补齐)
比如说你现在要创建一个目录,但是你把创建目录的指令忘记了只记住了第一个字母m,这个时候快速tab两个即可出来以m开头的所有命令。
12.ctrl + c 终止程序运行
比如我们用tree来展示根目录的时候一直刷屏停不下来,这个时候我们就可以用ctrl + c来终止
13.tree命令:以树状结构显示linux执行的目录结构
比如我们tree d1目录就可以看到d1以及d1的子目录。
14.cat指令:查看文件夹的内容
要查看哪个文件夹的内容在cat后跟上文件夹即可。
15.gcc指令:编译一段C语言代码
我在book文件中写了一个C语言程序,然后再gcc编译的时候发现出错了原因是一开始的book文件并不是后缀为.c的文件,所以在当我将book重命名为book.c的时候编译成功了,这时候就用到了第十六个指令./a.out指令,这个指令能让C语言程序运行起来,第一个.是当前路径,/是路径分隔符,整体就是在当前路径运行程序。
16. ./a.out指令 : 让C语言程序运行起来
使用这个指令后会生成一个a.out文件。
17.stat指令:获取文件的所有属性
18.rmdir :删除空目录
当我们删除d1目录的时候提醒我们只能d1目录不为空,所以这个指令只能删除空目录。
我们重新创建了个目录empty,里面为空在rmdir后直接删除。
19. rm -r 递归删除
rm -rf 加一个f就变成了强制递归删除,这里的强制是指不会再告诉你是否要删除某某文件。
前面我们已经看到过d1是一个递归目录,当我们用指令rm -rf递归删除后d1及其他的子目录都被删掉了。
20.rm -rf./* 删除当前目录下的所有内容
可以看到使用此命令后new目录下的内容都被清空了
21.man : 查看各个指令的手册
比如查看ls指令的手册
22.printf:打印
printf在linux中也是一条指令,使用方法为printf"%d:%s\n 10 "hello"
23.cp指令 :拷贝文件到指定目录
图中将root/new/路径下的newtest拷贝到test目录中
也可以直接拷贝到上级目录我们介绍过..就是上级目录
cp -r:递归式拷贝
mv 指令:剪切移动
如图我们将家目录下的test.c文件移动到new目录中,移动后原先家目录下的test.c就不在了
mv也可以起到对文件重命名的作用
比如将刚刚的test.c文件重命名为oldtest
24.cat -n :在文本内容前面显示行号
25.cat -s :不输出多行空行
26.wc指令 :统计文本内容
27.wc -l指令: 统计文本内容的行数
28.more指令:与cat指令相似,查看文本内容
29.less指令:对文件或其他输出进行分页显示的工具,用pageup和pagedown进行翻页
进入展示页面后用q退出。