0.02年学会linux

时间:2021-02-01 12:44:09   收藏:0   阅读:0

入门的入门知识

本教程结合菜鸟教程和哔哩哔哩韩顺平图解linux2021版。


启动过程

启动分为5个阶段

  1. 内核引导,BIOS自检,操作系统接管硬件以后,首先读入 /boot 目录下的内核文件

  2. 运行initinit 程序 首先是需要读取配置文件 /etc/inittab。

    运行级别,貌似是开机启动项,这里叫做“守护进程”。

    1. 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
    2. 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
    3. 运行级别2:多用户状态(没有NFS)
    4. 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
    5. 运行级别4:系统未使用,保留
    6. 运行级别5:X11控制台,登陆后进入图形GUI模式
    7. 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
  3. 系统初始化,大概意思就是固件的初始化

  4. 建立终端,2345运行级别的话,会建立6个终端。

  5. 用户登录系统

    1. 命令行
    2. ssh
    3. 图形界面

图形与文字界面切换

切换不同的终端窗口,Ctrl + Alt + F1 ~ F6

Linux关机

跑在服务器上面的linux很少关机,除非特殊情况。

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

关机指令为: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 系统十分钟后重启

shutdown -c 停止将要进行的关机

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

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

最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中

关机的命令有shutdown –h nowhaltpoweroffinit 0 , 重启系统的命令有 shutdown –r now reboot init 6

大神补充:

halt 命令通知硬件来停止所有的 CPU 功能,但是仍然保持通电。你可以用它使系统处于低层维护状态。注意在有些情况会它会完全关闭系统。

# halt             ### 停止机器
# halt -p          ### 关闭机器、关闭电源
# halt --reboot    ### 重启机器

poweroff 会发送一个 ACPI 信号来通知系统关机。

# poweroff           ### 关闭机器、关闭电源
# poweroff --halt    ### 停止机器
# poweroff --reboot  ### 重启机器

reboot 命令 reboot 通知系统重启。

# reboot           ### 重启机器
# reboot --halt    ### 停止机器
# reboot -p        ### 关闭机器

目录结构

在linux中,一切皆文件。

通过ls 路径可以查看当前路径下的文件

远程登录

使用Xshell和Xftp,傻瓜式操作。

vim编辑器

三种模式:

  1. 正常模式,默认模式,可以使用上下左右复制粘贴等等。
  2. 插入模式,输入指定字母进入编辑模式,一般按i即可。
  3. 命令行模式,末行模式。存盘、退出、等等。:或者 /

快捷键使用练习:

用户系知识

用户登录和注销

  1. 尽量少用root登录,实际生产环境用普通用户,需要时使用su-用户名,来切换身份。
  2. 使用logout可以注销当前用户,返回到之前的用户,若没有,则退出。(该指令仅在运行级别3有效)。

用户管理

每个关键字下面都有许多选项。

细节参照菜鸟教程学习,这里只更多讲的是学习方法。

  1. 添加用户:useradd [选项] 用户名

    1. 默认在/home下创建用户名目录,并且登录时切换至此。
    2. 也可在创建时指定目录:useradd -d 指定目录 用户名
  2. 设置密码:passwd [选项] 用户名,务必指定用户名,不然是当前登录的用户。

  3. 删除用户:userdel [选项] 用户名,用户删掉,家目录保留

    userdel -r 用户名,删掉用户时,也删掉了家目录,这个操作要慎重。

  4. usermod [选项] 用户名

查询用户信息

使用指令:id 用户名

切换用户

使用指令:su-用户名

? 高权用户向下切换不需要密码,反之则需要。

? 使用exit或者logout退出当前用户。

查询当前用户信息

whoami或者who am i

用户组

用户和组相关文件

新增组

groupadd 组名

增加用户时,未指定组名的话,会为这个用户单独建立一个组,把这个用户自己放进去。

增加用户时指定组

groupadd 组名1,首先要拥有这个组。

useradd -g 组名1 用户名,然后可以给他加进去。

删除组

groupdel 组名

修改组

usermod -g 组名

切换组

如果一个用户同时属于多个组,可以通过命令切换不同的组来享有不同的权限。

