Linux的世界 -- 初次接触和一些常见的基本指令

一、Linux的介绍和准备

1、简单介绍下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的不同版本

  • Debian

Debian运行起来极其稳定,这使得它非常适合用于服务器。 debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。

  • Ubuntu

Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手用户肯定爱不释手的一款操作系统。

  •  红帽企业级Linux

这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证

  • CentOS

CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。

  • Fedora

小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。

  • Kali Linux

Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。

 

 

3、 环境准备

我这里使用的是Xshell + 云服务器的一个组合

xhell  -->  

 

二、一些基本的指令

1、who -- 查询在当前机器中有几个用户登录使用

 

2、whoami -- 查询当前登陆的用户是谁

 

 

3、ssh 用户名 @ + ip地址  -- 通过ssh协议链接到远程服务器

 

输入指令后会弹出一个框,要求输入用户相对应的密码

 

 输入密码成功后,就可以正常使用了

 

4、ifconfig -- 查看Linux主机ip地址

 

5、clear -- 清除当前终端上显示的内容 

6、键盘上的上、下方向键 -- 翻阅之前输入过的指令

 

 

7、

复制:Ctrl + Insert

粘贴: Shift + Insert

全屏: Alt + Enter

终止程序运行:Ctrl + C

 

三、Linux的常见指令

1、ls指令 -- 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息

用法: ls [选项] [目录或者文件]

常用选项:

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件(Windows系统下也一样)。

  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录

  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件

  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件

  • -l 列出文件的详细信息。(不包含隐藏文件)

  • -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)

  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)

  • -r 对目录反向排序。

  • -t 以时间排序。

  • -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

  • -R 列出所有子目录下的文件。(递归)

  • -1 一行只输出一个文件。

 

注意:

ls指令中,ls -l 与 ll 是等价的,这两个命令作用都是一样的 。ll命令就像是ls -l的别名

 

补充:

什么是文件

这就是我们新建的一个文本文档,也可以叫做文件。

我们可以看到这个新建的文本文档的大小是0KB,那我们是不是就可以认为这个文本文档不会占用磁盘空间呢?答案是错的,就算我们不在文档里面写入数据,文档也会在磁盘中站有一小部分内存

那为什么大小为空的文件却能占有磁盘的一小部分内存呢?那是因为文件不仅仅只有文件的内容,除了文件的内容,计算机还得记录文件的名字文件的修改时间文件的格式等等。而刚才说的这些内容全部叫做文件的属性文件的属性也是数据,也得被计算机记录下来

因此我们可以得出一个结论: 文件 = 文件内容 + 文件属性 

所以当我们对文件进行修改时,无非就是两种情况:一是对文件的内容进行修改,二是对文件的属性进行修改

文件属性:文件的大小,文件的名字。文件的最后修改时间,文件的权限。这些属性表示了文件的基本信息。

文件内容:文件的内容实际上就是我们从键盘上输入的数据,通常是以二进制存储。这些数据也可以有很多种分类,譬如图片,音频,视频,文本等等。

 

. 和 .. 文件

 在Linux系统和Windows系统中,一个隐藏文件通常是以 .开头。而这些隐藏文件通常是不会显示出来,如果我们想要看到隐藏文件到底长什么样,我们就得进行相应的操作才能让隐藏文件显现出来。

在Windows系统中,我们需要在文件夹中点击相应的按钮就能让隐藏文件显现出来:


然而,在Linux系统中我们就需要输入相对应的命令ls -l -a 或者是 ll -a才能看到隐藏文件:

关于 . 和 .. 的解释就到这,我将会在后面的cd指令中再详细讲解 . 和 ..

2、 pwd指令 -- 显示用户当前所在的目录

语法: pwd

功能:显示用户当前所在的目录

这就表示我现在在根目录底下的root目录底下的110这个目录中。

 

3、 cd指令 -- 切换目录

语法:cd 目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下

路径的知识:

我们先得了解什么是目录?(我们可以叫路径,也可以叫目录。两者没多大差别)

目录就是由文件路径分隔符文件夹或者目录构成的字符串

Linux中整体目录和文件的构成:

Linux的整体目录结构是一颗多叉树的样子:

