难度:2;预计完成时间:7小时

[info] 安装Linux系统

安装Ubuntu 20.04(桌面版)

当你的虚拟机(或者物理机)出现了Ubuntu的桌面时,就成功了。 我们后面的实验都将基于Ubuntu 20.04进行,当然使用别的Linux发行版版本也是可以的,出问题可以自行解决。一般来说出问题是你命令用的不对,这时候需要使用man指令来查询用法。

[info] man

使用man指令,查询ls,cd这两个命令的用法

请继续做下面的题目:

[info] 文件操作

完成下面的文件操作

(1)进入到home文件夹.

(2)在home文件夹中添加一个新的文件夹,叫做learn_linux.

(3)进入到learn_linux文件夹.

(4)新建一个文件,叫做a(注意不要有拓展名).

(5)使用vi修改a这个文件,在文件中写入“Sukuna Best”

(6)查看a里面的内容(提示:cat)

(7)将文件a复制到桌面

(8)将文件a移动到桌面

(9)使用命令查看桌面有什么内容.

(10)删除掉learn_linux文件夹.

(11)删除掉桌面上的a文件.

Linux的文件操作是最基本的Linux命令,是Linux开发的基础,最重要的是通过文件的操作了解,Linux是如何寻找路径的?路径分为绝对路径和相对路径。绝对路径一般从\home开始,而相对路径从当前文件夹开始。

[info] 软件源更新

Linux不同于Windows的一点是,Linux管理下载的软件是放到/usr/bin这个文件夹中,并且提供一个叫做apt的软件方便我们进行下载.所以说为了下载的速度我们有必要使用国内的软件源 比较方便的方法就是更改/etc/apt/source.list这个文件.更改的方法如下:

  1. 进入到目录/etc/apt/
  2. 备份之前旧的文件.(这一步可以跳过)
  3. 输入vi source.list就可以对此文件进行修改.(tips:输入d+G可以清空文件)

上面的方法如果行不通,那就试试上网搜索。

[info] 安装软件

尝试运行git init,看看控制台的报错信息.根据报错使得这个命令顺利运行。

方便地安装软件和依赖以及管理软件和依赖是Linux开发的一大亮点.环境变量的引入更是为Linux开发提供了巨大的便利.

请继续做下面的题目:

[info] 权限管理

在桌面中添加文件ramdom.sh,并添加下面的代码.

为什么代码运行不了?

是sudo的问题还是什么的问题?.尝试让代码运行

num=$[RANDOM%100+1]
while:
do
      read ‐p  "计算机生成了一个 1‐100 的随机数,你猜: "  cai
      if   [  $cai  ‐eq   $num  ];then
             echo   "恭喜,猜对了"
             exit
      elif  [  $cai   ‐gt   $num  ];then
             echo   "Oops,猜大了"
      else
             echo   "Oops,猜小了"
      fi

Linux的文件权限管理使得我们可以安全有效的使用操作系统.有的时候一个Shell脚本的运行需要系统赋权限才能执行!这样做是为了系统的安全!

[info] Shell脚本的编写

尝试编写一个脚本,让所有文件名为*.txt的文件重命名为*_old.txt

运行下面的脚本,体验Shell脚本的方便性。

function ci(){
    if [ -z"$1"]; then
        echo "Usage: ci <filename>'
        return 1
    fi
    if [ !-f"$1"]; then
        echo "Error: File not found"
        return 1
    fi
    cat"$1"| pbcopy
    echo "File content copied to clipboard'
}

请继续做下面的题目:

[info] 在Linux中运行代码

(1)在桌面编写一个C语言代码(命名为hello.c),这个代码可以输出Hello World.

(2)cd进桌面.

(3)输入下面两条命令

gcc -o hello hello.c

./hello

看输出结果.

(4)我想让编译器输出对应的汇编代码,我该怎么做?

请继续做下面的题目:

[info] 别名系统

使用alias命令,将一个命令命名成一个特殊的别名。

思考一下别名有什么用

还可以使用~/.bashrc对别名进行管理,除了管理别名,还可以做什么呢?

请继续做下面的题目:

[info] 变量系统和路径访问

(1)cd进别的文件夹,执行./hello看看能不能输出结果?

(2)更改全局变量,把桌面设置为全局变量的一部分.

(3)cd进别的文件夹,执行hello看看能不能输出结果?

尝试新建一个变量,并用echo命令打印出来

Linux的文件重定向非常的方便,可以简化我们命令行的操作.

[info] 文件重定向

(1) 尝试在命令行输入ifconfig.找到自己电脑的IP地址.

(2) 将ifconfig的输出能不能快捷地复制到一个文件里面?(提示:使用>)

(3) 输入下面的C语言代码,命名为hello.c

编译(gcc -o hello hello.c)之前已经写好的C语言代码,并且创建一个新的文件,命名为1.txt,在文件里面添加Sukuna.

执行./hello < 1.txt看结果是什么?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char a[100];
int main(){
    scanf("%s",a);
    printf("%s\n",a);
}

请继续做下面的题目:

[info] 管道

(1) 使用管道以及grep命令,快速寻找自己电脑的IP地址.

(2) 查询上面一题的C语言代码中含有int的行.

管道能把之前命令的输出作为下一个命令的输入,这种处理模式非常像一个连接起来的水管,故名为管道.

管道的写法就是一个|.

[info] Vim

(1) Vim 共有哪三种模式?请用英文作答。

(2) 向后翻页(行号值由小变大)的快捷键是?

(3)快速定位到 037 行的命令是?

(4)在命令模式下保存并强制退出的命令是?

(5)命令 cc 和 dd 的区别是?

(6)向下跳转 100 行的命令是?

(7)在命令模式下表示撤销的是那个按键?

(8)跳到最后一行的快捷键是?

(9)使用vim在桌面创建一个新的文件,命名为C,在文件里写入Sukuna.并成功保存

请继续做下面的题目:

[info] 进程管理

我们可以使用类似 ps aux | grep 这样的命令来获取任务的 pid ,然后您可以基于pid 来结束这些进程。但我们其实有更好的方法来做这件事。在终端中执行 sleep 10000 这个任务。然后用 Ctrl-Z 将其切换到后台并使用 bg来继续允许它。现在,使用 pgrep 来查找 pid 并使用 pkill 结束进程而不需要手动输入pid。(提示:可以使用pkill -af

如果您希望某个进程结束后再开始另外一个进程,应该如何实现呢?(提示:可以使用wait指令)

请继续做下面的题目:

[info] tmux

(1) 使用tmux打开两个命令行窗口.

(2) 在两个命令行窗口运行不同的代码.

(3) 关闭其中一个命令行的窗口

results matching ""

    No results matching ""