绿色健康小清新

耐得住寂寞,守得住繁华

Linux

各文件夹作用

  • /bin 二进制可执行命令

  • /dev 类似于windows的任务管理器.把所有的硬件用文件的形式存储

  • /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

  • /root 系统管理员的主目录(呵呵,特权阶级)

  • /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件

  • /sbin 系统管理命令,这里存放的是系统管理员使用的管理程序

  • /tmp 公用的临时文件存储点

  • /boot 启动Linux时用到的一些核心文件,包括一些连接文件和镜像

  • /mnt 系统提供这个目录是让用户临时挂载其他的文件系统。

  • /lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

  • /proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

  • /srv service缩写,存放服务器启动之后需要提取的数据

  • /sys 安装了2.6内核中新出现的一些文件系统

  • /var 某些大文件的溢出区,比方说各种服务的日志文件

  • /etc 系统管理和配置文件

  • /etc/profile:配置环境

  • /etc/initab:配置优先级

  • /etc/init.d:查看全部服务

  • /etc/sysconfig/network-scripts

  • /etc/sysconfig/iptables:设置防火墙

  • /etc/rc.d 启动的配置文件和脚本

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

    用户名 口令 用户名id 组id 主目录 登录shell

    1
    zhangwuji:x:1004:1005::/home/zhangwuji:/bin/bash
  • /etc/shadow 口令的配置文件(密码都是加密的)

    1
    xm:!!:18157:0:99999:7:::
  • /etc/group:组的配置信息 组名和组id

    1
    unbound:x:988:
  • /etc/inittab:linux系统运行级别配置文件

  • /usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录.其中包含:

  • /usr/x11r6 存放x window的目录

  • /usr/bin 众多的应用程序

  • /usr/sbin 超级用户的一些管理程序

  • /usr/doc linux文档

  • /usr/include linux下开发和编译应用程序所需要的头文件

  • /usr/lib 常用的动态链接库和软件包的配置文件

  • /usr/man 帮助文档

  • /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里

  • /usr/local/bin 本地增加的命令

  • /usr/local/lib 本地增加的库


指令

vim指令

  • 拷贝当前行:yy 粘贴:p
  • 删除当前行:dd
  • 查找关键字 /关键字 n可以找到下一个
  • 设置显示文件的行数::set nu 取消::set nonu 去n行::20回车
  • 回到开头:gg 回到结尾:G
  • 撤销:u
  • 保存并退出::wq 退出:q 强制退出:!q

系统操作

  • 立即关机:shutdown -h now
  • 1分钟后关机: shudown -h 1
  • 重启:shutdown -r now
  • 关机:halt
  • 重启:reboot
  • 把内存的数据同步到磁盘(一定要执行,防止数据丢失):syn
  • 解压: tar-zxvf

用户管理

  • 管理员身份:su

  • 注销用户:logout

  • 增加用户:useradd 用户名

  • 指定用户的文件夹增加用户:useradd -d 文件夹名 用户名

  • 用户增加或修改密码:passwd 用户名

  • 删除用户(信息不会丢失):userdel 用户名

  • 删除用户(home目录文件会丢失):userdel -r 用户名

  • 查询用户id:id 用户名

    用户id 所在组的id 组名

    1
    uid=1001(xm) gid=1001(xm) 组=1001(xm)    uid=1004(zhangwuji) gid=1004(wudang) 组=1004(wudang)
  • 切换用户:su - 用户名

  • 退回上一个用户:exit

  • 查询当前用户:who am i(查询的根用户,切换用户不算)

  • 增加组:groupadd 组名

  • 删除组:groupdel 组名

  • 指定组增加用户:useradd -g 组名 用户名

  • 修改用户组:usermod -g 组名 用户名

运行级别

配置文件在 /etc/inittab

  • 0:关机:
  • 1:单用户(找回丢失密码)
  • 2:多用户状态没有网络服务
  • 3:多用户状态有网络服务
  • 4:系统未使用保留给用户
  • 5:图形界面
  • 6:系统重启
0shutdown.target
1emergency.target
2rescure.target
3multi-user.target
4
5graphical.target
6
  • systemctl 命令 说明
  • systemctl get-default 获得当前的运行级别
  • systemctl set-default multi-user.target 设置默认的运行级别为mulit-user
  • systemctl isolate multi-user.target 在不重启的情况下,切换到运行级别mulit-user下
  • systemctl isolate graphical.target 在不重启的情况下,切换到图形界面下

命令:

init[012356]

比如:init 3 init 0

找回密码:进入到单用户模式,然后修改root密码。因为进入到单用户密码,root不需要密码就能登录

ro crashkernel = auto这里,注意:只替换ro为:rw init=/sysroot/bin/sh

Ctrl+x键来启动单用户模式

chroot /sysroot对文件进行授权再passwd root

再输入touch /.autorelabel

完成密码的修改后,一定要先exit,然后再reboot,否则会报错

