飞道的博客

这样学习Linux,楼下王大爷都已经入门了,你还不来?

582人阅读  评论(0)

趁着今天王大爷不在家,我Linux今天一定要入门,我先冲了

暖暖镇楼

快速入门Linux

1. 发展史

学习Linux系统编程,你可能要问Linux从哪里来?它是怎么发展的?

01.LUNIX发展的历史

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年公布的 VS Windows 发展史

02. 开源

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也成为了开源软件的代名词。

03. 发行版本

  • Debian
    Debian运行起来极其稳定,这使得它非常适合用于服务器。 debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。
  • Ubuntu
    Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。
  • 红帽企业级Linux
    这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。
  • CentOS
    CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。 CentOS使用YUM来管理软件包。
  • Fedora
    Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。
  • Kali Linux
    Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali使用APT来管理软件包。
    … …

04. os概念,定位

使计算机更好用! 这是操作系统的根本要义。

2.使用Xshell

查看 Linux 主机 ip
在终端下敲 ifconfig 指令, 查看到 ip 地址.

使用 XShell 登陆主机
在 XShell 终端下敲 ssh [ip地址]
ip 为刚才看到的 ifconfig 结果.
如果网络畅通, 将会提示输入用户名密码. 输入即可正确登陆

XShell 下的复制粘贴
复制: ctrl + insert (有些同学的 insert 需要配合 fn 来按)
粘贴: shift + insert
ctrl + c / ctrl + v 是不行的.

root用户

普通用户

注意:

  1. Linux下的所有命令都是一个可执行程序
  2. Linux(一切皆文件)
  3. 没有消息就是最好的消息(执行完一个命令如果系统没给任何信息说明命令执行成功了)

3.Linux常用命令

01.ls命令

命令范式:ls [命令行参数][目录或文件] 
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

ls后面如果不加任何目录或者文件夹,则表示默认输出当前目录或文件夹下的内容。
命令行参数
-l 列出文件的详细信息。eg:ls -l
“-”表示普通文件,
d 表示文件夹
后面空格前内容表示当前文件的权限, 之后表示链接数,之后表示文件所有者, 之后表示文件所属组, 之后表示文件大小单位是字节,之后表示修改时间, 再之后表示文件名称
-a 列出目录下的所有文件,包括隐含文件(以 . 开头的)。
. 当前目录
… 上一级目录
-h 罗列当前文件大小, 可以搭配使用 eg:(ll -h)=(ls -lh)

ls -lrt 按时间排序

02.pwd命令

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

“/” 表示当前系统的根目录

“/root” 表示root用户的家目录,root用户每次登录上来都在该目录下
不同用户都有不同用户的家目录

第一个/为根目录,后面所有/都为路径分割符
根目录:一个绝对路径的第一个/
家目录:
1.针对不同用户家目录都是不一样的
2.root:默认的家目录为/root

普通用户:一般情况下普通用户的家目录都是/home/用户名称的文件夹

cd命令

语法:cd [路径]
功能:改变工作目录。将当前工作目录改变到指定的目录下。

cd … : 返回上级目录
cd /home/litao/linux/ : 绝对路径,从根目录开始的
cd …/day02/ : 相对路径,相对于上一级路径…而言的
cd ./day02/ : 相对路径,相对于当前路径.而言的

cd快捷用法

命令 解释
cd 哪个用户执行就回到哪个用户的家目录
cd ~ 进入用户家目录
cd - 返回(切换到最近访问目录)

04.touch指令(创建文件)

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

05.mkdir指令(重要)(创建文件夹)

语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录

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

06.rmdir指令 && rm 指令(重要):

 (删除文件夹和删除文件)
 语法:rmdir [-p][dirName] 

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

 语法:rm [-f-i-r-v][dirName/dir] 
 功能:删除文件或目录

