【Linux】常见指令及周边知识(一)
- 一、初始Linux操作系统
- 1.Linux背景
- 2.如何使用Linux
- 二、学习Linux之前的预备周边知识(重点):
- 1.什么叫做文件?
- 2. Linux下的路径分隔符
- 3.在Linux中为什么会存在路径?
- 4.为什么会有 (.) 和 (. .) ?
- 5.在Linux中整个文件的目录储存结构是什么?
- 6. Linux中的绝对路径和相对路径
- 7.用户家目录
- 8.终止异常
- 9.重定向
- (1)输出重定向:>
- (2)追加重定向:> >
- (3)输入重定向:<
- 10.管道
- 三、Linux下基本指令
- (1)用户相关命令操作:
- 1.查看当前用户:who am i
- 2.新建用户:adduser
- 3.修改新建用户密码:passwd
- 4.删除用户:userdel
- (2)ls指令:
- 1.ls
- 2.ls -a
- 3.ls -d
- 4.ls -k
- 5.ls -l
- 6.ls -al(ls -la)
- (3)pwd指令:
- (4)cd 指令:
- (5)touch指令:
- 1.创建普通文件:
- 2.更改文件最新时间:
- (6) mkdir 指令:
- (7)tree指令:
- (8)rmdir和rm指令:
- (9)man指令:
- (10)cp指令:
- (11)mv指令:
- (12)cat指令:
- (13)more指令:
- (14)less指令(重要):
- (15)head和tail指令:
- 1.head指令:
- 2.tail指令:
- (16)与时间相关的指令:
- 1.date指令:
- 2.cal指令:
- (17)find指令:
- (18)which指令:
- (19)grep指令:
- (20)zip和unzip指令:
- 1.zip:
- 2.unzip:
- 未完待续:
目录:
一、初始Linux操作系统
1.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年公布的!
2.如何使用Linux
使用 XShell 远程登录 Linux
下载链接:Xshell下载链接
二、学习Linux之前的预备周边知识(重点):
1.什么叫做文件?
文件=文件属性+文件内容
2. Linux下的路径分隔符
- / :是Linux下的路径分隔符!
- \:是windows下的路径分隔符!
3.在Linux中为什么会存在路径?
我们在访问任何文件之前都必须先要找到这个文件,那么我们如何找到这个文件呢?我们就会通过路径,我们为什么要通过路径来找到这个文件的?因为路径是具有唯一性的,路径在系统层面标志了一个特定的文件。
4.为什么会有 (.) 和 (. .) ?
在任何目录下都会默认具有两个隐藏目录 . 和 …
- (.):用它表示当前路径
- (. .) :用它返回上一级路径
5.在Linux中整个文件的目录储存结构是什么?
在Linux中整个文件目录结构是一棵多叉树!
6. Linux中的绝对路径和相对路径
- 绝对路径必须从根目录开始,按其他任何顺序的路径找到目标文件。
- 相对路径一般是从兄弟路径找到目标文件,一般存在路径的回退:(. .)
7.用户家目录
Linux中的用户家目录跟windows中的用户家目录是一个道理:
来看一下windows下的用户家目录:
这里在我的电脑上的用户家目录是(用户)路径下的:yjl17
在Linux下指定用户也有自己的用户家目录:
- 对于root账号: 默认的家目录是:/root-----是超级管理员的账号!
- 对于普通用户:默认家目录是:/home/XXX,XXX是你新创建的用户名!
对于任何一个用户,首次登录的时候,默认当前的路径就是自己的家目录。
8.终止异常
当指令失控疯狂的打印一些东西的时候,我们一直按住CTRL+c直到正常。
9.重定向
(1)输出重定向:>
1.功能:将输出重定向:(>)之前的内容,写入,输出重定向,后面的文件或目录中
2.注意:(1)如果输出重定向:后面的文件不存在,那么我们就创造文件把内容写进去,
(2)如果该文件已经存在,我们会先清空文件,然后再将内容写入进去。
(2)追加重定向:> >
1.他跟输出重定向不一样,他只是在后面追加内容,他不会清空文件的原始内容。
2.示例:
(3)输入重定向:<
1.因为有输入重定向的存在:把本应该从键盘文件中读取的数据,现在改变成从输入重定向后面的文件显示到显示器文件上!
10.管道
1.管道:(|)
在Linux中就是传输数据的!
三、Linux下基本指令
(1)用户相关命令操作:
1.查看当前用户:who am i
whoami或者who am i(可以中间空格,也可以不空格)
2.新建用户:adduser
但是只有root超级用户才能新建用户!
adduser + addname
我们在新建用户之前查看一下当前所存在的用户有谁?输入:ll
此时我们只有用户:root
此刻创建用户之后:
创建成功!
3.修改新建用户密码:passwd
passwd + newcode
当你输入密码的时候,密码不会在显示屏上!这样的提示就说明了修改新密码成功
4.删除用户:userdel
userdel + username
此时我把这个新建的yjl用户名删除之后,所有的信息里面只有root没有yjl,说明删除成功。
(2)ls指令:
1.语法: ls [选项][目录或文件]
2.功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
3.常用选项:
-
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-
-l 列出文件的详细信息。
-
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别) -
-t 以时间排序。
-
-r 对目录反向排序。
-
-R 列出所有子目录下的文件。(递归)
-
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-
-1 一行只输出一个文件。
在这里我们只挑几个常见的来进行讲解:
1.ls
ls功能:列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
2.ls -a
列出目录中的所有文件,包括以 . 开头的隐藏文件。
3.ls -d
将目录像文件一样显示,而不是显示其下的文件:
这里的一个点: (.)就是表示当前路径。
4.ls -k
以k字节的形式表示文件大小:
5.ls -l
显示文件详细信息
6.ls -al(ls -la)
列出文件的全部详细信息
(3)pwd指令:
显示用户当前所在路径
/:表示我们当前处于根目录
(4)cd 指令:
cd + 路径
直接切换到cd后面的路径中
(5)touch指令:
touch + 文件名
touch指令通常用来创建文件,也可以用来更改时间
1.创建普通文件:
用来创造一个不存在的文件:
2.更改文件最新时间:
如果再一次touch这个,你已经存在的文件,它的时间会发生改变:
(6) mkdir 指令:
mkdir + 目录名
(7)tree指令:
以树状图的形式列出目录所包含的内容
如果没有tree命令,可以返回到root用户名下,安装tree命令:
yum -y install tree
(8)rmdir和rm指令:
- rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。(-p:以递归的形式删除!) - rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
rm常用选项:
-f 即使文件属性为只读(即写保护),force:强制删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
(9)man指令:
1.Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man 语法: man [选项] 命令。(man指令说白了:就是Linux的指令手册)
2.选项:
-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按
下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
3.手册分为8章:
1 是普通的命令(常用)
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件(常用)
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
4.如果没有man手册,安装方法和tree一样:
yum -y install man
回车后如下:(退出时按:q)
(10)cp指令:
1.cp指令用来 复制 文件或目录,相当于windows下的复制操作:
2.语法:
cp 源 目标
3.说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息!
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
(11)mv指令:
1.mv命令是move的缩写,用来移动文件或者对文件改名,经常用来备份文件或者目录,相当于windows下的剪切操作:
2.语法:
mv 源 目标
3.功能:
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
4.选项:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
(12)cat指令:
1.语法:cat [选项][文件]
2.功能: 查看目标文件的内容
3.常用选项:
- -b 对非空输出行编号
- -n 对输出的所有行编号
- -s 不输出多行空行
(13)more指令:
1.语法:more [选项][文件]
2.功能:more命令,功能类似 cat
3.常用选项:
- -n 对输出的所有行编号
- q 退出more
4.more还有相应操作:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
只显示前十行:
(14)less指令(重要):
less既可以向下翻行,也可以向上翻行
- less 对文件或其它输出进行分页显示,是linux正统查看文件内容的工具,功能强大。less 的用法比起 more 更加的有弹性。 more无法向前翻, 只能往后看。
- 使用 less ,就可以使用 [pageup][pagedown] 来往前或往后翻看文件。 less 还有更多的搜索功能,还可以向下搜或向上搜。且less在查看之前不会加载整个文件
- 语法: less [参数] 文件
- 功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
- 选项:
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit(退出)
(15)head和tail指令:
1.head指令:
1.head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
2.语法: head [参数]… [文件]…
3.功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
4.选项:
-n<行数> 显示的行数
2.tail指令:
1.tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
2.语法: tail[必要参数][选择参数][文件]
3.功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
4.选项:
- -f 循环读取
- -n<行数> 显示行数
(16)与时间相关的指令:
1.date指令:
1.date 指定格式显示时间: date +%Y-%m-%d_%H:%M:%S(在 年 月 日 里面这个年份要大写:Y月和日都是小写(m d),时分秒里面的字母都是大写(H M S),中间的分隔符任意选择)
但是不要忘了date后面要跟上加号(+)!
2.cal指令:
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
1.命令格式: cal [参数][月份][年份]
2.功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
3.常用选项:
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
(17)find指令:
1.说明:在目录结构中搜索文件,find也提供了查找条件。在目录结构中搜索文件,并执行指定的操作。运行耗资源的find命令时,尽量后台执行,因为遍历一个大的文件系统可能会花费很长时间(超过30G字节)。
在文件树中查找文件,并作出相应处理(可能查找磁盘),因此第一次执行查找命令会比较慢,后面执行同样的查找命令会比较快。
2.语法:
find -name 文件名
(18)which指令:
1.说明:在PATH变量指定的路径中,判断系统命令是否存在,并搜索该命令在系统哪个位置。命令本身就是用语言写的程序工具指令,是保存在磁盘上的文件。
2.语法:
which 命令
(19)grep指令:
1.语法: grep [选项] 搜寻字符串 文件
2功能: 在文件中搜索字符串,将找到的行打印出来
3.常用选项:
- -i :忽略大小写的不同,所以大小写视为相同
- -n :顺便输出行号
- -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行
(20)zip和unzip指令:
1.zip:
1.功能:zip : 将目录或文件压缩成zip格式
2.语法;
zip 压缩文件.zip 目录或文件
3.示例:
4.压缩/解压缩目录:
压缩目录有2种方式:
zip 目标名.zip 目录名/*
或
zip -r 目标名.zip 目录名/
2.unzip:
语法:
unzip 压缩文件.zip 目录或文件
未完待续:
好了,今天的分享就到这里了
如果对你有帮助,记得点赞👍+关注哦!
我的主页还有其他文章,欢迎学习指点。关注我,让我们一起学习,一起成长吧!