1、叶子节点: 一定是普通文件或者是空目录

2、路上结点: 非叶子节点,一定是目录

3、访问一个文件的本质:需要先找到它;找到文件的本质就是在一颗多叉树中进行结点遍历和查找!

 

然而在不同系统中,目录的表示方式也会有所不同

Windows系统:D:\STUDy\Linux\linux\test_7_8

Linux系统:/root/110

这又涉及到另一个知识点:什么是路径分隔符

 

了解完什么是路径后,接下来我们就来了解路径的分类

路径分为两类:一类是文件路径,另一类是目录路径。

区分这两个路径的唯一方法就是看路径的最后是文件或者为空还是目录。

 什么是相对路径,什么是绝对路径

相对路径:相对于自身所在的目录作为一个参考点,让我们来定位一个文件的路径


绝对路径:从根目录/开始,直接定位一个叶子文件。(在系统当中,无论当前你所处在哪个目录,使用绝对路径后,都能唯一定位到一个叶子文件)。


分析图:

在上面讲解相对路径时出现的 . 和 .. 到底是什么 ?我现在就来解释

在Linux中,无论是文件还是目录。它里面都会存在两个隐藏文件:一个是. ,另一个则是 ..

  •  .(当前路径): 当我们输入的命令行中带有 .这个符号,那就代表着这条命令会涉及到当前用户所在的目录。譬如当我们输入ll . 这个指令时,系统就会列出当前目录下的子目录和文件。

  • ..(上级路径): 当我们输入的命令行中带有 ..这个符号,那就代表着这条命令会涉及到当前用户所在的目录的父目录。譬如当我们输入ll . .这个指令时,系统就会列出当前目录的父目录下的子目录和文件。

讲完有关路径的知识后,想必对后面要学习的指令会提供很大的帮助

 cd指令:

经过两次cd指令后,我们从110这个目录返回到了根目录

当我们在一个叶子文件想要跳转到另一个叶子文件或这个路上结点时,我们就可以使用cd指令搭配相对路径或者时绝对路径来进行跳转。

绝对路径

相对路径

 

 

 cd指令的扩展:

cd -  -- 返回最近访问的目录

cd ~ -- 进入家目录

什么是家目录

当用户进行登录后,默认登录所处的路径,就是当前用户的家目录。

tip:在未来,建议所写的代码,创建的文件都放在家目录中

在Linux中,登录的用户分为两种。一种是超级管理员root,另一种则是普通用户

用root登录:

用普通用户登录:

 

 4、touch指令 -- 创建文件或者

语法:touch [选项]... 文件...

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

  • -a 或--time=atime或--time=access或--time=use只更改存取时间。

  • -c 或--no-create 不建立任何文档。

  • -d 使用指定的日期时间,而非现在的时间。
  • -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m 或--time=mtime或--time=modify 只更改变动时间。
  • -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-t 使用指定的日期时间,而非现在的时间。

补充指令:stat指令 + 文件名 --  查看文件更详细的信息

 

5、mkdir指令  --  创建目录

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname”的目录

  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录 

 

6、rm指令 -- 删除文件和目录

rm命令可以同时删除文件或目录


语法:rm [-f-i-r-v][dirName/dir]

适用对象:所有使用者

功能:删除文件或目录

  • -f 即使文件属性为只读(即写保护),亦直接删除

  • -i 删除前逐一询问确认

  • -r 删除目录及其下所有文件

rm -r

rm -f -r

rm -i -r 

7、man指令 -- 访问Linux手册

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

访问Linux手册页的命令是man 语法: man [选项] 命令

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

7.1  手册介绍

解释一下,面手册分为8章

  • 1 是普通的命令

  • 2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

  • 3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件

  • 5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

  • 6 是给游戏留的,由各个游戏自己定义

  • 7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

  • 8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

 

8、cp指令  --   复制文件或者目录

语法:cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

9、mv指令 --  移动/重命名文件或者目录

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

移动

 

重命名

 

9.1 补充

当把文件或者目录拷贝/user/bin 这个目录下,就相当于在Linux系统中安装了个可执行程序


  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Peace & Love487

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值