Linux命令及shell编程浅谈

Linux命令及shell编程浅谈

  • Linux文件系统结构

image-20220515190158467.png
  • 通配符

    • 匹配任何字符任何数目*的字符
    • ?匹配任何单字符
    • [...] 匹配任何包含在括号里的单字符
    • 目录表示:. 指示当前目录,.. 表示当前目录的父目录
  • 启动退出命令

    • logout 注销
    • exit 退出
    • reboot 重启系统(需要管理员权限)
    • shutdown 关机 (需要管理员权限 )
  • 目录操作命令

    • pwd 显示出用户当前工作目录的全部路径(print working directory)
    • mkdir directory_name 创建新目录(make directory)
    • cd directory_name 改变当前工作目录
    • rmdir directory_name 删除目录,但要求目录中不存在文件或子目录
  • 常用命令

    • ls [-a/-R/-l/-lc/-lu] [dir_name] 显示目录命令
  • cat filename 显示出文件内容

    • view filename 只能读出文件内容
  • head [-i] filename 显示文件的开始i行

    • tail [-i] filename 显示文件的末i行
  • pr filename 显示格式化的文本内容(print)

    • cp source_file target_file 复制文件(新的文件可以同名)
  • rm -i/r/f file_or_dir 删除文件 (i互动删除,删除前再确认一次,r递归删除,强制删除)

    • chmod pattern filename 修改文件权限
  • find pathname [option] expression 寻找文件名

    • diff filename1 filename2 比较来两个文件的不同
  • touch filename 改变文件日期,不对文件内容改动,若文件不存在则创建新文件

    • date 显示或设置日期(只有root用户才有权设置日期)
  • cal [month] year 显示某年指定的日历

    • time [command] 计算程序或命令在其执行所消耗的时间
  • history 帮助用户回忆执行过的命令

    • man [command_name] 显示参考手册,提供联机帮助信息
  • echo [-n] [arguments] 将参数即字符串至标准输出即显示器

  • 简单实例一

    1. 设定变量file的值为/etc/passwd

    2. 使用循环变量读取文件/etc/passwd的第2,4,6,10,13,15行,并显示其内容

    3. 把这些行保存至/tmp/mypasswd文件中

      #!/bin/bash
      file="/etc/passwd"       # 务必使用“”
      for i in 2 4 6 10 13 15
      do
              head -$i $file   # 务必使用 $
              head -$i $file>"/tmp/mypasswd"
      
      done
      
      
  • 简单实例二

    1. 传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商。

      #!bin/bash
      a=$1      # 执行脚本是应为 sh filename argument1 argument2
      b=$2
      var1=`expr $a + $b`   # 务必注意运算符与参数之间的空格
      var2=`expr $a - $b`
      var3=`expr $a \* $b`  # 注意 \*
      var4=`expr $a / $b`
      echo "a+b=$var1"
      echo "a-b=$var2"
      echo "a*b=$var3"
      echo "a/b=$var4"
      
      
  • 简单实例三

    1. 显示系统日期和时间,而后创建目录/tmp/lstest

    2. 切换工作目录至/tmp/lstest

    3. 创建目录a1d,b56e,6test

    4. 创建空文件xy,x2y,732

    5. 列出当前目录下以a,x或者6开头的文件或目录

    6. 列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录

      #!/bin/bash
      date
      mkdir /tmp/lstest
      cd /tmp/lstest
      mkdir a1d b56e 6test  # 注意空格
      touch xy x2y 732      # 注意空格
      ls [ax6]*             # 注意正则表达式的运用
      ls [[:alpha:]][[:digit:]]*   # 注意[]
      
      
  • 简单实例四

    1. 编写一个名为myfirstshell.sh的脚本

    2. 包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的

    3. 问候用户

    4. 显示日期和时间

    5. 显示这个月的日历

    6. 显示您的机器名

    7. 显示当前这个操作系统的名称和版本

    8. 显示父目录中的所有文件的列表

    9. 显示root正在运行的所有进程

    10. 显示变量TERM、PATHHOME的值

    11. 显示磁盘使用情况

    12. 用id命令打印出您的组ID

    13. 跟用户说“Good bye”

    ```shell
    #!/bin/bash
    # author:@Ezralin 
    # name:myfirstshell
    # pourpose: to improve myself
    user=`whoami`
    case $user in
        root)
            echo "hello root";;
        Ezralin)
            echo "hello Bin";;
        *)
            echo "hello $user,welcome"
    esac
    echo "日期和时间:`date`"
    echo "本月的日历:`cal`"
    echo "本机的机器猫:`uname -n`"
    echo "当前这个操作系统的名称和版本:`uname -s;uname -r`"
    echo "父目录中的所有文件的列表:`ls ../`"
    echo "root正在运行的所有程序:`ps -u root`"
    echo "变量TERM的值:$TERM"
    echo "变量PATH的值:$PATH"
    echo "变量HOME的值:$HOME"
    echo "磁盘的使用情况:`df`"
    echo "用id命令打印出你的组ID:`id -g`"
    echo "Good bye!"
    
    
    ```
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容