-f 即使文件属性为只读(即写保护),亦直接删除(强制删除)
-r 删除目录及其下所有文件(递归删除)
-i 删除前逐一询问确认 eg: rm -ri+文件夹名
注:1.禁用 rm -rf /* 从根目录开始删除所有文件
2.谨慎使用 rm -rf * rm -rf ./* 删除当前目录下的所有文件

07.man指令(重要):

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

有问题找man:解释一下,面手册分为8章

1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
手册2:当中查询的函数都是操作系统提供的,统称为“系统调用函数”
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
手册3:查询出来的都是库函数
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

08.echo 重定向

echo 输出内容,也可以输出环境变量    eg:  echo $path

“>” 重定向符
eg:echo abcd > test (将abcd放在test文件中)
cat test(查看文件的内容)

09.cat

cat 文件名 
功能: 查看目标文件的内容
-n 对输出的所有行编号

10.cp指令

 功能: 复制文件或目录

文件:cp 文件 路径
cp 文件 路径/重命名
文件夹: 必须要有 -r选项,递归处理
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

11.mv指令

mv是move的缩写
1.移动文件
移动 : mv 源文件或目录 目标文件或目录

2.将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
重命名:mv 文件名 新名字

12.more指令

功能:more命令,功能类似 cat

Column 1 Column 2
-n 对输出的所有行编号
f 向后查看新内容,一页
b 向前查看,一页
q 退出

seq 1 100 > test 把1-100写入test

13.less指令

less 文件
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。

字符 功能
/ 字符串 向下搜索“字符串”的功能
? 字符串 向上搜索“字符串”的功能
n 重复前一个搜索(与 / 或 ? 有关)
N 反向重复前一个搜索(与 / 或 ? 有关)
q quit停止

14.head

1.查看文档首部的内容,默认十行

2.-num 自己指定数字,

15.tail

查看文档尾部的内容,默认十行
-f 循环读取
tail -f 文件

此时进入了用户输入模式,要想退出则按下【Ctrl+c】键即可

压缩和解压缩的指令zip,unzip,tar

16.zip

1.文件:zip 压缩后的文件 .zip待压缩的文件
2.文件夹:zip -r 压缩后的文件 .zip待压缩的文件夹
unzip
1.unzip[xxx].zip 默认解压到当前路径

2.unzip[xxx].zip -d [路径]

17.tar指令

gz
压缩:tar -zcvf 压缩之后的文件名 .tar.gz待压缩的文件或文件夹
z:gz压缩方式 c:创建压缩文件 v:view展示压缩或者解压缩的过程
f:后面需要直接指定压缩文件的名称
解压缩:tar -zxvf待解压缩的文件.tar.gz x:解压缩

bz2
压缩:tar -jcvf 压缩之后的文件名 .tar.bz2待压缩的文件或文件夹
j:bz2压缩方式
解压缩:tar -jxvf待压缩的文件.tar.bz2

18.find 、grep

find:在linux系统当中查找文件
find [path] -name 要查找的文件名

grep:在文件中查找字符串
grep [string] [path] -R递归查找
默认查找路径中文件的内容

19.date 日期+时间命令

更改当前系统时间:
date -s"具体时间到秒"
cal:日历,按月查看

cal -y 以年为单位

20.bc命令

bc命令可以很方便的进行浮点运算

21.uname -r 获取os版本信息

内核版本el6,el7
x86 体系结构
arm 体系结构

22.几个重要热键

Tab按键—具有『命令补全』和『档案补齐』的功能
Ctrl+c按键—让当前的程序『停掉』
hostroy:查看历史执行过的命令
!显示的序号 重复执行
! 部分字符串(匹配最近执行的)

23.命令行解释器

命令行解释器是一个单独的软件程序,它可在用户和操作系统之间提供直接的通讯。命令行解释器是解释器的一种,用于对命令行进行解释执行。

以上就是本篇文章的重点,今天就到此结束了哈,有不同的观点或者有不同思路的朋友欢迎大家赏光私我哈,本着相互进步的原则,希望大家能多多向我提意见,谢谢~~


转载:https://blog.csdn.net/weixin_44940405/article/details/117081644
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场