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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)