Linux上机报告

0、前言

分享给大家做参考和复习啦 😋

1、第一次上机

1、使用命令在用户主目录(/home/stu下)创建一个目录,目录名为各自的学号。查看当前在线用户,以及工作目录

mkdir 114514		#假设学号是114514
cd 114514
who
pwd

这里是引用

2、使用命令date显示当前的时间和日期;将现在日期按照格式:时:分:秒 年-月-日显示。(并将显示结果存入/home/stu/[学号]/a文件中,并查看文件内容。)

date +%T%n%F > a
ls
cat a

这里是引用

3、使用echo命令显示“hello linux”。(并将显示结果存入/home/stu/[学号]/b文件中,并查看文件内容。)

echo "hello linux" > b
ls
cat b

这里是引用

4、 使用命令切换到/etc目录,并显示当前工作目录路径。

cd /etc
pwd

这里是引用

5、使用命令显示/etc目录下所有文件目录的详细信息,包括隐藏文件,查看文件类型。

ls -al

这里是引用

6、 在/home/stu/[学号]/目录下创建空文件ab,内容是当前的日期信息。

cd /home/stu/114514
date +%F >ab
ls
cat ab

这里是引用

7、将文件/etc/host.conf文件复制到目录/home/stu/[学号]/学号中。

mkdir 114514
ls
cp /etc/host.conf 114514
cd 114514/
ls

这里是引用

8、将目录中的文件host.conf更名为test。

mv host.conf test
ls

这里是引用

9、统计文件/home/stu/[学号]/test的行数、字符数和单词数。

wc -l test
wc -c test
wc -w test

这里是引用

10、使用命令对创建符号链接文件/home/stu/[学号]/linka ,链接对象是/home/stu/[学号]/ 目录下的文件test。

cd ..
ls
ln -s 114514/test linka
ls

这里是引用

11、将该目录及其目录下的文件一起删除。

rm -r /home/stu/114514
cd /home/stu
ls

这里是引用

2、第二次上机

1、以学号创建文件夹,在学号目录中创建logs子目录

mkdir logs
ls

这里是引用

2、查找/var/log下所有log文件,并复制到上一步创建的logs目录

find /var/log -name '*log*'| xargs cp -t /home/stu/114514
ls

这里是引用

3、统计logs目录下文件的数量,并把统计结果保存到学号/logscount文件中

ls -l /home/stu/114514/logs | grep "^-" | wc -l > logscount
cat logscount

这里是引用

4、将当前系统时间以“当前系统时间:xx:xx:xx”的形式追加到logscount 文件中

date +"current system time : %H:%M:%S" >> logscount
cat logscount

这里是引用

5、将logs目录打包为logs.tar.gz

tar zcvf logs.tar.gz logs

这里是引用

6、将logs.tar.gz解包到学号/logs_bak目录

tar zxvf ./logs.tar.gz -C ./logs_bak

这里是引用

7、在学号下创建vi目录,在vi目录创建文件abc.c程序,输入内容见下图,并完成以下操作:

mkdir vi
cd vi
vi abc.c

这里是引用

#include<stdio.h>
void main()
{       
        int h,f;
        int x,y;
        printf("请输入头数和脚数");
        scanf("%d,%d",&h,&f);
        x=(4*h-f)/2;
        y=(f-2*h)/2;
        printf("鸡=%d 兔子=%d",x,y);
}       

这里是引用

(1) 显示行号

set number

这里是引用

(2) 移动光标到第6行

这里是引用

(3) 复制该行

按下y,没有效果显示

(4)移动光标到倒数第2行

这里是引用

(5) 粘贴复制行内容

这里是引用

(6) 撤销上一步操作

这里是引用

(7) 删除第6行

这里是引用

(8) 移动光标到第1行

这里是引用

(9) 向下查找字符在“int”

这里是引用

(10) 存盘退出

这里是引用

3、第三次上机

1、使用vi建立一个脚本,脚本包括date、pwd、cal、ls 等命令,使用不同的方式执行该脚本。

echo "date"
date
echo "pwd"
pwd
echo "cal"
cal
echo "ls"
ls

这里是引用

chmod +x test.sh
./test.sh

这里是引用

2、调试脚本:P121例4.11、P123例4.12、P129例4.16

p121.例4.11

#if user has logged in the system                
#then, copy a file to his or her file
#else,display an error information

