实验1:Linux基础及工具使用

查看自己的shell类型

  • 查看默认 Shell

    • 使用环境变量 $SHELL 来查看默认的 shell:
      1
      echo $SHELL
  • 查看当前会话的 Shell

    • 使用 ps 命令查看当前会话的 shell:
      1
      ps -p $$
  • 列出所有可用的 Shell

    • 查看系统中所有可用的 shell:
      1
      cat /etc/shells

运行结果

alt text

如何转换到其他 Shell

在 Linux 系统中,你可以通过以下几种方式切换到不同的 shell:

  • 临时切换 Shell

    • 直接输入你想要切换到的 shell 名称,例如切换到 bash
      1
      bash
    • 切换到 zsh
      1
      zsh
    • 切换到 fish
      1
      fish
  • 永久更改默认 Shell

    • 使用 chsh 命令更改默认 shell。例如,将默认 shell 更改为 zsh
      1
      chsh -s /bin/zsh
    • 需要管理员权限时,可以使用 sudo
      1
      sudo chsh -s /bin/zsh
    • 更改后,需要重新登录或重启终端以使更改生效。
  • 查看可用的 Shell

    • 查看系统中所有可用的 shell:
      1
      cat /etc/shells

通过以上方法,你可以轻松地在不同的 shell 之间进行切换,无论是临时切换还是永久更改默认 shell。

alt text

Linux 命令行的语法结构

Linux 命令行的语法结构通常如下所示:

各部分的含义和作用如下:

  • **$**:表示命令行提示符,通常在用户终端中看到。实际输入命令时不需要包含这个符号。
  • **command**:要执行的命令名称。这是命令行中最核心的部分。
  • **[-]option(s)**:命令的选项,用于修改命令的行为。选项通常以短横线 - 开头,有时也可以使用长选项形式 --long-option
  • **op-argument(s)**:选项参数,某些选项可能需要额外的参数。这些参数紧跟在选项后面。
  • **command-argument(s)**:命令参数,用于指定命令操作的具体对象或目标。这些参数通常位于命令和选项之后。

示例

  1. 基本命令
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       一般来说,Linux命令的主要包括以下9类。
    1)文件及目录管理命令,例如ls,cd,cat,grep,touch,pwd,od等
    2)磁盘及设备管理命令,例如mount,umount,df,du,fsck,dd等
    3)进程管理命令,例如ps,top,kill,bg,fg等
    4)用户管理及权限管理命令,例如chmod,su,useradd,userdel等
    5)系统管理及维护命令,例如date,cal,shutdown,clear,echo等
    6)网络通信命令,例如netstat,ifconfig,ping,telnet等
    7)数据备份命令,例如bzip2,bunzip2,gzip,gunzip,zip,unzip,tar等
    8)文档操作命令,例如csplit,sort,wc等
    9)文件传输打印命令,例如lpr,bye,ftp等
    帮助命令man、help、info可以查看任何命令的手册,这里使用ls命令查看-s选项的
    帮助信息
最常用的命令
cd pwd clear
1
2
3
4
5
6
 cd ..
cd .
cd ~
目录的创建与删除命令 mkdir,rmdir
显示文件内容命令 cat、more、head、less、tail
文件的复制,移动及删除命令cp,mv,rm

使用 tar 命令的示例

tar 是一个归档程序,它可以将许多文件打包成一个归档文件,或者将它们写入备份设备,例如磁带驱动器。tar 是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。使用 tar 可以打包整个目录树,这使得它特别适合用于备份。通常在 Linux 下保存文件都是先用 tar 命令将目录或者文件打成 tar 归档文件(也称为 tar 包),然后用 gzipbzip2 进行压缩,压缩后的文件常见后缀有 .tar.gz.tar.bz2.tgz.tbz 等。此外,tar 是一个命令行的工具,没有图形界面。

命令如下

  • 仅对文件夹打包,不进行压缩
    1
    $ tar -cvf /tmp/etc.tar /etc
    • 文件打包后,并且以 gzip 压缩
      1
      $ tar-cvzf /tmp/etc.tar.gz /etc
    • 文件打包后,并且以 bzip2 压缩
      1
      $ tar-cvjf /tmp/etc.tar.bz2 /etc
      alt text
    • 查阅 /tmp/etc.tar.gz 中的归档文件
      1
      $ tar -tvzf /tmp/etc.tar.gz
      alt text
    • 从 /tmp/etc.tar.gz 中解压文件到 /user/local/src 目录下:
      1
      2
      $ cd /usr/local/src
      $ tar -xvzf /tmp/etc.tar.gz
      alt text
    • 在/home当中,比2012/09/01日期新的文件才备份,输入命令
      1
      $ tar-N "2012/09/01"-zcvf home.tar.gz /home
      alt text
    • 在/home当中,比2012/09/01日期旧的文件才备份,输入命令
      1
      $ tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
      alt text

    shell使用教程

    首先创建一个以.sh结尾的文件,例如:111.sh

    1
    touch 111.sh

    使用vim编辑文件:
    1
    vim 111.sh

    输入以下内容:
    1
    2
    #!/bin/bash
    echo "Hello World !"

    保存退出:
    1
    wq

    有两种方式执行脚本:
    1、作为可执行程序:赋予执行权限
    1
    2
    chmod +x ./111.sh  #使脚本具有执行权限
    ./111.sh #执行脚本

    2、作为解释器参数
    1
    ./bin/sh 111.sh

    这种方式运行的脚本,不需要在第一行指定解释器信息

    接下来的教程详见菜鸟教程:Shell脚本教程