newgrp 组名,可切换到另一个组。

常用指令

运行级别

修改运行级别

可以使用systemctl get-default获取当前运行级别.

在/etc/inittab文件中,centos7之前是使用数字指定,现在是使用单词。

multi-user.target:analogous to runlevel 3

graphical.target:analogous to runlevel 5

设置运行级别

systemctl set-default 对应单词.target

重启之后也是设置后的运行级别了,意思就是修改了默认运行级别。

找回root密码

开机,输入e中断引导。

linux6所在行行末追加init=/bin/sh

输入ctrl + X 进入单用户模式,

重启开机后输入mount -o remount,rw /

键入passwd,输入两次期望的密码,

待退回到命令行模式输入:touch /.autorelabel,回车

继续输入:exec /sbin/init,这个过程较长,请耐心等待。

重启之后,密码生效。

帮助指令

man 获得帮助信息

man [命令或配置文件]可以获得帮助信息。

使用man ls可以查看ls的用法,

ls -al /root单列输出用root下所有文件信息。

help指令

获得shell内置命令的帮助信息

help cd

文件目录类指令

时间日期类

date指令-显示当前日期

  1. date 显示当前时间

    date +%Y-%m-%d,显示年月日,减号可以换,作用是分隔符

  2. date "+%Y" 显示当前年份,带不带引号都行

  3. date "+%m" 显示当前月份,带不带引号都行

  4. date "+%d" 显示当前日份,带不带引号都行

  5. 显示当前年月日时分秒

    "date +%Y-%m-%d %H:%M:%S",这个需要带着引号

date -s "字符串时间"

猜测这个s是set的意思,以下是个实例:

date -s "2020-1-17 11:02:10"

cal 日历

  1. 直接输入cal,可以查看本月日历
  2. cal 年份,可以查看一年的日历

搜索查找类

  1. find [搜索范围] [选项],从指定目录向下遍历查找

    1. find /home hello.txt,在home下面找hello.txt文件

    2. find /opt -user nobody,在home下面查找nobody用户的文件。显示太快可以加一个管道命令|more

    3. find / -size +200M,查找大于200M的文件,减号是小于,不写是等于。单位有k、M、G

      ls -lh,按照人能看懂的方式显示文件的大小。

  2. locate 搜索文件,这个会建立自己的数据库,指令updatedb,需要经常更新。

    意思就是找个地方将你所有文件的路径存起来,用的时候直接在这个文件里找,而不是遍历文件系统。

  3. which,可以查看某个指令在哪个目录下。

  4. grep指令和管道符号|

    grep 过滤查找

    管道符|,表示将前一个命令处理结果输出传递给后面的命令处理

    1. grep [选项] 查找内容 源文件

      -n 显示行号

      -i 忽略字母大小写

    2. 查找hello.txt文件重中的yes,并显示行号

      • cat /home/hello.txt | grep -n "yes"
      • grep -n "yes" /home/hello.txt

压缩和解压类

  1. gzip/gunzip

    经过这个压缩后,源文件消失

    1. gzip 文件.后缀,压缩文件,只能压.gz
    2. gunzip 文件.后缀
  2. zip/unzip

    保留源文件。

    1. zip [选项] 文件.zip,压缩文件和目录的命令。

    2. unzip [选项] 文件.zip,解压缩文件

      -r 递归压缩,即压缩目录

      -d 可以指定解压后文件的存放目录

      zip -r myhome.zip /home/,这个命令将home文件夹压缩,包括这个文件夹本身。后面跟个星号也是包含home本身。

  3. tar

    1. tar [选项] XXX.tar.gz 打包的内容

      选项说明:

      -c 产生.tar打包文件

      -v 显示详细信息

      -f 指定压缩后的文件名

      -z 打包的同时压缩

      -x 解包.tar文件

    2. tar -zcvf 压缩文件.tar.gz 文件1路径 文件2路径。。。

    3. tar -zcvf 压缩文件.tar.gz 目录路径,这样可以实现压缩文件夹

    4. tar -zxvf 压缩文件,将问价解压到当前目录

    5. tar -zxvf 压缩文件 -C 目标目录,学到了个-C,指定解压的目录。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!