作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。
个人主页:蜗牛牛啊
系列专栏:Linux
学习格言:博观而约取,厚积而薄发
欢迎进来的小伙伴,如果小伙伴们在学习的过程中,发现有需要纠正的地方,烦请指正,希望能够与诸君一同成长!
passwd name
——为新增加的用户设置密码,需要注意在输入密码时,屏幕上不会显示你输入的内容但是实际上已经输入进去了。
创建用户的同时,会自动创建和用户同名的家目录。
userdel -r name
——删除用户及其用户家目录
userdel name
——删除用户不会删除家目录
扩展:为什么有了图形化界面还要学习指令?
1.企业的服务器没有界面
2.指令的学习更贴近系统
3.指令更快,图形化界面要占用内存,但是指令相对图形化界面而言不太方便。
Linux是一个开源的操作系统(更高效、更稳定、更安全)。
Linux版本:(内核版本)技术版本线:主版本.次版本.修正次数(如 2.6.32 ),次版本为偶数是稳定版本,次版本是奇数为测试版本。
商业化版本线:centos,ubuntu,kail,红旗……应用角度
越新的商业化版本,匹配的是越新的内核代码。
扩展:操作系统概念:操作系统是一款进行软硬件管理的软件;操作系统存在的意义:操作系统对软硬件进行合理管理(手段),以达到为上层用户提供良好的、稳定的、安全的运行环境的目的。(平时Windows系统电脑开机实际是在加载操作系统)。
ls
是命令,通常命令后携带有命令选项(如ls -l
中,-l
就是命令选项)。
ls -l
(也可以写成ll
):以列表的形式显示文件更多的属性。其中total
表示的是列表中所有文件的磁盘空间占用总和,也就是资源占用总和,它的统计单位是kb
。需要注意的是这个占用空间不一定等于文件大小之和。下图中表示该目录下文件总共占用16kb
空间。
扩展:在Windows下创建一个空文件(文件里面没有内容)这个文件的存储位置是哪里?这个文件占不占空间?
文件在磁盘存着并且要占用磁盘空间,因为文件存在属性数据(文件名、创建时间、文件类型等)。文件=内容+属性,文件操作就是对文件内容和文件属性的操作。更改文件内容有可能文件属性会自动变化。
ls -l -a
(也可以写成ls -al
、ls -la
):显示更多的隐藏文件,以.
开头的普通文件会隐藏;以.
开头的目录文件也会隐藏,并且该目录下的所有文件都会隐藏。
如上图所示,在同一个目录下,ls -al
显示出来的文件比ls -l
显示出来的文件多了两个隐藏文件。
Windows下的路径格式为
D:\studystore\VS code
,其中路径分隔符为反斜杠\
;Linux下的路径格式为/root/12-28
,其中路径分隔符为/
。注意Linux中的根目录为/
。Windows中文件夹中可以有新的文件夹,Linux中目录下也可以有新的目录。
扩展:找到Windows下的一个文件夹或者文件,通常我们用什么来定位这个文件呢?如何理解相对路径和绝对路径?
路径。在Linux中我们同样使用路径来定位文件。从根目录开始定位文件的路径称为绝对路径,例如/root/12-28
。相对路径是相对于当前路径的 例如../../12-28
,如果相对路径变了,那么就失效了,相对路径只能在特定的路径下有效。
绝对路径用起来麻烦一般用在某些配置文件中,进行对某种文件进行配置的时候采用。相对路径用起来简单,后续指令操作的时候常用的路径定位方式。
如果没有
tree
指令可以安装,不过必须在root身份下,Centos安装指令:yum install -y tree
。当使用tree
指令疯狂刷屏时可以使用ctrl+c
终止程序运行。
touch name
:在当前目录下创建一个名为name
(可以自由命名)普通文本文件。下图分表表示在当前目录下创建一个名为test.txt
的普通文本文件和在上级目录下创建一个名为test1.txt
的文本文件。touch
可以指定路径创建文本文件。
nano
:如果文件存在直接进入编辑器编辑,完成之后按ctrl+x
退出,按y
确定退出;如果文件不存在则生成一个新文件,如下图。
扩展:任何一个文件都有三个时间:Acces、Modify、Change,他们是什么意思?
Access:显示的时间是我们最后一次访问的时间,当文件发生修改之后也会发生改变,每次访问修改Access的时间都会发生更新。
Modify:显示的是我们最后一次修改文件内容的时间。
Change:显示的是我们最后一次对文件属性进行改变的时间。
mkdir
:在当前路径下创建一个目录,也可以用-p
选项创建一串目录。下图表示为在当前目录下创建一个dir2
目录和一连串目录d1/d2
。
rm -r
:递归删除目录(不在乎目录是否为空),并且会给提示信息。如果不加-r
不能删除目录。
rm -rf
:递归并强制删除目录,不会给提示信息。rm -rf ./*
表示删除当前目录下的所有内容,可以同时删除多个文件或者目录。
rm -rf /
:表示删除根目录下所有文件,从根目录开始递归式把所有文件删除(使用rm -rf /
指令删除所有文件后要重装系统)。
man +指令
:访问Linux手册页,查看指令的详细信息。下图表示查看ls
指令以及ls
指令的详细介绍,按q
退出手册。man
指令默认从手册1开始帮我们查找,依次向后寻找。
我们也可以通过
man
指令查找C语言中的函数。
例如通过man 3 printf
查找C语言中printf
函数。当出现如下图所示提示时说明man
指令没有安装。可以通过yum install -y man-pages
指令进行安装,安装时需要在root用户下,如果是普通用户在指令前面要加上sudo
。
man
指令手册共分8章:
1.普通的命令。
2.系统调用,如open
、write
之类(通过这个至少可以知道调用调用这个函数需要加什么头文件)
3.库函数,如printf
。
4.特殊文件,也就是/dev下的各种设备文件。
5.指文件格式,比如passwd
,就会说明这个文件中各个字段的含义。
6.给游戏留的,由各个游戏自己定义。
7.是附件还有一些变量,比如像environ这种全局变量在这里就有说明。
8.系统管理用的命令,这些命令只能由root使用,比如ifconfig。
cp [命令选项] 源文件或目录 目标文件或目录
:复制文件或目录。默认只能拷贝普通文件,加上-f
选项后可以强制拷贝。如下图,将test.txt
拷贝到dir1
目录中。
mv [命令选项] 源文件或目录 目标文件或目录
:根据mv
命令中第二个参数类型的不同将文件重命名或者将文件移动到一个新的目录中。
当第二个参数类型是文件时,mv
命令完成文件重命名,此时源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名;当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv
命令将各参数指定的源文件均移至目标目录中。
cat
:显示(打印)文本内容。下图中利用nano
创建并编辑一个新的文本文件之后使用cat
指令显示。命令选项:-n
:显示文件行号;-s
:不追加多行空行。
>
:输出重定向符号,这里和echo
搭配使用,如果目标文件不存在,系统会自动创建并把本来应该显示到显示器上的文本,写入到文件中。输出重定向是覆盖式写入,准备写入之前会先清空文件。
wc
:默认统计文本中的内容(行数、字数、字节数)。
命令选项:-w
:统计字数;-c
:统计字节数;-l
:统计文本文件的行数。
more
:功能和cat
指令类似,cat
指令用来查看短文本内容是最好的,如果用来查看长文本内容比较麻烦。用more
指令可以适应屏幕大小查看,但是只能下翻不能上翻,按回车向下查看(按行查看),按q
退出查看。more
命令支持搜索/+想搜索的内容
。
less
:可以通过pageup
、pagedown
向前或者向后浏览文件,而more
只能向后浏览,less
的搜索功能更加强大,‘/+想搜索的内容’,同时可以按n找下一个出现的位置,不止可以向下搜,还可以向上搜。按q
退出查看。
head
:用来显示(打印)文本的前n行,如果只输入head
会是输入什么打印什么。一般head
后面跟的是文件名,默认会打印前10行。也可以添加命令选项使其自定义显示的行数,如head -n5 文件名
,表示显示前5行。
tail
:打印文本的后若干行,默认也是打印后10行。也可以通过命令选项的方式自定义查看后面的行数,如tail -n5 文件名
,表示显示文本最后5行。
date
:能够显示当前时间的指令。
date
指定格式显示时间:date +%Y:%m:%d
,显示时间的格式可以更改,但是%
不能省略。
时间戳:根据格林威治时间的1970年的1月1日的00:00开始的。
cal
:可以用来显示公历(阳历)日历。命令格式cal [参数] [月份] [年份]
,默认显示当月月历;如只有一个参数,则表示年份,如有两个参数,则表示月份和年份。
命令选项:-3
:显示系统上一个月、当前月、下一个月的月历;-j
:显示在当年中第几天;-y
:显示当前年份的日历。
alias
:给指令起别名。
grep
:在文件中搜索字符串,将找到符合搜索的行打印出来。grep [选项] 搜寻字符串 文件
,命令选项:-i
:忽略大小写的不同;-n
:输出行号;-v
:反向选择,即显示出没有搜索字符串内容的行。
在用grep
的时候用上单引号或者双引号,避免在搜索空字符串时出错。
zip
:将目录或文件压缩成zip
格式,常用选项-r
表示递归处理,将指定目录下的所有子文件和子目录一并处理。如果不加-r
不能将目录中的子文件和子目录打包压缩。
unzip
:解压,默认解压到当前目录,也可以指定目录,后面加上-d 路径名
。*
:通配符,如rm *.c
表示删除所有后缀为.c的文件。
下面第一张图为没有加上-r
选项,解压后只有单个目录,里面没有文件;第二张图加上-r
选项,解压之后里面有文件存在。
扩展:为什么要进行打包压缩?
打包防止丢失,压缩用特定的算法对体积进行减小。打包和压缩在本地进行,但是应用却是在网络通信场景中。
tar
:打包/解包,可以不打开它直接看里面的内容。
命令选项:-c
创建一个压缩包;-z
使用打包的同时压缩;-f
打包时候紧跟的必须是新的压缩包的名字,建议把-f
放在最后。
tar -czf 压缩文件 源文件
:把源文件打包形成压缩文件,其中-czf
是固定选项,一般用tar
命令打包后缀为tgz
。
tar -xzf 解压文件
:解压。默认解压到当前目录,可以用-C
指明要解压的路径。
tar -ztvf 压缩包名
:查看压缩包里的内容。tar -ztf
:只看压缩包里的文件名。tar
指令中可以不带-
。
uname
:用来获取电脑和操作系统的相关信息,uname
可显示Linux主机所用的操作系统的版本、硬件的名称等基本信息。
命令选项:-r
:查看Linux的体系结构;-a
:详细输出所有信息。软件体系结构:主机名、内核版本 (主、次、修正次数)。el7(el是centos的代称,el7指的就是centos7)。
shutdown
:关机指令,常见命令选项:-h
:将系统的服务停掉后,立即关机;-r
:在将系统的服务停掉后就重新启动。-t sec
:-t
后面加秒数,即过几秒关机。
但是云服务器一般不关机,可以直接重启(reboot
指令)。
2.不知道目录下是否还有目录,也可以按tab查看,显示出来的后面有/的是目录,当目录中没有时,不会显示,仅剩最后一个目录时,会直接跟在后面。
ctrl+c
:退出,强制终止前台影响我输入指令的程序。
ctrl+d
:键盘输入结束、也可以退出用户。
ctrl+r
:在输入的历史命令中进行搜索。
上下方向键可以查看之前输入的命令。
history
:历史上输入的指令保存起来并且显示在显示器上,也可以将输入的命令保存在文本中(history>cmd.txt)。