文章目录
- 【Linux】1. 基本指令详解
- 前言--Linux操作系统由来
- 2.基本指令
-
- 2.1切换用户命令 :su - root / su - xxx
- 2.2 man (查看手册)
- 2.3 ls指令 (查看文件目录)
- 重要知识点 :文件的属性数据
- ls -a 显示Linux中的隐藏文件
- 2.4 mkdir指令 (创建目录)
- 2.5 pwd命令 (查看目录)
- 2.6 cd 指令 (改变目录)
- 2.7 touch 命令 (创建命令)
- 2.8 rmdir 指令 && rm 指令 (删除目录&文件)
- 2.9 cp指令 (复制目录&文件)
- 2.10 mv 指令 (移动文件 &目录)
- 2.11 cat & tac 命令 (打印文件内容)
- 2.12 **重要的几个热键[Tab],[ctrl]-c, [ctrl]-d,[ctrl]-r**
- 2.13**more指令 和** less命令 (查看文本)
- 功能:
- 2.14echo (重定向)
- 2.15 head指令 与 tail指令(打印首部&尾部)
- 2.16 grep指令 (行文本过滤工具)
- 2.17file指令
- 2.18 find命令
- 2.19 zip/unzip指令
- 安装:sudo yum install -y zip
- 2.20 tar指令
- 2.21 bc指令
- 2.22 uname -r指令
- 2.23 关机
- 2.24.扩展命令
- 3 shell命令以及运行原理
【Linux】1. 基本指令详解
前言–Linux操作系统由来
1.1Linux发展史
大名鼎鼎的Linux之父就是Linus Benedict Torvalds,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.fifi)上提供过这个版本的的源代码。
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年公布的。
1.2Linux开源
对比微软开发的Windows系统,还有苹果公司开发的ios系统,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.3Linux发行版本
-
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随带许多的渗透测试工具,无论是Wififi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包
毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。
OS/操作系统概念
通过画图形象的简单认识一下操作系统
2.基本指令
为什么有指令操作,是因为早期的操作系统中,是没有现在的图形化界面的,只有指令,而且是由打字机为雏形发展的。而我们为什么要学习指令操作呢, 因为对于我们学习OS原理、编程,指令操作非常有必要,因为指令操作更能贴近OS,便于我们更够更好的学习OS
2.1切换用户命令 :su - root / su - xxx
- 在linux系统中,有分为超级用户(root)还有普通用户(自己创建的用户)
- 一般来说,我们操作的是普通用户,因为root用户一旦操作失误会导致服务器崩溃或者删库的情况
- 而我们需要一些权限只能在root用户下操作,所以为了方便切换,便有切换用户命令
- linux下我们在切换用户的时候,都需要输入密码,且在linux输入密码是无显示和提示输入的
- 所以设置root密码和用户密码的时候,不要设置同一个密码,防止切换成root用户,导致操作失误。
那我们怎么创建自己的用户呢?
以下的指令可以完成——》
2.1.1 addusr
语法:adduser NAME
功能:添加用户
**常用选项:**无
2.1.2 passwd
语法:passwd NAME
功能:为添加的用户添加密码
**常用选项:**无
2.1.3 userdel NAME
语法:userdel NAME
功能:删除用户
**常用选项:**userdel -r haha 递归删除,才能删干净
2.2 man (查看手册)
- 用途: 询问Linux的那个男人
- Linux 的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问 Linux 手册页的命令是 man 语法 : man [ 选项 ] 命令
常用选项
- 1.-k 根据关键字搜索联机帮助
- 2.num 只在第 num 章节找
- -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用 a 选项,当按下q 退出,他会继续往后面搜索,直到所有章节都搜索完毕。
man手册分为八章
- 1.普通命令
- 2.系统调用 , 如 open,write 之类的 ( 通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
- 3.库函数 , 如 printf,fread
- 4.特殊文件 , 也就是 /dev 下的各种设备文件
- 5.指文件的格式 , 比如 passwd, 就会说明这个文件中各个字段的含义
- 6.是给游戏留的 , 由各个游戏自己定义
- 7.是附件还有一些变量 , 比如向 environ 这种全局变量在这里就有说明
- 8.系统管理用的命令 , 这些命令只能由 root 使用 , 如 ifconfifigcd
2.3 ls指令 (查看文件目录)
语法 : ls [ 选项 ] [ 目录或文件 ]
功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用的 指令选项 :
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -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 一行只输出一个文件。
重要知识点 :文件的属性数据
当我们创建了一个空文件,即使里面没有数据,在磁盘中也是占据空间的。
因为文件的定义是 :文件=文件内容 + 文件属性
所以属性数据也需要保存起来,占据一定的空间。
而我们要掌握的文件操作根据文件的定义就分为两类:
- 对文件的内容操作。
- 对文件的属性操作。 <