Linux

作者: husky_1 | 来源:发表于2018-09-10 22:15 被阅读0次

    Linux 入门

    目录结构

    在Unix/Linux系统中组成路径的目录分割符为斜杠"/"

    路径分为绝对路径和相对路径:
    绝对路径 :绝对路径是从目录树的树根“/”目录向下到达目标路径

    相对路径:相对路径是指目标目录相对于当前目录的位置。

    shell:命令解析器。—— unix —— Born
    bash:命令解析器。 —— Linux —— Born again shell

    “.”: 相对于shell当前工作目录位置
    “..”: 相对于shell当前工作目录位置上一级目录

    • 根目录:"/"表示, ,在Linux下有且只有一个根目录

    • bin 目录:"/bin" 存放二进制可执行文件

    • dev 目录:"/dev" 存放系统设备文件。 —— Linux 系统中, 所见皆文件

    • etc 目录:"/etc" 存储系统配置文件, 不建议在此目录下存放可执行文件。
      重要的配置文件:
      /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d

    • home目录:存放系统用户的“家目录”(宿主目录),新增用户账号时,用户的家目录都存放在此目录下,"~"表示当前用户的家目录

    • root目录:系统管理员root的 “家目录”
      终端提示符结构: 用户名@计算机名 : 当前shell的工作目录 #(root)/ $ (普通用户)

    • temp目录:存放正在运行的 用户程序,所使用的临时文件

    • usr目录: 存放用户程序相关数据、资源
      /usr/bin 存放应用程序
      /usr/share 存放共享数据
      /usr/lib 存放不能直接运行的函数库文件
      /usr/local: 存放软件升级包
      /usr/share/doc: 系统说明文件存放目录
      /usr/share/man: 程序说明文件存放目录
      /usr/include:存放头文件

    基本指令

    • ls 指令 : list 简写,列出目录的内容
    参数 含义
    ls -a 显示指定目录下所有子目录与文件,包括隐藏文件
    ls -l 以列表方式显示文件的详细信息
    ls -h 以列表方式显示文件的详细信息
    ls -d 查看目录本身的详细信息
    ls示例

    ls-l 解析:


    组成结构
    1. 文件属性(类型):
      第一个字符: 文件类型。—— 7种。(Linux系统不以后缀名作为区分文件依据。)

    “-”: 普通文件(文本文件)
    “d”:目录文件
    “l”:软连接 —— 相当于 windows下的快捷方式。
    --- 以上3种,是Linux系统中实际占用磁盘存储的文件。
    “b”:块设备文件
    “c”:字符设备文件
    “p”:管道文件(channel) —— pipe

    “s”:套接字文件
    —— 以上4种,,是Linux系统中伪文件(不占用磁盘存储

    1. 文件操作权限(存取控制):9个字符, 分3组---- 所有者、所属组、其他人

    r:读、w:写、x:执行。 对应位有对应权限,显示对应字符,没有对应权限。用“-”站位。

    1. 链接:
      3.1 硬链接
      硬链接特性: 源文件和硬链接文件之间具有相同的属性,并且能实时同步
      硬链接原理: 借助 inode(i节点)。 一般情况下,每个文件具有一个inode, 但硬链接文件之间具有相同的inode,系统在操作文件时,以inode为标识访问文件。

    创建硬链接:ln 源文件名 硬链接文件名
    创建硬链接时,相当于在一个 inode上,创建多个访问路径(dentry — 目录项)
    查看inode命令: ls -i 文件名 或者 stat 文件名 删除硬链接时,相当于断开一个 dentry 对 inode 的 指向。

    inode 查看

    3.2. 软链接--类似windows中的快捷方式
    创建命令: ln -s 源文件名 软连接文件名 ——> 保证任意搬移软链接依然生效,源文件名采用“绝对路径”创建
    软链接的大小:实际指向的文件的访问路径。

    软链接.png
    1. 文件大小:
      普通文件:表实际大小。
      目录文件:表占用存储空间大小。
      软连接文件:表实际路径大小。
      时间:创建、或最后一次修改文件的时间。
    • cd指令: 切换工作目录(change directory)
      cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录
    参数 含义
    cd 切换到当前用户的主目录(/home/用户目录)
    cd ~ 切换到当前用户的主目录(/home/用户目录)
    cd . 切换到当前目录
    cd .. 切换到当前目录的上一级目录
    cd - 进入上一个进入的目录
    • rm删除指令: 删除文件或者目录(remove)
      文件删除后不能恢复
    参数 含义
    rm -i 以进行交互式方式执行
    rm -r 递归地删除目录下的内容,删除文件夹时必须加此参数
    rm -f 强制删除,忽略不存在的文件,无需提示
    删除指令
    • cp拷贝指令: 将给出的文件或目录复制到另一个文件或目录中
      cp 待拷贝文件/目录路径 目的路径
    参数 含义
    rm -a 保留链接、文件属性,并递归地复制目录,保持文件原有属性
    rm -r cp将递归复制该目录下的所有子目录和文件,目标文件也可以是文件
    rm -f 覆盖已经存在的目标文件而不提示
    rm -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
    rm -v 显示拷贝进度

    示例:
    cp vim_configure/ code/ -ivr 把文件夹 vim_configure 拷贝到 code 目录里

    • mv移动指令: 移动或重命名文件或者目录
    参数 含义
    mv -i 交互方式操作,如果导致对已存在的目标文件的覆盖,系统会询问是否重写
    mv -f 禁止交互式操作,如有覆盖也不会给出提示
    mv -v 显示移动进度
    mv 移动
    • 压缩/解压缩指令:
      压缩:

    tar -zcvf 压缩包名.tar.gz 压缩源材料(可以是多个文件)
    tar -jcvf 压缩包名.tar.bz2 压缩源材料(可以是多个文件)


    z:gzip格式
    j:bzip2格式
    c:Create
    v:view 查看
    f:file 压缩文件名

    解压缩:

    tar -zxvf 压缩包名.tar.gz -C 解压到路径 【重点】
    tar -jxvf 压缩包名.tar.bz2 -C 解压到路径

    x:解压缩
    -C 参数: 解压缩到指定目录位置。

    其他压缩:zip /rar

    zip:
    压缩 zip testZIP cba hello.h out ——> testZIP.zip
    解压缩:unzip testZIP.zip
    rar:
    压缩:rar a -r testRAR cba hello.h out ——> testRAR.rar
    解压缩: rar x testRAR.rar

    • 用户管理:

    sudo su —— 切换当前用户为 root
    passwd: 修改当前用户的 密码。
    su root : 切换当前用户为 root 用户。不改变工作目录位置。
    su - root : 切换当前用户为 root 用户。改变工作目录位置到root的家目录。
    sudo: 临时获得一次root用户权限。 当前命令执行结束,权限失效。

    1. 创建删除用户/用户组

    1.1 增加用户
    sudo adduser 新用户名 —— 输入密码、输入用户信息 、 Y
    新用户添加成功,同时创建相应的用户组。 /etc/passwd 有用户相关描述信息。/etc/group 用户组有相关描述

    1.2 删减用户
    sudo deluser 用户名 —— 同时删除用户组。
    删除用户添加成功, /etc/group 和 /etc/passwd 删除相关描述信息。

    1.3 增加用户组
    sudo addgroup 新组名
    新组添加成功,/etc/group 新添用户组相关描述。

    1.4 删除用户组
    sudo delgroup 组名
    删除组名成功, /etc/group 删除相关描述信息。

    1. 修改文件权限

    2.1 修改文件所有者
    sudo chown 用户名 待修改文件名


    image.png

    2.2 修改文件所属组
    sudo chgrp 组名 待修改文件名

    image.jpeg

    2.3 修改文件操作属性
    文字法:

    参数 含义
    u user 表示该文件的所有者
    g group 表示与该文件的所有者属于同一组( group )者,即用户组
    o 其他用户
    a u, g, o三者都包括
    - 撤销权限
    + 增加权限
    = 设定权限
    r read 表可读权限
    w write 表可写权限
    x excute 表可执行权限

    示例:

    其他用户增加w权限 用户组设定x权限

    数字法 :

    参数 含义
    r 读取权限,数字代号为 "4"
    w 写入权限, 数字代号"2"
    x 可执行权限,数字代号"1"
    - 无权限,数字代号"0"

    r-x-wx--x —— sudo chmod 531 file

    示例:


    设定rwx 权限
    • 系统管理
    1. ps(查看系统进程):
    参数 含义
    -a 查看全部进程
    -u 显示进程详细信息
    -x 显示没有控制终端的进程
    -w 显示加宽,以便显示更多的信息
    -r 只显示正在运行的进程

    常用指令:
    ps aux | grep xxx :筛选出含有 xxx的进程
    ps aux | more: 以more的方式显示全部进程信息

    2 kill (终止进程):
    kill 指定PID(进程号)的进程,需要配合 ps 使用查询对应进程的PID

    使用格式:
    kill [-signal] PID

    siginal list

    signal list.png

    常用指令:kill -9 PID ----强制结束进程

    3 关机重启:

    参数 含义
    reboot 重新启动操作系统
    shutdown -r now 重新启动操作系统,shutdown会给别的用户提示
    shutdown -h now 立刻关机,其中now相当于时间为0的状态
    shutdown -h 20:30 定时今天20:30关机
    shutdown -h +10 定时10分钟关机
    init 0 关机
    init 6 重启

    4 字符界面和图形界面切换(适用大部分平台)
    切换到字符界面:Ctrl + Alt + F3 或者 init 3
    切换到图形界面:Ctrl + Alt + F1 或者 init 5

    5 后台程序指令(&,jobs,fg):

    用户可以将一个前台执行的程序调入后台执行,方法为:命令 &
    如果程序已经在执行,ctrl+z可以将程序调入后台
    jobs查看后台运行程序
    fg编号(编号为通过jobs查看的编号),将后台运行程序调出到前台

    • 查找与检索指令:
    1. find指令:按文件属性查找
      语法: find 搜索目录位置 参数 条件

    1.1 -name : 按文件名
    例:find /home/itcast -name "hello.go"
    find /home/itcast -name "*.mp3" ----搜索以mp3结尾的文件

    1.2 -type: 按文件类型
    find /home/itcast -type “p”

    “f”:普通文件
    “d”:目录
    “l”:软连接
    “b”:块设备
    “c”:字符设备
    “p”:管道
    “s”:套接字

    1.3 -size:按文件大小
    find /home/itcast/ -size +5M -size -9M

    注意事项:
    1. 每个大小前,都要加 -size 描述
    2. M:不能小写。 k:不能大写
    3. 无单位时,采用 扇区(512B)个数统计

    1.4 -maxdepth: 指定搜索层级深度
    find ./ -maxdepth 1 -name "*.sh"-----查找 当前一级目录下带有sh后缀的文件

    1.5 -exec:对搜索到的结果,执行某一命令
    find ./ -maxdepth 1 -name "*.sh" -exec ls -l {} \;
    查找当前一级目录下的sh后缀的文件,并显示详细文件信息

    1.6 -xargs:
    find ./ -maxdepth 2 -type "f" | xargs ls -lh
    查找当前一级 及二级目录下普通文件,并显示详细文件信息

    备注: 解决带有空格文件名的异常
    find ./ -maxdepth 2 -type "f" -print0 | xargs -0 ls -lh

    1. grep指令 :
      语法:grep -r “检索条件” 检索目录位置

    例:
    grep -r “init”./ -n
    -n: 显示检索条件所在行号

    结合 find 、xargs、grep:
    在指定目录下,搜索包含 “love”的普通文件,并显示它们出现的 行号。
    find /home/itcast/sh-go1/ -maxdepth 1 -type "f" -print0 | xargs -0 grep "love" -n

    • vi / vim 指令

    命令模式:输入内容都是命令
    编辑模式:编写程序
    末行模式:执行末行命令----w:保存、 q: 退出、wq:保存退出、x:保存退出、q!:强制退出

    vim工作模式.png
    1. 编辑模式:
      i:向光标前面插入
      a:向光标之后插入
      o:向光标所在行下一行插入
      s:删除光标选中字符,切换工作模式为 编辑模式
      I:向光标所在行的行首插入
      A:向光标所在行的行尾插入
      O:向光标所在行上一行插入
      S:删除光标所在行,切换工作模式为 编辑模式

    2. 命令模式:

    2.1 常用光标移动指令

    参数 含义
    h 光标左移
    j 光标下移
    k 光标上移
    l 光标右移
    gg 跳转到第一行行头
    G 跳转到尾行
    nG 跳转到第n行==末行模式输入:n
    0 跳转到本行行头
    $ 跳转到本行行尾
    u 撤销
    Ctrl+r 反撤销

    2.2 复制,粘贴:

    yy:复制光标所在行。 p粘贴到光标所在行的 下一行。 P(大写)粘贴到光标所在行的前一行
    Nyy:复制从光标位置向后N行。p粘贴到光标所在行的 下一行。
    yw:复制从光标位置向后一个单词。p向后粘、P向前粘。
    区域复制:
    1) 将光标挪移至待复制区域起始位置。
    2) 按“v”(看到“可视”提示)
    3) 使用 hjkl 挪移光标,选择要复制区域。 按 y 复制。
    4)p向后粘、P向前粘。

    2.3 剪切,删除指令

    dd:剪切光标所在行。 p粘贴到光标所在行的 下一行。 P(大写)粘贴到光标所在行的前一行
    Ndd:剪切从光标位置向后N行。p粘贴到光标所在行的 下一行。
    dw:剪切从光标位置向后一个单词。p向后粘、P向前粘。
    d0: 删除、剪切 从光标位置到 行首
    d$ : 删除、剪切 从光标位置到 行尾 === 等价于“D”
    区域剪切:
    1) 将光标挪移至待剪切区域起始位置。
    2) 按“v”(看到“可视”提示)
    3) 使用 hjkl 挪移光标,选择要剪切区域。 按 d 剪切。
    4)p向后粘、P向前粘。

    2.4 查找,替换

    查找:命令模式下“/” 查找一个臆想的查找对象。 “n”提取下一个。
    命令模式下,查找一个光标所在位置的单词,后续出现的位置。“*”向后找。 “#”向前找

    替换:

    1.单行替换:
    末行模式下, 光标置于待替换行。 :s/原字符串/新字符串
    如果一行有多个,默认只替换一次。在结尾处,添加“g”, 可以全部替换。
    如: :s/Println/Printf/g

    2.多行替换:
    末行模式下, :起始行,终止行s/原字符串/新字符串/g
    如: :30,70s/Println/Printf/g

    3.通篇替换:
    末行模式下,:%s/原字符串/新字符串/g

    1. 末行模式:
      分屏:

      :sp 将当前窗口 横屏划分。
      :vsp 将当前窗口 竖屏划分。
      Ctrl+ww 再各个屏幕中 切换。
      :wq 退出一个子屏幕。
      :wqall 全部退出。

    在vim中执行shell命令:

    !shell命令。 执行结束。按 Enter 返回。

    • 其他常用指令
    1. cat 文件名:读取指定文件内容,显示到屏幕

    2. tac 文件名: 倒序显示文内容(与cat相反)

    3. touch 文件名:创建空文件

    4. mkdir 目录名: 创建空目录。
      -p:一次性创建多级目录。 mkdir -p a/b/c/d == mkdir -p ./a/b/c/d

    5. rmdir 文件名: 删除空目录

    6. file文件名: 获取文件类型

    7. pwd: 显示当前工作目录

    8. which:查看命令位置 ---- which ls--- >/bin/ls

    9. who am I: 查看当前用户

    10. history :列出历史执行过的命令记录。使用“!”过往命令序号 可以快速重新执行该命令

    11. ">" : 将 输出 重定向 给指定文件,文件不存在创建,存在覆盖原有内容 (如果不想覆盖,使用“>>”追加)

    12. “more”: more 文件名: 按百分比显示大文件。“空格”一次翻页一屏幕。 “回车”一次一行。 按“q”退出

    13. “less”:类似于more。 可以指定行跳转。可以使用鼠标滚动。按“q”退出

    14. “head”:执行参数,查看文档前xxx行

    15. “tail”:执行参数,查看文档结尾xxx

    16. ifconfig:查看配置网卡信息(显示所有网卡的信息)

    17. ping:检查是否与远程主机建立了TCP/IP连接
      ---ping 远程主机ip地址

    相关文章

      网友评论

          本文标题:Linux

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