Linux入门基础

作者: 舞吧的小尾巴 | 来源:发表于2018-02-01 21:55 被阅读0次

    Shell:是一个壳,把内核封装在里面,把命令传给操作系统。分为CLI、GUI

    CLI:Command Line Interface,命令行界面 Bash
    GUI:Graphical User Interface,图形界面

    命令行Bash基本操作

    这几个平时不常用,主要写脚本时用

    • history 查看历史命令信息
    • !! 重复前一个命令
    • !字符 重复前一个以“字符”开头的命令
    • !num 按照历史记录的序号执行命令
    • !?abc 重复之前包含“abc”的命令行
    • !-n 重复n个命令之前的命令

    搜索历史命令

    • Ctrl + r 在历史记录中搜索命令
    • esc 然后再按 . 调用上一个命令

    命令行通配符 其实就是正则表达式中的规则

      • 匹配零个或多个
    • ? 匹配任意一个字符
    • [0-9] 匹配一个数字范围
    • [abc] 匹配列表里任何字符
    • [^abc] 匹配列表以为字符

    切换用户

    • su - "用户名" 切换用户,不写参数,切到root用户,不加-,就在原来窗口
    • sudo 使用管理员用户身份来运行命令
    • id 显示当前用户信息
    • passwd 修改当前用户密码
    • exit 退出当前用户

    Bash作业管理

    • 在后台运行进程,在命令后添加一个 &
    • 暂停某个程序,通过Ctrl + z 或者发送信号7
    • 终止某个程序 : Ctrl + c
    • jobs 查看当前在后台运行的所有程序
    • bg + 命令编号 控制一个程序继续在后台运行
    • fg + 命令编号 把一个程序拉到前台
    • sleep 30 暂停30秒

    Linux 文件系统结构

    • 根目录为"/"

    • 文件系统严格区分大小写(window中不区分)

    • 路径使用“/”分割(window中使用“\”)

    • pwd print work directory当前工作目录

    • ls list 当前目录下的内容 -a:显示隐藏文件 -l:显示详细信息 -R:递归的显示子目录 -ld:显示目录和链接的信息cd

    • touch/mkdir 创建文件/文件夹,touch可以更新已有文件时间

    • rm/rm -r (remove)删除文件/文件夹 -i 交互式(需要yes/no) -f 强制删除,没有警告

    • rmdir 删除空目录

    查看文件类型

    • file 查看文件类型

    绝对路径和相对路径

    • cd ~ 家目录
    • cd .. 上一级目录
    • cd . 当前目录
    • cd - 上一个工作目录

    复制、移动、重命名文件、目录

    • cp 源文件 目标文件 -r:递归复制整个目录树 -v:显示详细信息
    • mv 文件 目标目录 如果指定文件名,则可以重命名文件

    Linux 系统目录架构

    • bin (binary)保存可执行的二进制命令,也就是保存的命令
    • boot 各系统的引导文件
    • dev (device)抽象成文件的系统的硬件设备
    • etc 操作系统的配置文件
    • home 家目录
    • root 管理员用户目录,有❌,说明没有权限看
    • lib 库文件
    • proc 当前操作系统实时信息,只存在内存汇总
    • sbin 可执行的二进制文件,只有超级用户才能执行,bin中都可以操作
    • system 底层硬件信息
    • tmp 临时目录,会定期自动清除
    • usr 默认保存安装的应用软件的位置
    • opt 默认大型软件保存的位置
    • var 保存经常变化的信息。如系统的日志信息、邮件

    常用命令

    日期命令

    • date 查看当前系统时间
    • date -u 格林尼治时间
    • date + %Y - %m - %d 自定义输入格式
    • cal 查看日历
    • uptime 查看系统运行时

    输出命令

    • echo 显示输入的内容
    • cat 显示文件内容
    • more 翻页形式显示文件内容(只能向下翻页)
    • less 翻页显示文件(带上下翻页)
    • head 显示文件头几行(默认10行)-n 指定显示的行数
    • tail 显示文件末尾几行(默认10行) -n 指定显示的行数 -f 追踪显示文件的更新(一般用于查看日志)

    查看硬件信息

    • lspci 查看pci设备 -v 详细信息
    • lsubs 查看USB设备
    • lsmod 查看加载的模块(驱动)

    关机、重启

    • shutdown 用以关闭、重启计算机 -h 关机 -r 重新启动

    • 立即关机 shutdown -h now

    • 10分钟后关机 shutdown -h +10

    • 23:30关机 shutdown -h 23:30

    • 立即重启 shutdown -r now

    • poweroff 立即关闭计算机

    • reboot 立即重启计算机

    归档、压缩

    • zip 用以压缩文件 zip + 压缩后文件+ 要压缩的文件
    • unzip 解压缩文件
    • gzip 也可以压缩文件
    • tar 归档文件(不是压缩,是归档,把文件放一块)
    • tar -cvf out.tar 文件 : 把文件归档
    • tar -xvf 文件 : 把归档文件打开
    • tar -cvzf backup.tar 文件: -z 参数:归档并压缩

    查找

    • locate 用以快速查找文件、文件夹 (此命令需要预先建立数据库,数据库默认每天更新一天,可用update命令手工建立、更新数据库)
    • find 用以高级查找文件、文件夹 find 查找位置 查找参数 如:find / *md
    • find支持很多的查找条件,常用如下:-name -prem -user -group -ctime(修改时间) -type -size

    Vim

    • vim 打开vim编辑器
    • vi + 文件 文件存在,就打开,不存在就新建并打开
    • vim 三种模式:1)命令模式:按ESC 进入命令模式,可以完成粘贴、复制、撤销等操作
      2)插入模式:i 可以进入插入模式
      3)ex模式:按 : 进入ex模式,光标会移动到底部,可以保存、修改或者退出
    • 命令模式下:
      i 在光标前插入文本
      o 在当前行的下一行插入新行
      dd 删除整行
      yy 复制当前行
      n + yy 将n行的内容复制
      p 粘贴
      u 撤销上一个操作
      r 替换当前字符
      / 查找关键字
    • EX 模式:
      :w 保存当前修改 (write)
      :q 退出 (quit)
      :q! 强制退出,不保存修改
      :x 保存并退出,相当于 :wq shift+ zz
      :set number 显示行号
      :!系统命令 执行一个系统命令并显示结果,按enter又回到vim界面
      :sh 切换到命令行,使用ctrl+d 切换回vim

    磁盘基本概念

    • mount 将格式化好的磁盘挂载到一个目录上
    • umount 卸载已挂载的文件系统

    没必要记住所有东西

    • 养成查帮助文档的好习惯
    • 几乎所有命令都可以使用-h 或者--help参数获取使用方法、参数信息等
    • man Linux最常用的帮助命令,可以获得相应文档 man ls
    • man -k 查看包含关键字的文档
    • info 与man类似,但是提供的信息更为详细深入 info ls
    • doc 详尽的文档

    用户基础

    • 每个用户都拥有一个UserID,操作系统实际使用的是用户ID,而非用户名字
    • 每个用户属于一个主组,属于一个或多个附属组;每个组拥有一个GroupID;每个进程以一个用户身份运行,并受该用户可访问的资源限制;每个可登陆用户拥有一个指定的shell
    • 用户分三种类型:
      root用户:ID为0的用户为root用户,超级用户
      系统用户:(ID为1~499)特点是没有shell。专门为某些服务创建的,不需要登录shell
      普通用户:(500以上)
    • id 可以显示当前用户的信息
    • passwd 修改当前用户密码
    • /etc/passwd 保存用户信息
    • /etc/shadow 保存用户密码(加密的)
    • /etc/group 保存组信息

    命令越短,显示的信息越多。linux的文化

    • whoami 显示当前用户
    • who 显示有哪些用户已经登录系统
    • w 显示有哪些用户已经登录并且在干什么

    创建一个用户

    • useradd 创建一个新用户 支持参数:-d 家目录
      -s 登录shell
      -u userid
      -g 主组
      -G 附属组
      修改用户信息
    • usermod 参数 username 支持参数:-l 新用户名: usermod -l newUser oldUser
      -u 新userid
      -L 锁定用户使其不能登录
      -U 解锁
      删除用户
    • userdel 保留用户家目录
    • userdel -r 同时删除用户的家目录

    创建、修改、删除组

    • groupadd
    • groupmod
    • groupdel

    权限机制

    • chown 改变文件的所属用户 -R 参数,递归的修改目录下的所有文件的所属用户

    • chgrp 改变文件的所属组 -R 参数,递归的修改目录下的所有文件的所属组

    • chmod 修改文件的权限: chmod 模式 文件
      模式为如下格式:1. u 、g 、o 分别代表用户、组、其他
      2. a 可以代指ugo
      3. + 、- 代表加入或者删除对应权限
      4. r 、w 、x 代表三种权限,read、write、执行权限
      模式示例:chmod u+rw linux 为这个文件linux所属用户加入读写权限
      chmod g-x linux 为这个文件所属组减去执行权限

    • chmod 也支持以数字方式修改权限,三个权限分别由3个数字表示:
      -r = 4 (2^2) -w = 2 (2^1) -x = 1 (2^0)
      rw = 4 + 2 = 6
      rwx = 4 + 2 + 1 = 7
      r-x = 4 + 1 = 5

    • 使用数字表示ugo权限必须三个都选
      chmod 660 linux == rw-rw----
      chmod 775 linux == rwxrwxr-x

    • ls -ld 文件 可以查看当前的文件的权限信息

    • 所有文件夹必须有x权限,不然没法查看文件
      默认权限

    • 每一个终端都拥有一个umask属性,来确定新建文件、文件夹的默认权限
      umask使用数字权限方式表示,如:022
      目录默认权限是:777-umask (减去)
      文件默认权限是:666-umask
      一般,普通用户的默认umask是002,root用户默认umask是022
      也就是说,对于普通用户来讲:新建文件权限是:666-002=664;新建目录权限是:777-002=775
      umask :可以查看默认umask的值

    3个特殊权限

    • suid 以文件的所属用户身份执行,而非执行文件的用户;对目录无影响
    • sgid 以文件的所属组身份执行;在该目录中创建的任意新文件的所属组与该目录所属组相同
    • sticky 对文件无影响;对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件

    网络配置

    • linux 中,以太网接口被命名为:eth0、eth1等,0、1代表网卡编号
    • lspci 查看网卡硬件信息 lsusb 查看usb网卡
    • ifconfig 查看接口信息 -a 查看所有接口 eth0 查看特定接口
    • ifup eth0 / ifdown eth0 启用、禁用一个接口
    • hostname 查看主机名

    网络测试命令

    • ping 192.168.1.1/baidu.com 测试网络连通性,后面可以加IP地址或者域名
    • host/dig baidu.com 测试dns解析,dig命令出来的数据更多
    • ip route 显示路由表
    • traceroute baidu.com 追踪到达目标地址的网络路径
    • mtr baidu.com (结合了my traceroute 和ping) 进行网络质量测试
    • hostname 名字 实时修改主机名字
    • /etc/sysconfig/network 永久性修改主机名

    故障排查

    • 从底层到高层、从自身到外部的流程进行
    • 先查看网络配置信息是否正确:ip地址、子网掩码、网关、dns
    • 查看到达网管是否连通:ping 网关ip地址
    • 查看dns解析是否正常

    管道和重定向

    • linux中,几乎所有的命令的返回数据都是纯文本的,而纯文本形式的数据又是绝大多数命令的输入格式,这就让多命令协作成为可能。
    • linux的命令行为我们提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的。
    • 命令行shell的数据流定义:STDIN:标准输入,编号0,默认键盘;
      STDOUT:标准输出,1,终端
      STDERR:标准错误,2,终端
    • 通过管道和重定向我们可以控制CU的数据流:
      重定向: > 将STDOUT重定向到文件,覆盖形式
      >> 将STDOUT重定向到文件,追加形式 (这2个只适用用标准输出)
      2> 将STDERR重定义到文件,覆盖形式
      2>&1 将STDOUT和STDERR结合
      < 重定义SDTIN
      管道: | 将一个命令的标准输出(STDOUT)作为另一个命令的STDIN ls | grep test*

    文本处理

    • 基于关键字搜索: 命令grep用于关键字搜索文本
      -i 搜索时忽略大小写
      -n 显示结果所在行数
      -v 输出不带关键字的行
      -Ax 在输出的时候包含结果所在行之后的指定行数
      -Bx 在输出的时候包含结果所在行之前的指定行数

    • 基于列处理文本: 命令cut用于列处理文本
      -d 指定分割字符(默认是TAB)
      -f 指定输出的列号
      -c 基于字符进行切割

    • 文本统计: 命令wc用于统计文本信息
      -l 只统计行数
      -w 只统计单词
      -c 只统计字节数
      -m 只统计字符数

    • 文本排序: 命令sort用于对文本内容进行排序(基于英文)
      -r 倒序排列
      -n 基于数字进行排列
      -f 忽略大小写
      -u 删除重复行 uniq 用以删除重复的相邻行
      -t c 使用c作为分隔符分割为列进行排序
      -k x 当进行基于指定字符分割为列的排序时,指定你基于那个列排序

    • 文本比较: 命令diff用于比较两个文件的区别
      -i 忽略大小写
      -b 忽略空格数量的改变
      -u 统一显示比较信息(一般用以生成patch文件)

    • 处理文本内容: 命令tr(translate)用于处理文本内容,要用重定向方式
      -d 删除关键字 tr -d 'TMD' < test.txt
      转换大小写: tr 'a~z' 'A~Z' < test.txt

    • 搜索替换: 命令sed 用以搜索并替换文本,中间用的正则表达式
      sed + 正则 + 文件: 如: sed ‘s/linux/unix/g’ linuxcast 、sed '1,50s/linux/unix/g' linuxcast

    相关文章

      网友评论

        本文标题:Linux入门基础

        本文链接:https://www.haomeiwen.com/subject/gnmjzxtx.html