帮助指令

  • man:获得帮助信息,查看指令的功能和信息 例如:man ls
  • help:获取shell内置命令的帮助信息 例如: help cd

文件目录类

  • pwd:显示当前工作目录的绝对路径

  • basename:获取文件的名称 (返回shell.sh)

    basename /home/jiangchaolun/文档/shell.sh

  • dirname:获取文件的目录 (返回/home/jiangchaolun/文档)

    dirname /home/jiangchaolun/文档/shell.sh

  • ls:查看当前目录下的所有内容信息

    -a:可以查看所有的文件和目录,包括隐藏的

    -l:以列表的形式显示信息

    -al:同理

  • cd:切换到指定的目录

    cd~或者cd:回到自己的家目录

    cd…回到当前目录的上一级目录

    案列:cd … 在/user/lib下使用相对路径:cd …/…/root

  • mkdir:用于创建目录以及多级目录(-p)

    案列:mkdir /home/dog 创建多级案列:mkdir -p /home/animal/dog

  • rmdir:删除空目录

  • rm:删除文件和目录

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

  • rm-f:强制删除不提示

  • rm -rf :删除非空目录

  • touch:创建空文件(可用rm删除)

  • cp:拷贝文件到指定目录

    拷贝一个文件:cp test.txt aaa

    拷贝一个目录:cp -r test aaa

  • mv:移动文件与目录或重命名

    ​ mv aaa.txt bbb.txt

    ​ mv aaa.txt …/…/

  • cat:只读方式打开文件

    -n表示显示行号 |管道命令

    1
    cat -n /etc/passwd |more
  • more:是一个基于VI编译器的文本过滤器,它以全屏的内容按页显示文本的内容

    回车键:一行 空格:一页 ctrl+f:向下一屏 ctrl+b:向上一屏

    1
    more /etc/passwd
  • less:它以全屏的内容按页显示文本的内容(大型内容)

  • >:输出重定向,会将原来的文件的内容覆盖

  • >>:追加,不会覆盖原来文件的内容

    实例:

    ​ ls -l->文件 列表的内容写入a.txt中(覆盖)

    ​ ls -al>>文件 列表的内容追加a.txt末尾

    ​ cat 文件1 >文件2 将文件1的内容覆盖到文件2

    ​ echo “内容” >>文件 将内容写入文件2

  • echo:输出环境变量,输出当前的环境变量,以及内容

  • head:显示文件的开头部分内容,默认情况下head指令显示文件的前十行内容

    1
    head -n 5 /etc/passwd
  • tail:显示文件尾部的内容,默认情况下tail指令显示文件的10行内容

    ​ -n -f:实时监控该文档的所有更新,如果有变化就会看到,工作中经常使用

  • ln:软连接,符号连接,类似于windows里的快捷方式,主要存放了链接其他文件的路径

    ln-s[原文件目录]软链接名

  • history:查看历史指令 !num 会执行编号为num的指令

时间日期类

  • date:查看当前日期

    date “+%y %m %d” date “+%y %m %d %H %M %S”

    -s 字符串时间(“2018-22-3 11:25:2”)

  • cal:查看日历信息

    cal:查看本月信息 cal 2019:查看2019年日期

搜索查找类

  • find:从指定的目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端

    find [搜索范围][选项]

    选项: -name -user

    案列:

    • find /home -name hello.txt //根据名字
    • find / -name *.txt
    • find /opt -user xm //根据用户
    • find / -size +20k //根据文件大小(+ - =)(M k…)
  • locate:可以快速定位文件路径。由于locate指令基于数据库进行查询,所以第一次运行时,必须使用updatedb指令创建locate数据库.

    1
    2
    3
    [root@bogon ~]# updatedb
    [root@bogon ~]# locate aaa.txt
    /home/jiangchaolun/文档/aaa.txt
  • whereis :查找软件所在位置

  • grep:过滤查找,一般与管道符一起使用

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

    -n显示匹配行及行号

    -i忽略字母大小写

    1
    2
    3
    4
    5
    [root@bogon 文档]# cat aaa.txt | grep -ni hello
    11:-rw-rw-r--. 1 jiangchaolun jiangchaolun 116 9月 17 23:24 hello.java
    21:hello
    22:hello
    27:hello
  • |:管道符,表示将前一个命令的处理结果输出传递给后面的命令处理

压缩和解压缩类

  • gzip:用于压缩文件(只能压缩为*.gz压缩包),并且压缩后文件不会保留

  • gunzip:用于解压的(只能解压*.gz压缩包)

  • zip:用于压缩文件(可以是一个目录,并且原文件保存)

    1
    zip -r aaa.zip aaa
  • unzip:用于解压文件

    -d<目录>:指定解压后文件的存放目录

    1
    unzip -d aaa aaa.zip
  • tar:打包指令,最后打包后的文件是.tar.gz文件

    压缩:-zcvf 解压:-zxvf

    打包压缩 解压要指定已经存在的目录

    1
    2
    3
    tar -zcvf abc.tar.zip /home
    tar -zcvf abc.tar.gz aaa.txt test
    tar -zxvf abc.tar.gz -C aaa
  • ls -ahl:查看文件的所有者

  • chown:修改文件所有者

    chown 用户名 文件名

    chown newowner:newgroup file 改变用户的所有者和所有组

    chown -R 如果是目录,则使其下所有的文件或目录递归生效

    1
    chown jiangchaolun abc.tar.gz

    chgrp:修改文件所在组

    1
    chgrp jiangchaolun aaa.txt

