Linux学习01


Linux

什么是Linux

人们日常在Windows上访问的百度、谷歌、淘宝、qq、迅雷等软件,支撑这些软件运行的,后台是成千上万的Linux服务器,它们时时刻刻进行着忙碌的数据处理和运算。通常服务器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx+ MySQL + PHP)在Linux的世界里一切皆文件

Linux背景

两个开发了C语言的大佬编写了unix,然后不同公司开发了不同的发行版并要付费使用,然后咧,林纳斯·托瓦兹(Linus Torvalds)基于unix编写Linux,响应斯托曼的GNU计划开源了代码,这个就是后来的Linux内核,后来由世界上无数个爱好者共同贡献修改,才有了现在好用的Linux,开源精神yyds!

VMware和Centos7

VMware可以在window中安装虚拟机,使用虚拟机来安装Linux,除了安装方便简单,也不怕讲电脑系统搞坏,无论你怎么玩,也不怕Linux坏掉,因为vmware可以快照!可以重新安装,多玩坏几次你就是装机大神了!

Linux有不少发行版,使用最多的是Centos以及Unbantu。

省略安装过程,因为随便百度或哔哩哔哩搜索就有详细的安装教程!

Centos7可以直接在windows和虚例机间复制粘贴文件,无需安装vmtools等,共享文件夹可以直接设置!

Linux目录结构

不同于Windows中的C、D盘的概念,在Linux底下,所有的文件与目录都是由根目录开始,是目录与文件的源头,然后一个个的分支下来,如同树枝状,因此称为这种目录配置为:目录树

远程连接或开启虚例机进入Linux后输入

ls / 查看根目录下的文件目录
ls 显示当前所在位置的目录,如果所在位置没有文件就不会显示

pwd 显示当前所在位置

根目录树下常见文件夹说明,有些文件目录不能轻易改动!

  • /bin
    bin是Binary的缩写, 这个目录存放着最经常使用的命令。

  • /boot:
    这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev :
    dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

  • /etc:
    这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

  • /lib
    这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

  • /opt
    这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc
    这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
    这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv
    该目录存放一些服务启动之后需要提取的数据。

  • /sys
    这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    这个目录是用来存放一些临时文件的。
  • /usr
    这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /usr/bin:
    系统用户使用的应用程序。
  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src:内核源代码默认的放置目录。
  • /var
    这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

Xshell和Xftp

远程登录时少用root登录避免操作失误,一般是普通用户登录,用su - 用户名 切换成系统管理员,exit即可注销用户;运行级别概念之后补充;

  • Xshell来远程登录项目管理和操作【解决了中文乱码问题,而且很流畅】

    新键会话就是新键一个连接,主机名就是填要远程控制的Linux的ip地址,端口号选22,

  • Xftp远程上传下载文件

    协议要选SFTP,端口号也是22,如果乱码就在选项中更改为UTF-8就行

vi和vim

一般Linux都自带vi,vim可以认为是vi的增强版,vim有三种模式。

命令模式/正常模式

一般在Linux中输入

vim 文件名

默认进入命令模式,在命令模式的输入都会被识别为命令输入,通过命令或快捷键我们可以对文件进行一些操作,常用命令如下:

i 按i进入到插入模式/编辑模式,以输入字符。

x 删除当前光标所在处的字符。

: 切换到底线命令模式,以在最底一行输入命令。

wq 退出vim编辑器

编辑模式/插入模式

在命令模式中按i进入编辑模式,在编辑模式下常用快捷键如下:

字符按键以及Shift组合,输入字符

ENTER,回车键,换行

BACK SPACE,退格键,删除光标前一个字符

DEL,删除键,删除光标后一个字符

方向键,在文本中移动光标

HOME/END,移动光标到行首/行尾

Page Up/Page Down,上/下翻页

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

ESC,退出输入模式,切换到命令模式

命令行模式/底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的!

  • q 退出程序
  • w 保存文件
  • :set nu 可以显示行号
  • :set nonu 取消行号
  • g 到文件最后一行,gg 到文件首行,u回退上一个步骤
  • dd删除,yy拷贝,+数字表示操作光标下面多少行

按ESC键可随时退出底线命令模式

Vim键盘图:史上最全Vim快捷键键位图(入门到进阶) | 菜鸟教程 (runoob.com)

开机、重启命令

在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

正确的关机流程为:sync > shutdown > reboot > halt

关机指令为:shutdown ,你可以man shutdown 来看一下帮助文档。

例如你可以运行如下命令关机:

sync 将数据由内存同步到硬盘中。

shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:

shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。

shutdown –h now 立马关机

shutdown –h 20:25 系统会在今天20:25关机

shutdown –h +10 十分钟后关机

shutdown –r now 系统立马重启

shutdown –r +10 系统十分钟后重启

reboot 就是重启,等同于 shutdown –r now

halt 关闭系统,等同于shutdown –h now 和 poweroff

疑问:

有的弹幕说重启以后没法连接了,视频里老师也有这个情况,是Linux重启过后主机ip地址改变了吗?

在虚拟机中输入shutdown命令没有用,只有root才有权限;

总结:

关机和重启前都应该先sync一下;

参考文章:Linux 的启动流程 - 阮一峰的网络日志 (ruanyifeng.com)

用户管理

Linux系统下每一个用户至少属于一个组,包括root也在组里,只不过是root组,组的概念弹幕有说就像是用户池。

家目录/home,普通用户登录时会自动进入到自己的家目录比如/home/用户名。

常用命令:

useradd [选项] 用户名 ,会自动创建家目录,组名和用户名相同

useradd -d 指定目录 新的用户名 ,给新创建的用户指定家目录

passwd 用户名 ,给用户指定或修改密码

userdel 用户名 ,仅删除用户,家目录还在

userdel -r 用户名 ,用户和家目录都删

在实际工作中家目录一般不删

用户组命令:

groupadd 组名 ,增加组名

groupdel 组名 ,删除组名

usermod -g 用户组 用户名 ,将用户名对应的用户修改到对应的用户组里去

Linux

之后在慢慢填坑吧,这个文件还需要完善!

终极奥义:rm -rf/* 删库跑路


文章作者: 冰冰的小屋
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 冰冰的小屋 !
  目录