echo "Type in the user name ."             
read user
if 
   grep $user  /etc/passwd > /tmp/null
   who | grep $user
then
   echo "$user has not logged in the system."
   cp /tmp/null tmp1
   rm /tmp/null
else
   echo "$user has not logged in the system." 
fi

这里是引用

chmod +x book_1.sh
./book_1.sh
#键盘输入root

这里是引用

p123例4.12

#!/bin/bash                            
echo -n "key in a number(1-10): "  
read a
if 
    [ $a -lt 1 -o $a -gt 10 ]
then
    echo "Error Number."        
    exit 2
elif
    [ ! $a -lt 5 ]
then
    echo "It's no less 5."                    
else
    echo "It's less 5."           
fi
echo "accept key in value . "   

这里是引用

chmod +x book_2.sh
./book_2.sh
#键盘输入12

这里是引用

P129例4.16

#!/bin/bash                           
for((i=1;i<=10;i++))
do
        for ((j=1;j<=i;j++))
        do
        echo -n "*"     
        done
        echo ""                     
done
echo "end!"  

这里是引用
在这里插入图片描述

3、 编写一个脚本:实现新建一个文件夹,以当前的系统日期命名,文件夹里有文件a以及a的压缩文件,文件a的内容是/etc/passwd文件的内容。

#!/bin/bash
mkdir $(date +"%Y-%m-%d")
cd  $(date +"%Y-%m-%d")
cp /etc/passwd a
tar cvf a.tar a

这里是引用
在这里插入图片描述

4、 编写一个脚本:实现将文件a的第3,5,7,15,17行显示出来。

#!/bin/bash
cat a | head -n 3 | tail -n -1
cat a | head -n 5 | tail -n -1
cat a | head -n 7 | tail -n -1
cat a | head -n 15 | tail -n -1
cat a | head -n 17 | tail -n -1

这里是引用
在这里插入图片描述

4、第四次上机

1、使用vi建立一个脚本,实现用户的批量创建。要求:用户名为stu_序号,序号为1~100,并为每个用户设置密码为123456.

#!/bin/bash                                       
echo create account                         
lst=stu_
for((i=1;i<=100;i++))                                
do                                                   
        acc_name=${lst}${i}                          
        echo "add user $acc_name"                               
done   

这里是引用
在这里插入图片描述

2、调试程序:P216例7.8

example7-8.sh

#!/bin/bash
echo "今天是`date`"
if  (($#!=2)); then
    echo "exam7-8的用法:exam7-8 文件1 文件2"
    exit 1
elif [ ! -f $1 -o ! -f $2 ]; then
    echo "输入文件名有误!"
    exit 2
else
#调用c程序 rdwr
./rdwr $1 $2
fi
echo "下面是文件2--$2--的内容"
cat $2

这里是引用

m1.c

#include <unistd.h>                
#include <sys/types.h>             
#include <sys/stat.h>              
#include <fcntl.h>                
#include <stdlib.h>                
#include <stdio.h>

int main(int argc,char **argv){ 
int i,fd,fd2,nbyte3;
        char buf[10];

        if(argc<3){
                fprintf(stderr,"usage:%s origin destination\n",argv[0]);
        return 1;
}
        if((fd=open(argv[1],O_RDONLY,0644))<0){
                fprintf(stderr,"cannot open %s for reading\n",argv[1]);
                exit(EXIT_FAILURE);
}
        if((fd2=open(argv[2],O_WRONLY))<0){
                fprintf(stderr,"cannot open %s for writing\n",argv[2]);
                exit(EXIT_FAILURE);
}
        while((nbyte3=read(fd2,buf,10))>0){
                if(write(fd2,buf,nbyte3)<0){
                        fprintf(stderr,"%s writing error!\n",argv[2]);
                        exit(EXIT_FAILURE);
                }
                for(i=0;i<10;i++)
                        buf[i]='\0';
        }
        close(fd);
        close(fd2);
        system("echo    ");
        system("echo show_this_list--'pwd'--content");
        system("ls     ");
        exit(EXIT_SUCCESS);

        }

用vi写完m1.c后:

gcc m1.c -o rdwr
touch kong_1
touch kong_2
vi kong_2 #往kong_2里面写了一句“这里是kong_2”
chmod +x example7-8.sh
./example7-8.sh kong_1 kong_2

这里是引用
在这里插入图片描述

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值