从这篇文章开始,就正式进入到Linux学习阶段。
我们先从Linux基本指令开始学习:
1.【pwd】
pwd这个指令用来展示当前Linux系统中所处的路径。
2.【ls】
ls这个指令用于罗列出当前路径下的文件名。由于每个人的目录不同,显示出结果也不同。
?3.【mkdir】
mkdir这个指令用于在当前路径下,创建一个新的目录。
?4.【cd】
cd这个指令用于进入指定的目录
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
cd - :跳转到我们最近一次所处的路径下
cd ~:进入用户家目录
5.【clear】
clear这个指令用于清屏。
6.【touch】
touch这个指令用于在当前目录下,创建一个新的普通文件。
?7.【whoami】
whoami这个指令用于查看当前正在使用Linux系统的人是谁。
进行到这里,我们先来谈一谈Linux周边知识,然后继续来总结Linux基本指令。
1.文件=文件属性+文件内容,文件属性也是数据,也要占内存。未来对文件的操作,无外乎:对属性的操作、对内容的操作。
?2. /? : 是Linux的路径分隔符,\? : 是windows的路径分割符。两个路径分割符之间,一定是一个文件夹。路径最末端一定是一个普通文件或者文件夹。
3.为什么要有路径??因为在访问任何文件之前,都必须先找到这个文件,并且文件的路径必须有唯一性。
4. 当我们使用? ls -la? 这个指令时,会看到下图结果,在Linux中,.开头的文件代表隐藏文件。.用来表示当前路径,..用来表示上级路径。为什么要有.和..呢?..可以方便我们进行路径的回退,毕竟我们不但要进入,也要能出来。.方便我们找到当前目录下的一个文件。
?继续上面的指令:
8.【alisa】
alisa这个指令用来给其他命令起别名。
9.【stat】
stat这个指令用来显示文件的详细信息。
10.【tree】
tree这个命令以树状形式显示目录结构。
?提示:
tree / 时会出现失控打印的情况,ctrl + c是终止异常的命令。
11.【rm】
rm这个指令用于删除文件或目录。
删除普通文件:rm 普通文件
删除目录:rm -rf 目录
r代表递归 ,f代表强制。
* :在Linux中是一个通配符!
12.【cp】
cp这个指令用于拷贝文件:
cp src dst? ?---? 如果src是目录,则src直接拷贝到dst这个目录下了;如果src是带路径的文件名,则拷贝到指定目录,顺便进行重新命名。src和dst都可以携带绝对或者相对路径进行拷贝。
13.【mv】
mv指令主要有以下几个作用:
1)在指定目录下,对一个文件或者目录进行重命名
2)将指定目录下的文件或者目录,“剪切”到指定的目录下
3)不仅要剪切,还要在剪切的同时,顺便进行一下命名。(如上图所示)
学习了这么多指令,我们的目的是要在Linux系统中进行编程,那么如何快速写出代码?
有以下几个步骤:
1.nano? 源文件
2.写完后,ctrl x -> y -> 回车
3.gcc test.c
4../a.out
14.【more和less】
在学习这两个指令之前,我么先来学习 “>”---输出重定向。
“>”这个指令有两个作用:
1.创建文件
2.本来应该显示到显示器上的数据,显示到文件中。
Linux理念:Linux中一切皆文件。把显示器设备看做显示器文件,向显示器打印,向显示器文件进行写入。
‘>’将本来应该打印到显示器上的重定向到log.txt文件中,因此叫输出重定向。
在每次使用>输出重定向时,首先把当前文件的内容清空,然后写入新的内容,如下所示。
因此,我们可以使用>:
1.创建一个文件>file
2.如果文件存在,那么清空一个文件>file
那么,如果不想每次清空,而是在原有内容上追加,需要使用‘>>’,这叫做追加重定向。
另外,还有<,表示输入重定向,本来应该从键盘文件中读取,转而重定向为从普通的文件中读取:
因此,总结一下:
command > filename :输出重定向
command >> filename:追加重定向
command < filename:输入重定向
接下来,我们继续学习more指令:当我们查看大文件时,有可能会有多行,more可以打满一屏,就停下来,让用户下翻,逐行进行阅读。
less指令:可以查看大文本,既可以上翻,也可以下翻,推荐使用!
more/less用法:
more/less filename
另外,如果想查看大文件的头几行信息,可以使用head big.txt,默认查看前10行。如果想查看前5行,那么可以直接用head -5 big.txt。
与head相对应,如果想查看文件结尾,可使用tail,tail big.txt默认把文件的后10行提取出来。如果想查看前5行,那么可以直接用tail?-5 big.txt。
那么现在有这样一个问题,假设big.txt有10000行,那么怎么提取8000-8010行呢?
看这样一行代码:
head -8010 big.txt | tail -11
其中,|叫做管道,管道就有入口和出口,管道是用来传输资源的,那么在计算机中,资源是什么呢?数据!!!因此,管道? |? 必然有一个入口,有一个出口,管道的作用是上一条指令的输出数据交给下一条指令,下一条指令把数据从管道中拿出来。
再来补充另一条指令wc,wc用来统计文本行数。
wc -l big.txt
?那么,我们用管道级联,级联多条指令,就可以查看行数。
head -8010 big.txt | tail-11 | wc -l
?还可以级联,对文本逆置。
head -8010 big.txt | tail-11 | tac
级联多条指令,就像流水作业一样,先粗加工,再精加工。
15.【时间相关指令】
在linux中,使用date查看时间
但是,这种格式,我们看起来不舒服,所以我们可以格式化输出:
date 指定格式显示时间: date +%Y:%m:%d
date +%s可以显示当前时间的时间戳(格林威治时间)
?我们也可以将时间戳转换为对应时间:
16.【cal】
cal:查看当前月份日历
cal 年份:查看对应年份日历
cal -3:查看当前月份以及前后两个月的日历
17.【find】
直接看指令:
find? /? -name test.c
这句指令的意思是:在根目录/(可以替换其他目录)下按名字(-name)查找test.c的文件。find是真正的在系统的树形结构中进行文件查找的!
find的使用:
find 你要查找的路径 -opt(name) filename
18.【grep】
这个指令的作用是在文件中搜索字符串,将找到的行打印出来
grep 'bit' simple.txt? --? 将包含bit的行打印出来
grep 'bit' -n simple.txt? --? 将包含bit的行打印出来,并加上行号
grep 'bit' -v?simple.txt? --? 反向选择,显示出没有搜寻字符串内容的那一行
grep 'bit' -i?simple.txt? --? 忽略大小写的不同,所以大小写视为相同
19.【zip/unzip】
这组是打包压缩指令,为什么要打包和压缩呢?
a.缩小体积,占据磁盘空间比较小,下载快
b.不会轻易的丢失文件
对目录进行打包压缩:
将xxx目录压缩:zip -r xxx.zip?xxx(-r表示递归)
解压到tmp目录:unzip xxx.zip -d /tmp
20.【tar】
这是另一个打包压缩指令:
?这里有很多个选项,但是我们只需要记住几个常用的组合就行!
tar -cvzf name.tgz file1 file2 (打包压缩)
tar -xvzf name.tgz [-C path]?(解压)
上面我们说了linux中两个压缩指令,那么我们为什么要打包压缩呢?是便于网络传输!
基于xshell进行压缩包的windows和linux进行互传(压缩包) windows<->linux
scp xxx.tgz 用户名@另一台linux机器的ip:你要拷贝的路径? ?linux<->linux
21.【bc】
bc命令可以很方便的进行浮点运算
22.【uname】
uname -r ---- 查看系统的内核版本
x86:32位机器
x86_64(x64):64位机器
el7:centos 7
23.【重要的几个热键】
【Tab】按键---具有命令补全和档案补齐的功能
ctrl+c:让当前的程序停掉
ctrl+d:退出登录
ctrl+r:对历史命令进行搜索
24.【关机】
一般不要关闭linux云服务器。
shutdown **常见选项**
-h :将系统的服务停掉后,立即关机。
-r :在将系统的服务停掉之后就重新启动。
-t sec:-t后面加数秒,即过几秒后关机的意思。
以上就是Linux中的常见指令,希望各位能够掌握好这些基本指令啊!