初识Linux(1):入门简介、基础指令

初识Linux(1):入门简介、基础指令_第1张图片

文章目录

  • 前言
  • Linux文件系统
  • 基础指令
    • touch、mkdir
    • ls
    • cd
    • cp、mv
    • nano、cat、tac
    • more、less
    • rm
    • grep
    • which、whereis、find
    • 管道 |
    • echo
    • 重定向:>、>>、<
    • alias
    • stat
    • cal、date
    • zip
    • head、tail
    • tar
    • bc
    • table
    • uname
    • history、ctrl R
    • ctrl D
    • Ctrl C、Ctrl Z
    • shutdown
  • 编者寄语

前言

Linux简史:

  自打1946年2月14日,第一台用来计算导弹弹道轨迹的计算机——埃尼阿克诞生以后,逐渐商业化,各种大佬入场研发升级,都是外国人的恩怨故事。

  Unix之父——肯•汤普森(Ken Thompson)发明了UNIX操作系统,价格昂贵,一般企业高校用,汇编语言实现,可移植性很差;C语言之父——丹尼斯·里奇(Dennis MacAlistair Ritchie)和汤普森一商量,写出了C语言版本的UNIX,随后高校的学生也能有机会上手操作使用。

  这就点亮了某一位同学的技能树:Linux之父——林纳斯·托瓦兹(Linus Benedict Torvalds),写出了类UNIX的操作系统,取名Linux(Linux is not unix),开源免费。天下苦收费久矣,于是有很多人出于使命感和兴趣参与进来迭代更新,逐渐成了开源的代名词。


  Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。

  Linux内核官网,基于内核版本的二次开发商业发行版本有:Debian ,Ubuntu ,CentOS,Fedora ,Kali Linux ,红帽企业级Linux等等。

初识Linux(1):入门简介、基础指令_第2张图片


  严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。图形用户界面(Graphical User Interface,简称 GUI),是计算机图形学技术的一种,它一般由窗口、下拉菜单或者对话框等图形化的控件组成。

  • 什么是Linux内核,什么是Linux发行版本

初识Linux(1):入门简介、基础指令_第3张图片


操作系统概念:

初识Linux(1):入门简介、基础指令_第4张图片

  • 如何学好操作系统原理这门课? - cxuan的回答 - 知乎

  程序员不直接和这些硬件打交道,在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之为 操作系统,它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型。
初识Linux(1):入门简介、基础指令_第5张图片

  • 图片来源:需要多久才能看完linux内核源码? - 一口Linux的文章 - 知乎

设备驱动:
  操作系统做决策,设备驱动做执行;真正的管理者,是不会和被管理者(硬件)直接打交道。


命令行 VS 图形界面:

  那个年代,乔布斯的mac os借鉴施乐公司,发明了第一款图形界面os,让人体验更好。随后比尔盖茨跟进,有了windows。由于苹果软硬件都自己做,成本比较贵;

  windows也试了一下,搞不赢,就和英特尔合作;降低了成本,才有了便宜的笔记本。起初windows也是盗版横行,没法对每个用户起诉,于是就对笔记本厂商起诉,逐渐的实现了捆绑销售。笔记本厂商付钱,用户相当白嫖。图形界面在用户体验上是进步的,当计算机足够便宜,方便使用,才有了现在广泛普及。起初微软是要个IBM合作的,但IBM觉得平民未来不可能用得上以及会用计算机。

  Linux这种命令行操作,可以说就是给专业人用的,有门槛,不刻意讨好用户;所以在企业服务器端广泛应用,几乎处于垄断地位。另外更接近原生系统,且先有键盘后有鼠标。

  移动互联网到来时,谷歌对抗苹果,买下安卓(基于Linux开发)前身的某家公司,有了安卓机的今天。

  乔布斯:要不是你托,企业现在也得用我的,还有你盖茨,你抄我作业
  盖茨:你也是抄的别人的

总结:Linux是一款开源的企业级后台操作系统,命令行方式交互,稳定且高效。


环境搭建:

  1. 装的系统就是Linux的、或者使用虚拟机软件
  2. 用大厂的云服务器:轻量应用服务器。大厂都有自己的独立机房,给中小企业以租赁服务器的方式提供云服务,个人也可以购买,租赁。
      设置好密码后,会有个公网ip,下面Xshell会用
  3. 使用Xshell进行远程登陆…官网下载安装的时候选择 “home/school” 则为免费版本.官网链接
  4. Xshell安装的时候基本一路next。
  5. 主机填服务器的IP即可,这里有图片

