美文网首页
Shell学习

Shell学习

作者: 慕尼黑凌晨四点 | 来源:发表于2021-01-05 09:59 被阅读0次

    学习地址:

    https://learnku.com/articles/5932/bash-command-and-syntax-take-you-to-upgrade-hit-boss

    菜鸟教程

    https://www.youtube.com/watch?v=oxuRxtrO2Ag

    命令行

    基础命令

    命令 解释
    ls 展示文件及目录;
    ls -a 展示所有文件及目录(包括隐藏的);
    pwd 输出当前目录(print working directory);
    cd xx 传送到某个目录下;
    pushd xx 传送到某个目录下,可返回;
    popd 👆-返回;
    locate 检索
    history 查看近1,000行你执行过的指令;

    查看命令信息

    命令 解释
    whatis xx 对某行指令做出简介。eg:whatis cal ;
    apropos xx 例举出与xx有关的相关操作。 eg: apropos time ;
    which xx 检查xx指令是否存在,在哪里。eg: which cal;
    man xx 查看xx用法 ;eg: man man

    文件操作

    命令 用法 解释
    mkdir mkdir xx1 xx2 新建文件夹xx1和xx2
    touch touch xx1 xx2 1. 如果xx文件存在,则update这个文件,刷新文件中记录的时间;/n
    2. 如果xx文件不存在,则新建该文件。
    cp cp ~/xx rexx 将某路径下的xx文件copy到当前目录,且命名为rexx
    mv mv xx1 xx2 将xx1移动/move到xx2,xx1消失。若原来存在xx2,则xx2被覆盖;/n 若不存在,则相当于重命名了。
    rm rm xx 删除/remove某个文件【删了就没有了,没有回收站
    rm xx* 删除该文件夹下以xx打头的所有文件。同理,rm * 就是所有文件了。
    rm -r xxDirectory 删除xx文件夹和该文件夹下所有文件。
    rmdir rmdir xxDirectory 删除某个文件夹。
    rmdir * 删除所有文件夹。

    文本操作

    命令 用法 解释
    cat cat xx1,xx2 查看某(些)个文本。
    cat >> xx 编辑某个文本,内容会覆盖原文件。按 ctrl+D/c 返回编辑状态。
    cat > xx 编辑某个文本,内容会在添加在原文件末尾。
    nano nano 新建一个文本。ctrl^x退出,y/n是否保存。
    nano xx 打开并编辑某个文本。
    xcommand > xxFile ls / > a 将某条指令执行的结果写入a文本文件。

    权限操作

    命令 解释
    sudo -s 进入root模式,后续的所有操作是root权限。exit退出。
    su -userA 切换账号,进入userA。
    su - 切换到root账号。exit退出。

    ls -l 可显示文件权限,执行结果如下:

    image-20210104152415759.png
    第1位 2~4位 5~7位 8~10位 数字 user user
    文件类型 所有者权限 所有组权限 普通用户权限 执行次数 用户名 组名
    - 普通文件
    d 目录文件 r 可读 r 可读 r 可读
    p 管理文件 w 可写 w 可写 w 可写
    i 链接文件 x 可执行 x 可执行 x 可执行
    b 块设备文件 - 无权限 - 无权限 - 无权限
    c 字符设备文件
    s 套接字文件
    image-20210104153655672.png

    修改权限

    命令 用法 解释
    chmod (change mode) chmod +x filed 给filed文件(普通用户)添加可执行权限。
    chmod +r filed 给filed文件(普通用户)添加可读权限。
    chmod +w filed 给filed文件(普通用户)添加可写权限。

    也可以这么写,更舒服;参考上图:

    chmod 743 filed ---> 设置filed权限位:rwx,r--,-wx ;

    因为我们可以用1-7的数字表示每一种权限的组合;

    1 2 3 4 5 6 7
    1 2 1+2 4 1+4 2+4 1+2+4
    x/可执行 w/可写 x+w/ r/可读 x+r/可执行可读 w+r/可写可读 x+w+r/可读可写可执行

    语法

    变量

    变量类型

    运行shell时,会同时存在三种变量:

    • 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
    • 2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
    • 3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
    语法 说明
    Shell 字符串 str='this is a string' your_name="runoob" greeting_1="hello, ${your_name} !" 单引号、双引号均可,双引号支持变量转义字符
    string="abcd" echo ${#string} #输出 4 ${#xx} 获取xx字符串长度
    Shell 数组 array_name=(value0 value1 value2 value3) 创建数组:数组名=(值1 值2 ... 值n)
    valuen=${array_name[n]} echo ${array_name[@]} # @表示获取所有元素 读取数组: ${数组名[下标]}
    length=${#array_name[@]} length=${#array_name[*]} # 获取数组长度 ${#xx[@]} 获取数组长度

    流程控制

    https://www.runoob.com/linux/linux-shell-process-control.html

    Shell 函数

    https://www.runoob.com/linux/linux-shell-func.html

    <未完·待续>

    相关文章

      网友评论

          本文标题:Shell学习

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