Linux 学习笔记

作者: Oct1a | 来源:发表于2018-11-03 16:24 被阅读3次

    Linux 概念

    Linux 内核

    • 内核(kennel)是系统的核心,是运行程序和管理磁盘和打印机等硬件设备的核心程序
    • 内核版本又分为稳定版和开发版,两种版本相互关联,相互循环

    Linux 发行版

    • 发行版通常包含桌面环境、办公套件、媒体播放器、数据库等应用软件
    • 常见发行版有:
      • Ubuntu
      • Redhat
      • Cenos
      • Debian
      • Manjaro
      • Arch
    image

    Linux 目录结构

    image
    • /:根目录,一般根目录只存放目录
    • /bin、/usr/bin:可执行二进制文件的目录,如常用的命令:lsmvcat
    • /boot:放置Linux启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuxz,系统引导管理器:/boot/grub
    • /dev:存放Linux系统下的外部设备文件
    • /etc:系统配置文件存放目录
    • /home:用户的主目录,目录名是以用户的账号命名的
    • /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要的函数库的协助,类似Windows里的DLL文件
    • /lost+fount:一般情况下是空的,当系统异常产生错误时,会将一些丢失片段放置在这(比如非法关机)
    • /mnt、/media:光盘默认挂载点,通常挂在与/mnt/cdrom下
    • /opt: 这是给主机额外安装软件所摆放的目录。
    • /proc:是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    • /root:系统管理员root的主目录

    常用Linux命令的基本使用

    命令 作用
    ls 查看当前文件夹下的内容
    pwd 查看当前所在文件夹
    cd [目录名] 切换文件夹
    touch 如果文件不存在,新建文件
    mkdir 创建目录
    rm [文件名] ****删除指定的文件
    clear 清屏
    • ctrl+shift + =放大终端窗口的字体
    • ctrl + -缩小终端窗口的字体

    Linux 终端命令格式

    command [-options] [parameter]
    
    • 选项说明
      • []:表示可选
      • command:命令名,相应功能的英文单词或缩写
      • [-options]:选项,可用来对命令进行控制,也可以省略
      • [parameter]:命令参数,可以是零个,一个或者多个

    查阅命令帮助信息

    因为查询的都是英文的,如果工作中遇到问题可以借助网络搜索来查询

    命令 作用
    command --help 显示command命令的帮助信息显示command命令的帮助信息
    man command 查询command的命令使用手册
    • 使用man的操作键
    b 回滚一屏
    f 前滚一屏
    操作键 功能
    q 退出
    空格键 显示手册的下一屏
    Enter键 一次滚动手册页的一行

    终端实用技巧

    1> 自动补全

    • 在敲出文件/目录/命令的前几个字母之后,按下tab

    2> 曾经使用过的命令

    • /光标键可以在曾经使用过的命令之间来回切换
    • 如果要推出选择,并不想执行当前选中的命令,可以按ctrl+c

    文件和目录常用命令

    • 文件和目录的特点
      • Linux文件或者目录名称最长可以有256个字符
      • .开头的文件为隐藏文件,需要用加-a参数才能显示
      • ./代表当前目录
      • ../代表上一级目录

    相对路径和绝对路径

    • 相对路径 表示相对当前目录所在的目录位置
    • 绝对路径 表示从根目录/home目录开始的具体位置

    ls 常用选项

    参数 含义
    -a 显示指定目录下所有子目录和文件,包括隐藏文件
    -l 以列表方式显示文件的详细信息
    -h 配合-l 以人性化的方式显示文件大小

    mkdir

    参数 含义
    -p 可以递归创建目录

    新建目录的名称不能与当前目录中已有的目录或文件同名

    rm

    参数 含义
    -f 强制删除,忽略不存在的文件,无需提示
    -r 递归地删除目录下的内容,删除文件夹时必须加此参数

    使用rm 命令需要小心,因为文件删除后不能恢复

    tree

    • tree命令可以用树状图列出文件目录结构
    参数 含义
    -d 只显示目录

    cp

    • cp命令是将文件目录复制到另一个文件目录
    参数 含义
    -f 已经存在的目标文件直接覆盖,不会提示
    -i 覆盖文件前提示
    -r 递归复制该目录下的所有子目录和文件,目录文件必须为一个目录名

    mv

    • mv命令可以用来移动文件或目录,也可以给文件或目录重命名
    参数 含义
    -i 覆盖文件前提示

    cat

    • cat命令可以用来查看文件内容创建文件文件合并追加文件内容等功能
    • cat会一次显示所有的内容,适合查看内容比较少的文本文件
    参数 含义
    -b 对非空输出行编号
    -n 对输出的所有行编号

    more

    • more命令可以用于分屏显示文件内容,每次只显示一页内容
    • 适合查看内容较多的文本文件
    操作键 功能
    b 回滚一屏
    f 前滚一屏
    q 退出
    空格键 显示文本的下一屏
    Enter键 一次滚动文本的一行

    grep

    • grep允许对文本文件进行正则查找
    参数 含义
    -n 显示匹配行及行号
    -v 显示不包含匹配文本的所有行
    -i 忽略大小写
    • 常用的两种正则查找法
    参数 含义
    ^a 行首,搜寻以a开头的行
    a$ 行尾,搜寻以a结尾的行

    echo 文字内容

    • echo 会在终端中显示参数指定的文字,通常是和重定向联合使用

    重定向 > 和 >>

    • 将终端的内容输出/追加到指定文件中

    其中

    • \>表示输出,会覆盖文件原有的内容
    • \>>表示追加,会将内容追加到已有文件的末尾
    例:echo ls -lha >> a
    

    管道 |

    • Linux 允许将 一个命令的输出可以通过管道 作为 另一个命令的输入
    • 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里的|的左右分为两端,左端-,右端-

    常用的管道命令有:

    • more:分屏显示内容
    • grep:在命令执行结果的基础上查询指定的文本

    用户权限相关命令

    • 用户管理包括用户管理
    • 可以指定每一个用户针对不同的文件和目录不同权限
    权限 英文 缩写 数字代号
    read r 4
    write w 2
    执行 excute x 1

    chmod (重要)

    • chmod 可以修改用户/组文件/目录的权限
    命令 作用
    chmod +/-rwx 文件名|目录名 更改文件/目录的权限

    超级用户

    • Linux系统中的root账户通常用于系统的维护和管理,对操作系统的所有资源具有访问权限
    • 不建议使用root账户直接登录系统

    sudo

    • susubstitute use的缩写,表示使用另一个用户的身份
    • sudo命令是其他身份用来执行命令
    • 用户使用sudo时必须先输入密码,但有五分钟的有效期限,超时必须重新输入密码

    组管理

    提示:创建组/删除组的终端命令都需要通过sudo来执行

    命令 作用
    groupadd 组名 添加组
    groupdel 组名 删除组
    cat /etc/group 确认组信息
    **chgrp -R **组名 文件/目录名 修改文件/目录的所属组
    • 组信息是保存在/etc/group

    用户管理

    创建用户/删除用户/修改其他用户密码 的终端命令都需要通过sudo执行

    命令 作用 说明
    useradd -m -g 组 新建用户名 添加新用户 -m 自动建立用户目录 -g 指定用户所在组
    passwd 用户名 设置用户密码 如果是普通用户,直接用passwd修改自己的账户密码
    userdel - r 用户名 删除用户 -r 选项会自动删除用户目录
    cat /etc/passwd | grep 用户名 确认用户信息 用户信息会保存在/etc/passwd文件中
    • 如果创建用户时,如果忘记添加-m选项指定新用户的home目录—最简单就是删除用户,重新创建
    • 创建用户时,忘添加-g选项,默认会创建一个和用户名同名的组名

    查看用户信息

    命令 作用
    id [用户名] 查看用户UID和GID信息
    who 查看当前所有登录的用户列表
    whoami 查看当前登录用户的账户名

    passwd文件

    /etc/passwd 文件存放的是用户的信息,由6个分好组成的7个信息,分别是

    1. 用户名
    2. 密码(x,表示加密的密码)
    3. UID(用户标识)
    4. GID (组标识)
    5. 用户全名或本地账户
    6. 家目录
    7. 登录使用的终端命令(默认是dash)

    usermod

    • usermod 可以用来设置用户的主组 / 附加组 和 登录shell
    • 主组:通常在新建用户时指定,在/etc/passwd的第四列GID对应的组
    • 附加组:在/etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限

    设置了用户附加组后,需要重新登录才能生效

    命令 作用
    usermod -g 组 用户名 修改用户的主组
    usermod -G 组 用户名 修改用户的附加组
    usermod -s /bin/bash 用户名 修改用户登录的shell

    注意:默认使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,可以使用以下命令,将用户添加到sudo 附加组中

    usermod -G sudo 用户名
    

    which (重要)

    • which 命令可以查看执行命令的所在位置,例如:
    whish ls
    

    注意:cd这个终端命令是内置在系统内核中的,没有独立的文件,因此用which无法找到cd命令的位置

    切换用户

    命令 作用 说明
    su - 用户名 切换用户,并且切换目录 - 可以切换到用户目录,否则保持位置不变
    exit 退出当前登录用户
    • su 后不跟用户名,默认切换到root,但是不推荐使用,因为不安全

    修改文件权限

    命令 作用
    chown 用户名 文件名|目录名 修改拥有者
    chgrp -R 组名 文件名|目录名 修改组
    chmod -R 755 文件名|目录名 修改权限
    • chmod在设置权限时,可以简单使用三个数字分别对应拥有者 / 其他用户的权限
    image
    • 常用数字组合有
      • 777===>u= rwx,g=rwx,o=rwx
      • 755===>u=rwx,g=rx,o=rx
      • 644===>u=rw,g=r,o=r

    远程管理常用命令

    shutdown 关机 / 重启

    • shutdown命令可以安全关闭或者重新启动系统
    命令 作用
    shutdown [选项] [时间] 关机/重新启动
    • 选项说明

      选项 含义
      -r 重新启动
      -c 取消执行

    不指定选项和参数,默认表示1分钟后关闭电脑

    注意:远程维护服务器时,最好是重新启动系统,而不是关机

    ifconfig 查看或配置网卡信息

    命令 作用
    ifconfig 查看/配置计算机当前的网卡配置信息
    ping ip地址 检测到目标 ip地址的连通性

    ping 一般用于检测当前计算机到目标计算机之间的网络是否畅通、数值越大、速度越慢

     #查看网卡对应的IP地址
     $ ifconfig | grep inet 
    

    ssh 远程登录和复制文件

    image
    • SSH客户端是一种使用Secure Shell(SSH)连接到远程计算机的软件程序
    • SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
      • 利用SSH协议可以有效防止远程管理过程中的信息泄露
      • 通过SSH协议可以对所有传输的数据进行加密,也能防止DNS欺骗和IP欺骗
      • 使用SSH协议传输的数据是经过压缩的,所以可以加快传输速度
    命令 作用
    ssh 用户名@ip 关机 / 重新启动
    scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 远程复制文件
    • SSH这个终端命令只能在Linux和Unix系统下使用,在Windows上需要使用客户端软件才行
    • SSH服务器的端口号很可能不是22,那就使用-p选项,指定正确的端口号,否则无法连接服务器

    Windows下SSH客户端的安装

    xshell http://www.xshellcn.com/

    putty https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

    SCP

    • scp 就是secure copy ,是一个在Linux下用来进行远程拷贝文件的命令
    • 它的地址格式与ssh基本相同需要注意的是,在指定端口时用的是大写的-P而不是小写的
    选项 含义
    -r 复制该目录下的所有子目录和文件,目标文件必须是一个目录名
    -P 若远程SSH 服务器的端口不是22

    注意:‘:’后面的路径如果不是绝对路径,则以用户的home目录作为参照路径

    例:把本地的文件上传到服务器
    scp -P port test.txt user@remote:Desktop/test.txt
    把远程服务器的文件下载到本地
    scp -P port user@remote:Desktop/test.txt
    加上 -r 选项可以传送文件夹到服务器
    scp -r demo user@remote:Desktop
    把服务器的文件夹下载到本地
    scp -r user@remote:Desktop demo
    
    image
    • scp这个终端命令只能在Linux或者Unix系统下使用
    • 如果在Windows系统中,可以安装FileZilla使用FTP进行文件传输

    SSH 高级

    有关SSH的配置信息都保存在用户home目录下的.ssh目录下

    01. 免密码登录

    • 配置公钥
      • 执行ssh-keygen即可生成SSH钥匙,之后一路回车即可
    • 上传公钥到服务器
      • 执行ssh-copy-id -p port user@remote,可以让远程服务器保存我们的公钥
    image

    采用非对称加密算法

    • 使用公钥加密的数据,需要使用私钥解密
    • 使用私钥加密的数据,需要使用公钥解密

    02. 设置别名

    每次输入ssh -p port user@remote,时间久了就会觉得很麻烦,而且不好记

    当配置完别名后就可以偷懒,比如:ssh manjaro 来代替上面的一大串

    • ~/.ssh/config里面追加以下内容:

      Host manjaro
        HostName ip地址
        User 用户名
        Port 22
      

    保存之后,即可用ssh manjaro 实现远程登录,scp同样可以使用

    系统信息相关命令

    通过远程终端维护服务器时,查看服务器当前系统日期和时间 / 磁盘空间占用情况 / 程序执行情况

    时间和日期

    命令 作用
    date 查看系统时间
    cal 查看日历(默认当前月),-y 选项可以查看一年的日历

    磁盘信息

    命令 作用
    df -h disk free 显示磁盘剩余空间
    du - h [目录名] disk usage 显示目录下的文件大小
    • 选项说明
    参数 含义
    -h 以人性化的方式显示文件大小

    进程信息

    • 所谓进程,通俗地说就是 当前正在执行的一个程序
    命令 作用
    ps aux process status 查看进程的详细状况
    top 动态显示运行中的进程并且排序
    kill [-9] [PID] 终止指定代号的进程,-9表示强行终止

    ps默认只会显示当前用户通过终端启动的应用程序

    • ps选项说明
    命令 含义
    a 显示终端上的所有进程,包括其他用户的进程
    u 显示进程的详细状态
    x 显示没有控制终端的进程

    使用kill命令时,最好只终止当前用户开启的进程,不要终止root身份开启的进程,否则会导致系统奔溃

    查找文件

    命令 作用
    find [路径] -name "*.py" 查找路径下扩展名为py的文件,包含子目录
    • 如果省略路径,表示在当前文件下查找

    软链接

    命令 作用
    ls -s [被链接的源文件] [链接文件] 建立文件的软链接
    • 没有-s选项的建立的时一个硬链接文件
    • 源文件要使用绝对路径,为了方便移动链接文件后能继续正常使用

    硬链接

    命令 作用
    ln [被链接的源文件] [链接文件] 建立

    在linux中,文件名和文件数据时分开存储的

    打包压缩

    • 在不同系统中,常用的打包压缩方式也是不同的
      • linux常用tar.gz
      • Mac 常用zip
      • Windows 常用rar
    • tar命令可以把一系列文件打包到一个大文件,也可以把大文件恢复成一个系列文件

    打包

    命令 作用
    tar -cvf [打包后文件名.tar] [被打包的文件/路径] 打包一个文件/目录

    解包

    命令 作用
    tar -xvf 打包的文件.tar 解压文件
    • tar选项说明
    选项 含义
    c 生成档案文件,创建打包文件
    x 解开档案文件
    v 列出归档解档的详细过程,显示进度
    f 指定档案文件名,f 后面要跟着.tar文件

    压缩/解压

    gzip

    • targizp一起用可以实现打包和压缩
    • tar命令中有个选项-z可以直接调用gzip,实现快速打包压缩解压功能
    命令 作用
    tar -zcvf [打包后文件名.tar.gz] [被打包的文件/路径] 压缩文件
    tar -zxvf 打包的文件.tar.gz 解压文件
    • 解压选项说明

      选项 含义
      -C 解压缩到指定目录(目录必须存在)

    bzip2

    • tarbzip2也可以实现文件打包压缩(用法和gzip一样)
    命令 作用
    tar -jcvf [打包后文件名.tar.gz] [被打包的文件/路径] 压缩文件
    tar -jxvf 打包的文件.tar.gz 解压文件

    计算机中文件大小的表示方式

    单位 英文 含义
    字节 B (Byte) 在计算机中作为一个数字单元,一般为8位二进制数
    K (Kibibyte) 1KB = 1024B,千字节
    M (Mebibyte) 1MB = 1024KB,百万字节
    千兆 G (Gigabyte) 1GB = 1024MB,十亿字节,千兆字节
    T (Terabyte) 1TB = 1024GB,万亿字节,太字节
    P (Petabyte) 1PB = 1024TB,千万亿字节,拍字节
    E (Exabyte) 1EB = 1024PB,百亿亿字节,艾字节
    Z (Zettabyte) 1ZB = 1024EB,十万亿亿字节,泽字节
    Y (Yottabyte) 1YB = 1024ZB,一亿亿亿字节,尧字节

    相关文章

      网友评论

        本文标题:Linux 学习笔记

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