X Shell登录与创建多个账户:

  1. 第一次用户名是root,然后输入云服务器的密码
  2. 登陆上去以后,创建子账户:
ls /home          //看一下都有哪些人在用.. 
adduser name
passwd name  //输密码是不显示的,回车结束,然后会在输一遍
  1. 关了重开,然后新建会话,还是那个IP,登录用新建的用户名和密码。
  2. 到了公司个人一般都是用的这样的子账户,进行工作开发。
whoami  //显示当前是哪个用户
pwd  //显示当前路径

Linux文件系统

Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
初识Linux(1):入门简介、基础指令_第6张图片

  • 各目录文件详解
  • Linux的文件后缀是为了方便使用者清楚这是什么类型,并不能决定文件的属性
  • / 是根目录下
    • cd / : 从任何用户执行该命令都会进入同一个目录,即所有用户共享
    • root用户的家目录是:/root

基础指令

  • 每个指令都有很多选项,从而实现像windows系统那样的操作。

touch、mkdir

touch  t1.xtx	//创建普通文件 

mkdir -p t1/t2.t3	//创建多级目录 

mkdir t1 //创建t1目录

ls

  • 显示目录中的所有文件
ls  -l 	 	//显示当前目录下所有文件时间 用户id,组id等具体信息 
      
ls -a //显示隐藏文件  

. //当前目录

.. //上一级目录

tree . //递归显示当前路径下的所有文件
//若没有该命令,则需切回至root用户  输入:yum install -y tree 


cd

  • 进入某个目录
  • 目录名后可加 / ,也可不加
cd  ..   	//回退上级目录  

cd - //在最近的目录之间切换   

cd ~ //回到家目录,用户目录

cd t1 //进入t1目录

