码迷,mamicode.com
首页 > 系统相关 > 详细

0.02年学会linux

时间:2021-02-01 12:44:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:帮助信息   name   文本   历史命令   系统维护   update   硬件   serve   ini   

入门的入门知识

本教程结合菜鸟教程和哔哩哔哩韩顺平图解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. 命令行模式,末行模式。存盘、退出、等等。:或者 /

快捷键使用练习:

  • 拷贝当前行yy,拷贝当前行向下的5行5yy,粘贴p
  • 删除当前行dd,删除当前行向下的5行4dd
  • 查找某个单词,在命令行下/关键字,多数的话用n向下查找。
  • 显示行数,set nu。隐藏行数 set nonu。
  • 定位到末行或首行,一般模式下,G首行,gg末行
  • 撤销这个动作,一般模式下,u
  • 将光标定位到某一行,行号 shift g

用户系知识

用户登录和注销

  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

用户组

用户和组相关文件

  • /etc/passwd文件,用户的配置文件,记录用户的各种信息。

    用户名:口令:用户表示号:组标识号:注释性表述:主目录:登录shell

  • /etc/shadow文件,口令的配置文件

    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  • /etc/group文件,组的配置文件,记录linux包含的组的信息

    组名:口令:组标识号:组内用户列表

新增组

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

文件目录类指令

  • pwd指令,显示当前工作的绝对目录

  • ls -al

  • cd ~或者cd回到当前用户的家目录,cd ..切换到当前目录的父目录

  • mkdir [选项] 目标目录,默认创建单个目录

    使用mkdir -p 目标目录,可创建多级目录

  • rmdir删除空目录,若存在子文件或目录则会失败。

    使用rm -rf 目标目录,可以强制删除

    -rf:递归Recursive,强制Force

  • touch,创建空文件。

  • cp,拷贝指令

    带斜杠表示目录,不带表示文件。

    • cp 待拷贝文件 待考入文件夹/,拷贝文件到目录
    • cp -r 待拷贝目录/ /待考入目录/,拷贝整个目录到文件夹,包括目录本身。重复文件有提示。
    • \cp -r 待拷贝目录/ /待考入目录/,强制覆盖不提示。
  • rm,删除指令

    • rm [选项] 目标文件或目录

    • -r递归删除整个文件夹

    • -f强制删除整个文件夹不提示

      rm -rf 目标文件或目录

  • mv指令

    • 如果文件在同一目录,重命名效果。

      mv 旧文件名.后缀 新文件名.后缀

    • 不在同一目录,移动效果,亦可以实现移动并且重命名。

      这里的目录写法都带着斜杠。

    • 移动整个目录

      mv 目录1/ 目录2/

  • cat查看内容

    • cat [选项] 要查看的文件

    • cat -n 要查看的文件,显示行号

    • 管道命令,将上一个命令的结果交给下一个命令来处理

    • cat -n /etc/profile | more,带个more为了交互。

      more指令,回车向下一行,空格向下一页,Ctrl+F下一屏,Ctrl+B上一屏。

  • less指令

    应该是需要带着后缀,要理解带着后缀的意思。

    • less 要查看的文件
    • 翻页键翻页。pagedownpageup
    • 查找,/向下查找的目标字符?向上查找的目标字符,使用大小写的n进行轮换。
    • q退出
  • echo输出内容到控制台

    echo $HOSTNAME输出主机名

    使用一个>实现输出重定向,可以将内容写到文件里,两个>>是追加的意思;貌似是个文本的输出都可以重定向。

  • head 文件名,默认查看前十行,head -n 行数,显示前指定行数。

  • tail 文件名,默认查看末十行,head -n 行数,显示末指定行数。

    tail -f 文件.后缀,可以在当前窗口监控该文件的变化,使用Ctrl+C退出

    cal显示当前日历信息。

  • ln指令,简单的指向。

    link -s [源文件或目录] [软连接名]

    使用pwd查看的是软连接所在的目录,不是它所指向的目录

  • history,查看历史命令。

    显示所有历史直接执行,显示最后10个:history 10

    执行曾经执行过的命令:!行号

时间日期类

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.02年学会linux

标签:帮助信息   name   文本   历史命令   系统维护   update   硬件   serve   ini   

原文地址:https://www.cnblogs.com/wanisong/p/14273852.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!