Linux 基础上机篇
Posted qq_48496633
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 基础上机篇相关的知识,希望对你有一定的参考价值。
目录
第一次上机:
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操作指令大全
以上是关于Linux 基础上机篇的主要内容,如果未能解决你的问题,请参考以下文章