cd t1/  //效果一样

  • / :根目录
    • cd / : 从任何用户执行该命令都会进入同一个目录,即所有用户共享
  • /home :家目录(我觉得还不如叫用户列表目录)
    • cd /home :会显示这台机器的用户,如图,所以我认为与其叫什么家目录,不如说是用户目录
  • ~ :当前用户的家目录
  • cd ~ 等价于 cd /home/imooc :会进入当前用户的家目录(一般情况连接上机器都是在这个目录,一般操作也都是在这里

cp、mv

  • 复制,粘贴
cp -r t1 ../tt1	 //递归复制t1目录 至 上一级的tt1目录下

mv t1.xtx t1.txt //重命名

mv t1.xtx ../tt1 //将文件移动至 上一级的tt1 目录下 


nano、cat、tac

nano t1.xtx //像记事本一样对 t1.xtx 进行编辑

cat t1.xtx //将文件内容输出到显示器  
 
tac t1.xtx //从文件末尾行倒着显示 
//适合显示小文件,多了会刷屏。

more、less

  • 文件阅读
more -3 t1.xtx //只显示该文件的前三行,支持分页显示,不支持向上滚动

less t1.xtx //分页显示文件的内容,支持上下翻页 /支持搜索,显示在内容所在的那一页

rm

  • 删除目录或文件
rm -rf t1 //强制递归删除t1目录  

rmdir t0 //删除空目录  

rm t1.xtx //删除普通文件

rm -i * //逐个删除当前目录下的所有文件

rm -i *.xtx //逐个删除当前目录下的.xtx文件

* //通配符

grep

grep -i 'hello' t1.xtx // -i 忽略大小写 显示有'hello'内容的那些行
//过滤

grep -v 'hello' t1.xtx // 显示不带有'hello'内容的那些行

grep -E -i 'hello|hhd' t1.xtx  //显示有'hello''hhd'内容的那些行

which、whereis、find

  • find pathname -options
  • 功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
  • -name 按照文件名查找文件。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
which ls //查找命令所在的文件路径

whereis ls //在系统的特定路径下,进行命令或文档的相关查找

find ../t1  //在上一级目录下寻找t1文件

管道 |

  • 日志,相当于程序的日记,哪里报错了,什么时间报错了。
管道:一个命令的数据,传递给另一个命令

dmesg | grep -i 'error' | more —3 //系统的日志文件,过滤一下错误信息,只显示前三行。

echo

  • echo:在屏幕上显示一些信息等.
echo "hello" 

-e选项后, \n被赋予了"神奇的能力", 它实现了换行效果

echo -e "hello\nhhd" 

重定向:>、>>、<

输出重定向 > ,将原本输出到某文件的内容,输出到另一个文件当中
echo "hello" > t1.xtx //将 hello 输出到 t1文件中,会清空该文件的原来内容,写入新内容

//如何快速清空一个文件的内容?
 > t1.xtx  //空输入到文件中...秒清.

追加重定向 >>  
echo "hello" >> t1.xtx //在文件末尾追加新内容

输入重定向
cat < t1.xtx //先输入重定向,在读取t1.xtx的内容。
cat t1.xtx  //程序直接打开文件读取

alias

alias clr='clear' //对命令clear 起别名,输入clr 调用的是clear ,清屏;旨在当次登陆有效

stat

stat  t1.xtx //显示:最近一次访问文件的时间
	 		 //最近一次修改文件内容的时间
			 //最近一次修改文件属性的时间

cal、date

日历:
cal 1999 //显示1999年的日历  
cal -3 //显示临近三个月的日历


时间戳:比较适合进行范围查找,占用内存小
date +%s      //从1970年1月1日00:00:00到当前的秒数,格林威治时间
date +%X   //相当于 %H:%M:%S  时分秒
date +%F //相当于 %Y-%m-%d  年月日

zip

zip  -r t1.zip t1/  //将t1目录打包压缩 

-r 递归处理,将指定目录下的所有文件和子目录一并处理

unzip t1.zip -d ../tmp  //解压缩到上一级的tmp目录下


head、tail


head t1.xtx //默认显示一个文件的头部10行内容

head -n3 t1.xtx  //显示前3行内容

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件

tail -f filename //会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容

tail -n3 t1.xtx
  • 一个5000行的文件,取出1990-2000行的内容,再逆置一下
head -n2001 log.txt | tail -n10 | tac

tar

  • Linux有两种压缩格式:.zip,.tgz
  • 打包压缩:大量文件搞成一个文件。
  • 减少因为网络或者其他原因导致文件丢失的情况
  • 减少存储或者传送的成本

tar czvf t1.tgz t1   //打包压缩过程显示出来

tar xzvf t1.tgz  //在当前目录下解压

tar xzvf t1.tgz -C tt1  //解压到tt1 目录下

[saul@VM-12-7-centos ~]$ pwd
/home/saul
[saul@VM-12-7-centos ~]$ ll
total 24
drwxrwxr-x 2 saul saul  4096 Jul 20 17:07 tt718
drwxrwxr-x 3 saul saul  4096 Jul 20 16:16 tt719
-rw-rw-r-- 1 saul saul 12102 Jul 20 16:25 tt719.tgz
drwxrwxr-x 2 saul saul  4096 Jul 20 17:34 tt720

bc

  • 计算器

table

  • 输入一个命令,按两下table,显示相关命令
  • 输入一个命令的一部分,按一下table,补全命令
[saul@VM-12-7-centos ~]$ rm
rm             rmail          rmail.postfix  rmdir          rmmod          
[saul@VM-12-7-centos ~]$ rmdir 

uname

  • uname用来获取电脑和操作系统的相关信息。
  • uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
  • a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
[saul@VM-12-7-centos ~]$ uname -a  //查看具体信息
Linux VM-12-7-centos 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

VM-12-7-centos  //主机名

3.10.0-1160.62.1.el7.x86_64  //内核版本  3 主版本  10 次版本,偶数通常代表是稳定版本;0 修正版本,修正一些小bug

x86_64  // cpu架构:微软和英特尔合作,一损俱损,一荣俱荣。Intel x86(32),x86_64(64位操作系统)--> x64

smp //对称多处理  
  • cpu的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量,依次类推。32位操作系统针对的32位的CPU设计。

history、ctrl R

  • 输入过的命令
  • 搜索输入过的某条命令

ctrl D

  • 退出,账号下线…

Ctrl C、Ctrl Z

  • ctrl-c: ( kill foreground process ) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行;

  • ctrl-z: ( suspend foreground process ) 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程,而并非结束进程,用户可以使用使用fg/bg操作恢复执行前台或后台的进程。fg命令在前台恢复执行被挂起的进程,此时可以使用ctrl-z再次挂起该进程,bg命令在后台恢复执行被挂起的进程,而此时将无法使用ctrl-z再次挂起该进程。

shutdown

shutdown -t 60  //60秒后关机

shutdown -h 立即关机

shutdown -r 重启

编者寄语

- 程序员中的那些梗,都是一些老程序员的顶级凡尔赛…hhh
- 意志不坚定如我

  • 每条指令都可以百度,谷歌。
  • 这里介绍两条man、info
  • 云服务:初识Linux(1):入门简介、基础指令_第7张图片

你可能感兴趣的:(Linux,linux,unix,服务器,开发语言,后端)