Linux实验一

2021/6/29 7:22:29

本文主要是介绍Linux实验一,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • 实验一
    • linux的登录,linux窗口
    • man命令
      • man ls
      • man -f ls
    • passwd命令
    • cp命令
      • cp text.txt dir1
      • cp dir1/* dir2
      • cp -r dir1 dir2
    • who命令
    • uname命令
    • whereis命令
    • cd命令
      • cd test/
      • cd
      • cd -
      • cd ~
      • cd . 和cd ..
    • ls命令
      • ls
      • ls -l
      • ls-hl
        • ls -l和ls -hl的区别
      • ls -a
    • pwd命令
    • mkdir命令
      • mkdir -p test3/test31
        • mkdir test2/test21
    • rm命令
      • rm text.txt
      • rm -r test21/
      • rm -i hello.c
      • rm -d voidfolder
    • cp命令
      • cp hello.c dir1
      • cp dir1/* dir2
      • cp -r dir1 dir2
      • cp hello2.c hello21.c
    • mv命令
      • mv hello.c dir1
      • mv -i hello.c dir1
      • mv hello.c hello2.c
    • cat命令
      • cat命令显示超长文件的不足
    • more命令
      • more +459 /etc/locale.gen
    • less命令
    • nano命令
    • ping命令
    • tar命令
      • tar -tf file1.tar.bz2
      • tar -cf file1.tar .
      • tar -xf file1.tar
      • tar -cjf file1.tar.bz2 .
      • tar -xjf file1.tar.bz2 -C dir1/
      • tar -czf file1.tar.gz .
      • tar -xzf file1.tar.gz -C dir1/
    • ln命令
      • 硬链接
      • 软链接
    • chmod命令
    • Vimtutor
      • 移动光标
      • 文本删除
      • 文本插入
      • 文本添加
      • 文本保存
      • 单词删除
      • 删除到行尾
    • vi创建c程序
      • gcc -o hello hello.c

实验一

内容:

  1. 熟悉linux的登录,linux窗口,学会使用自动补全输入命令,熟练掌握man 、 ls、passwd、cp、who、uname、whereis等命令的用法。

  2. 按照文后的附录,学习常用的26个命令。

  3. 运行命令 vimtutor,完成Vimtutor教程一遍

  4. 用vi完成一个简单的c语言程序,尽可能多的用vi中的各种命令。用gcc编译,并执行该程序。

  5. 学会编写基本的makefile文件,使用makefile 和make工具做一个复杂一点的c语言程序(选做)

linux的登录,linux窗口

Linux的登录界面如下:

image-20210422212746167

Linux的桌面:

image-20210422213053896

man命令

man 是 Linux 的帮助手册,即 manual 。因为大多数程序都会自带手册,所以可以通过 man 命令获取帮助。执行以后,在 man page 页面中按 q 退出。

man ls

image-20210422213823597

man -f ls

passwd命令

passwd可以用来修改密码

image-20210422214227054

cp命令

cp即copy,复制文件或者文件夹

cp text.txt dir1

复制text.txt到dir1文件夹下:

image-20210422220555647

cp dir1/* dir2

将dir1文件夹下的所有文件(不包含子目录)复制到dir2文件下

image-20210422220846430

cp -r dir1 dir2

将dir1文件下所有的文件(包括子文件中的文件)全部复制到dir2文件夹中

image-20210422221313365

who命令

image-20210422221429401

uname命令

image-20210422221504884

whereis命令

可以查看命令是在哪个文件夹下,比如下面的查看ls命令在哪个文件夹下

image-20210422221606329

cd命令

cd test/

相对路径,进入test文件夹:

image-20210422222038049

绝对路径,进入test文件夹:

image-20210423090420164

cd

当cd后面什么都不写的时候,默认回到用户目录

image-20210422222209236

cd -

回到根目录或者用户目录,取决于现在是在用户目录还是在根目录

cd ~

回到用户目录

image-20210422222547073

cd . 和cd ..

.代表当前目录, .. 表示上级目录:

image-20210423090555661

ls命令

ls即list,列出文件

ls

仅列出当前目录可见文件:

image-20210423090921508

ls -l

列出当前目录课件文件的详细信息:

image-20210423091123919

ls-hl

列出当前目录可见文件的详细信息,并且以可读大小显示:

image-20210423091327468

ls -l和ls -hl的区别

除了在文件大小的显示格式的区别,其他没有区别:

image-20210423091506793

ls -a

列出所有文件,包括隐藏文件,以 . 开头的文件或文件夹均为隐藏文件或隐藏文件夹。

image-20210423094136932

pwd命令

pwd 用于返回当前工作目录的名字,为绝对路径名。

image-20210423094251301

mkdir命令

用于新建文件夹

image-20210423094354570

mkdir -p test3/test31

创建多级目录,加上-p的含义是,如果没有父级目录,就会帮你创建父级目录.如果不加上-p,并且也没有对应的父级目录,那么就是无法创建.

image-20210423095645886

mkdir test2/test21

创建多级目录,不加上-p,这个上面的区别,就是test2这个文件夹,一开始就是必须存在,而上面的test3文件夹可以不存在.

image-20210423095841761

rm命令

删除文件或者文件夹,下面看看rm --help中的部分精简内容.

zhuosong@zhuosong:~/test$ rm --help
用法:rm [选项]... [文件]...
删除(unlink)指定<文件>。
-f, --force 强制删除。忽略不存在的文件,不提示确认
-i 每次删除前提示确认
-I 在删除超过三个文件或者递归删除前提示确认;
-r, -R, --recursive 递归删除目录及其内容
-d, --dir 删除空目录
-v, --verbose 详细显示进行的步骤

默认时,rm 不会删除目录。使用--recursive(-r 或-R)选项可删除每个给定
的目录,以及其下所有的内容。

要删除文件名第一个字符为“-”的文件(例如“-foo”),请使用
以下方法之一:
rm -- -foo

rm ./-foo

rm text.txt

删除text.txt文件,rm后面就是直接跟上文件名,但是如果是文件夹就是不能删除.

image-20210423100302995

rm -r test21/

删除文件夹test21,但是可能出现无法删除的情况,这个时候,就是加上-r,这个本质上是递归删除test21文件夹及其子文件或文件夹.

image-20210423094728614

rm -i hello.c

删除hello.c文件,但是在删除文件之前会弹出提示,只有确定输入y,才会删除.

image-20210423151402937

rm -d voidfolder

删除voidfolder文件夹,其中voidfolder文件夹是个空文件夹.如果使用普通的rm命令,不带上任何修饰符,这个文件夹是无法删除的.前面说过,如果带上-r,可以删除,那么这里使用-d也是可以删除的.

image-20210423151814600

但是如果这个文件夹,是个非空文件夹,也就是里面还有东西,那么使用这个命令就是无法删除,如下:

image-20210423153140082

cp命令

cp即copy,复制文件.下面是cp --help的部分内容

zhuosong@zhuosong:~/test$ cp --help
用法:cp [选项]... [-T] 源文件 目标文件
 或:cp [选项]... 源文件... 目录
 或:cp [选项]... -t 目录 源文件...
将指定<源文件>复制至<目标文件>,或将多个<源文件>复制至<目标目录>。
必选参数对长短选项同时适用。
-f, --force                  如果有已存在的目标文件且无法打开,则将其删除									 并重试(该选项在与 -n 选项同时使用时将被忽略)
-n, --no-clobber	   不要覆盖已存在的文件(使前面的 -i 选项失效)
-R, -r, --recursive     递归复制目录及其子目录内的所有内容
-u, --update			 只在源文件比目标文件新,或目标文件不存在时									  才进行复制

cp hello.c dir1

hello.c是一个普通文件,dir1是个文件夹,命令就是将hello.c复制到dir1文件夹下.

image-20210423155228676

cp dir1/* dir2

将dir1中的所有文件(不包含子文件夹)复制到dir2文件夹中.

image-20210423161249920

cp -r dir1 dir2

将dir1中的所有文件,包括子文件夹中文件,全部复制到dir2文件夹下,-r的意思,就是递归.

image-20210423161418245

此外,如果dir2是个开始就不存在的文件夹,那么也是可以执行的,他就会先创建一个文件夹.,如下所示:

image-20210423161854477

cp hello2.c hello21.c

hello2.c是个已经存在的文件,命令就是相当于复制hello2.c文件,然后重用名为hello21.c

image-20210423162456508

mv命令

mv hello.c dir1

移动hello.c文件,到dir1文件夹.

image-20210423162853064

mv -i hello.c dir1

移动hello.c文件到dir1中,如果dir1中有同名文件,则会提示是否覆盖.

image-20210423163304790

mv hello.c hello2.c

这里的hello.c和hello2.c都是普通文件,不是文件夹,所以这里的作用就是相当于重用名的作用.

image-20210423163518405

cat命令

可以就文件中的内容,直接打印到终端.

image-20210423163835025

如果就上-n选项,就是会打印行号:

image-20210423163910707

cat命令显示超长文件的不足

cat命令就是一下子把五百多行的内容直接输出到终端,上面的内容,如果没有鼠标,图形画界面的画,是看不到的.

image-20210423165035152

more命令

more也是用来显示文档内容,和cat类似,不同的是,他不想cat命令,一下就显示所有的内容,要看上面的内容,还要往上翻,如果只有键盘,那就没法往上翻了.这个命令会在会后显示个"--更多--(7%)",然后你按下一空格或回车,他就是会加载一行,然后一行一行的显示.

image-20210423164701180

more +459 /etc/locale.gen

+495的含义是从自定的行开始显示,也就是从495行开始显示.

image-20210423165334696

less命令

less命令和前面的more命令,cat命令类似,都是用来显示文件内容,但是更加灵活,像是一个只读的vim编辑器,执行命令之后,会进入内容界面,然后可以上下翻页查看,不想前面的more只能向下翻页.然后可以通过按q退出.

nano命令

nano 是一个简单实用的文本编辑器,使用简单。

image-20210423170715195

ping命令

ping 主要用于测试网络连通,通过对目标机器发送数据包来测试两台主机是否连通,及延时情况。

image-20210423170913301

tar命令

参数解释:

​ -c 创建归档

​ -x 解压归档

​ -v 显示处理过程

​ -f 目标文件,其后必须紧跟 目标文件

​ -j 调用 bzip2 进行解压缩

​ -z 调用 gzip 进行解压缩

​ -t 列出归档中的文件

tar -tf file1.tar.bz2

查看file1.tar.bz2文件,在解压之前可以先查看下压缩包里的内容.

image-20210423175122919

tar -cf file1.tar .

将当前目录的所有文件归档,但不压缩,注意后面的".",表示当前目录.

image-20210423172916759

加上-v,就是会显示处理过程,

image-20210423172927103

tar -xf file1.tar

解压file1.tar文件,到当前目录

image-20210423173351044

tar -cjf file1.tar.bz2 .

调用bzip2压缩文件,

image-20210423173538039

tar -xjf file1.tar.bz2

解压文件到当前目录

image-20210423173954950

tar -xjf file1.tar.bz2 -C dir1/

解压file1.tar.bz2文件到dir1文件夹下面,注意这个-C中的C必须是大写的C.

image-20210423175221981

tar -czf file1.tar.gz .

使用gzip把当前目录中的内容压缩成文件fiel1.tar.gz

image-20210423175934315

tar -xzf file1.tar.gz -C dir1/

把file1.tar.gz文件解压到dir1文件夹当中

image-20210423180059987

ln命令

硬链接

硬链接主要是增加一个文件的链接数,只要该文件的链接数不为 0 ,该文件就不会被物理删除,所以删除一个具有多个硬链接数的文件,必须删除所有它的硬链接才可删除。

硬链接有点像C语言中的指针访问数据,而软链接有点像访问副本数据,也就是说删除所有硬链接,那么这个文件就是被彻底删除了,而删除所有软链接,这个文件还仍然存在,硬盘上的数据不受影响.

image-20210423183017105

软链接

-s就是表示创建软件链接,s就是soft的意思.这个命令是在dir1中创建一个能够直接访问dir11中的text.txt文件的软链接,相当于windows系统的快捷方式.

image-20210423182407020

chmod命令

change mode,就是改变的文件的权限,主要有 读取 、 写入 、 执行 ,三种权限,其中 所有者(u=user)、 用户组(g=group) 、 其他(o=other) 各占三个,其中 r=read , w=write , x=execute

如下图所示,原来的命令权限是664,更改之后,变成了764

image-20210423184220396

Vimtutor

移动光标

文本删除

在正常(Normal)模式下,可以按下 x 键来删除光标所在位置的字符。

文本插入

在正常模式下,可以按下 i (insert)键来插入文本

文本添加

按 A 键以添加文本

文本保存

graph LR a[:wq]-------->b[保存退出] c[:q!]-------->d[强制退出]

单词删除

将光标移至准备要删除的单词的起始处,接着输入 dw 删除掉该单词

删除到行尾

输入 d$ 从光标处删至当前行尾部

vi创建c程序

image-20210423215435294

gcc -o hello hello.c

就是将hello.c文件编译成hello,然后通过./hello运行



这篇关于Linux实验一的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程