目录
第一次上机:
第二次上机:?
第三次上机:
第四次上机:
第一次上机:
1,查看当前在线用户,以及工作目录。
w #查看当前在线用户
pwd #查看工作目录
2,使用命令date显示当前的时间和日期;将现在日期按照格式:时:分:秒 年-月-日显示。(并将显示结果存入/home/shouyi/a文件中,并查看文件内容。)
date +'%H:%M:%S %y/%m/%d' #以时:分:秒 年-月-日显示当前时间。
date +'%H:%M:%S %y/%m/%d' > /home/a.txt #将显示结果存入/home/a.txt文件中。
head -v /home/a.tet #查看文件内容
3,使用echo命令显示“hello linux”。(并将显示结果存入home/shouyi/b文件中,并查看文件内容。)
echo hello wold #显示hello wold
echo hello wold >b.txt #将hello wold放入b.txt
head -v b.txt #查看b.txt
4、使用命令切换到/etc目录,并显示当前工作目录路径。
cd /etc #进入路径
pwd #显示路径
5,使用命令显示/root目录下所有文件目录的详细信息,包括隐藏文件,查看文件类型。
ls -a -all #查看所有文件
6,使用命令在用户主目录(/home/shouyi下)创建一个目录,目录名为各自0的学号,在此目录下创建空文件ab,内容是当前的日期信息。
cd home/shouyi #进入路径
mkdir 20191101666 #创建学号目录
cd 20191101666 #进入学号目录
date >ab #将时间放入ab文件,没有则创建
7、将文件/etc/host.conf文件复制到目录/home/shouyi学号中。
cp etc/host.conf /home/shouyi/20191101666 #进行复制
8、将目录中的文件host.conf更名为test。
mv host.conf test #将名字修改为test
9、统计文件/home/shouyi/学号/test?的行数、字符数和单词数。
wc -lwc test #显示行数字符数单词书
10、使用命令对创建符号链接文件/home/linka?,链接对象是/home/shouyi学号目录下的文件test。
ln -s /home/linka /home/sn/20191101666 #创建符合链接
11、将该目录及其目录下的文件一起删除。
cd /home #进入要删除文件的路径
rm -rf 20191101666 #删除20191101666
第二次上机:?
1,以root用户登录到家目录。(后续操作均在root的家目录进行)
sudo passwd #修改密码进入
su #进入管理员权限
cd /root #进入root
2,以学号创建文件夹,及学号/logs
mkdir 20191101666 #创建学号目录
cd 20191101666 #进入目录
mkdir logs #创建logs
3,?查找/var/log下所有log文件,并复制到上一步创建的logs目录
ls –a /var/log #查看路径下内容
cp –r /var/log /logs #复制
?4,统计logs目录下文件的数量,并把统计结果保存到学号/logscount文件中
ls -l ./ |grep "^-"| wc –l #查看当前文件数量
ls -l ./ |grep "^-"| wc –l >home/20191101666 #将数量放入学号文件夹
5,?将当前系统时间以“当前系统时间:xx:xx:xx”的形式追加到logscount 文件中
date +"present_time:%H:%M:%S" >>logscount
6,?将logs目录打包为logs.tar.gz
tar zcvf log.tar.gz logs #将logs目录打包为logs.tar.gz
7,?将logs.tar.gz解包到学号/logs_bak目录
tar zxvf /home/shouyi/Desktop/20191101666/log.tar.gz -C /home/shouyi/Desktop/20191101666/logs_bak #(绝对路径)
8,?在学号下创建vi目录
mkdir vi #在学号下创建vi目录
9,?在vi目录创建文件abc.c程序,输入内容见下图,并完成以下操作:
:set nu #(1)显示行号
10,将学号目录及其目录下的文件一起删除。
rm -r 20191101666 #删除学号文件夹
第三次上机:
?1,使用vi建立一个脚本,脚本包括date、pwd、cal、ls 等命令,使用不同的方式执行该脚本。
首先获取权限
sudo passwd #修改密码
su #获取权限
vi test.sh #建立脚本文件
进入文本后输入
#!bin/bash
echo “date”
date +”%F %T”
echo “pwd”
cal
echo “cal”
cal
echo “ls”
ls -alba
然后退出,在输入
chmod +x test.sh #添加执行权限
bash <test.sh #执行脚本
2,调试脚本:P121例4.11、P123例4.12、P129例4.16
代码分析部分
代码1
#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 ." #输出文字Type in the user name
read user #读取user的信息
if #如果
grep $user /etc/passwd > /tmp/null #字符匹配user,存在把/etc/passwd放入/tmp/null
who | grep $user #显示匹配的user
then #然后
echo "$user has not logged in the system." #输出语句user has not logged in the system
cp /tmp/null tmp1 #复制/tmp/null到tmp1
rm /tmp/null #删除/tmp/null
else #否则
echo "$user has not logged in the system." #输出user has not logged in the system
fi #结束
代码2
#!/bin/bash
echo -n "keyin a number(1-10): "
read a #读取a
if #如果
[ $a -lt 1 -o $a -gt 10 ] #a小于1或者大于10
then
echo "Erroe Number." #输出Erroe Number
exit 2
elif
[ ! $a -lt 5 ] #如果a不小于5
then #则
echo "It's no less 5." #输出It's no less 5
else #否则
echo "It's less 5." #输出It's less 5
fi #结束
echo "accept key in value . " #输出accept key in value
代码3
#/bin/bash #告诉系统这是脚本
for((i=1;i<=10;i++)) #外循环10次
do #执行
for ((j=1;j<=i;j++)) #内循环执行j次,j依次加一
do #执行
echo –n “*” #输出*
done #内循环结束
echo ‘’ #输出
done #结束
echo”end” #输出end
第四次上机:
?1,使用vi建立一个脚本,实现用户的批量创建。要求:用户名为stu_序号,序号为1~100,并为每个用户设置密码为123456.
#!/bin/bash #脚本中的内容
echo create account v1 #输出创建account
prefix=stu_ #将prefix赋值为stu_
for((i=1;i<100;i++)) #循环100次
do #执行
account_name=${prefix}${i} #将账号设名为stu_i
echo add user $account_name #创建设定的账户
#user$account_name -p 123456 #为账号加密码为123456
done #结束
在加权限,运行。
chmod +x jb.sh #加权限
bash jb.sh #运行脚本
2,运行脚本程序
先创建C语言程序
vim 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){ #主函数,传入一个整数变量argc一个指针变量argy
int i,fd,fd2,nbyte3; #定义整形变量
char buf[10]; #定义字符数组变量
if(argc<3){ #如果argc小于3
fprintf(stderr,"usage:%s origin destination\n",argv[0]); #向文件中写入argv[0]的数据
return 1;
}
if((fd=open(argv[1],O_RDONLY,0644))<0){ #如果打开argv[1]值小于0等于没有取到数据
fprintf(stderr,"cannot open %s for reading\n",argv[1]); #向文件中写入无法读取argv[1]中的数值
exit(EXIT_FAILURE); #退出文件流操作
}
if((fd2=open(argv[2],O_WRONLY))<0){ #如果打开argv[2]值小于0等于没有取到数据
fprintf(stderr,"cannot open %s for writing\n",argv[2]);#向文件中写入无法读取argv[2]中的数值
exit(EXIT_FAILURE); #退出文件流操作
}
while((nbyte3=read(fd2,buf,10))>0){ #如果(以buf形式读取fd2,10字节大小赋值给nbyte3)>0循环执行
if(write(fd2,buf,nbyte3)<0){ #如果(以buf形式读取nbyte3,10字节大小赋值给fd2)>0循环执行
fprintf(stderr,"%s writing error!\n",argv[2]); #向文件写入argv[2]中写入错误
exit(EXIT_FAILURE); #退出
}
for(i=0;i<10;i++) #循环给字符串加"\0"
buf[i]='\0';
}
close(fd); #关闭文件fd
close(fd2); #关闭文件fd2
system("echo "); #输出echo
system("echo show_this_list--'pwd'--content"); #输出echo show_this_list--'pwd(工作路径)'--content
system("ls "); #输出ls(现有文件)
exit(EXIT_SUCCESS); #退出程序
}
在创建脚本
vim sb
脚本中输入
#!/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
再用脚本执行C语言程序
bash sb jb.sh
基础知识往这走Liunx操作指令大全
|