修改权限(具体看3)

  • chmod u=rwx,g=rx,o=x 文件或目录名
  • chmod o+w 文件或目录名
  • chmod a-x 文件或目录名
  • -R:目录下所有全部生效

任务调度(crond)(具体看4)

  • crontab:某个时间执行特定的任务或程序

    调度文件:etc/crontab

    -e:设置个人任务调度

    -l 查询crontab任务。

    -r 删除当前用户所有的crontab任务。

  • service crond start //启动服务

  • service crond stop //关闭服务

  • service crond restart //重启服务

  • service crond reload //重新载入配置

  • service crond status //查看服务状态

磁盘

  • lsblk:显示分区情况

  • fdisk /dev/sdb:设置分区(底下还有一些操作,具体看5)

  • mkfs -t ext4 /dev/sdb1:分区初始化

  • mount /dev/sdb home/new:挂载分区

    可以在/etc/fstab下设置自动挂载

  • unmout /dev/sdb或者 home/new:解除挂载

  • df -h:查看磁盘信息

  • du -h: /目录 :查看指定目录的磁盘占用情况

    -h:带计量单位

网络配置

  • ping:ping 目的主机 测试当前服务器是否可以连接目的主机

进程管理

  • ps -aux:显示系统的进程

  • ps -ef:以全格式显示当前所有进程

  • kill :杀死进程

    -9:强制杀死

    kill+pid

  • killall:通过进程名称杀死进程

    -9:强制杀死

    killall+名称

  • pstree:以线程树直观的看到线程信息

    -u:以uid的形式 -p:以pid的形式

  • top:动态的显示系统的进程

    -d 时间 :设置更新间隔时间

    -p pid:根据pid来监控进程

    -u uid:根据用户名来监控进程

    -i:不显示任何闲置或者僵死进程

进入top后:按k杀死进程

netstat -anp:查看当前网络情况

服务管理

  • systemctl 服务名 status start stop restart reload

    关闭防火墙:systemctl stop iptables或者firewalld

  • telnet +ip +端口:查看是否生效

  • setup ->系统服务:查看服务名

  • chkconfig:给每个服务的运行级别设置

    chkconfig (+服务名|grep)

    chkconfig (–level 数字) 服务名 on/off

RPM包管理

  • rpm -qa:查询所安装的所有软件包

    rpm -qa (|more或grep…)

  • rpm -qi:查询软件包信息

  • rpm -ql:查询软件包中的文件

  • rpm -qf 文件路径:程序某个文件属于哪个软件包

  • rpm -e 包名:卸载软件

  • rpm -ivh RPM包全路径名称:安装软件

  • yum install:下载安装

其他

  • cut: cut -d- -f1-2 文件名

    cut -c1-2 文件名


权限管理


任务调度

  • service crond start //启动服务
  • service crond stop //关闭服务
  • service crond restart //重启服务
  • service crond reload //重新载入配置
  • service crond status //查看服务状态

磁盘分区

  1. 分区的方式:

    • mbr分区:
      • 最多支持四个主分区
      • 系统只能安装在主分区
      • 扩展分区要占一个主分区
      • MBR最大只支持2TB,但拥有最好的兼容性
    • gpt分区:
      • 支持无限多个主分区(但操作系统可能限制,比如windows 下最多128 个分区)
      • 最大支持18EB的大容量(1EB=1024 PB,1PB=1024TB )
      • windows7 64位以后支持gpt
  2. 硬盘说明

    • Linux硬盘分IDE硬盘和SCSI硬盘,目前基本.上是SCSI硬盘
    • 对于IDE硬盘,驱动器标识符为“hdx~",其中“hd"表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号 (a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘) ,“”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘.上的第三个主分区或扩展分区hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
    • 对于SCSI硬盘则标识为“sdx~”, SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

大多数电脑,都是分为了一个C盘主分区,然后其他的D盘、E盘和F盘等都属于逻辑分区,将D盘、E盘、F盘等出了主分区之外的磁盘组合,则就属于一个扩展分区。

新硬盘上创建分区时,一般要遵循以下的顺序:

新建【主分区】→然后再建【扩展分区】→在扩展分区里面,再创建【逻辑分区】→之后再激活【主分区】→最后格式化所有分区,就完成了。

lsblk可以查看当前系统的分区情况

blkid查看uuid


网络配置


进程管理


服务管理


RPN包管理和yum

-------------本文结束感谢您的阅读-------------
六经蕴籍胸中久,一剑十年磨在手

欢迎关注我的其它发布渠道