实验1 linux基本操作_hanguryua的博客-爱代码爱编程
LINUX常用命令练习
在命令窗口,用正确的命令,实现如下功能:
- 显示LINUX系统当前的日期和时间。
data
2.以 yyyy/mm/dd(2022/09/01)的格式显示系统当前的日期。
date +%Y/%m/%d
3.以 yyyy-mm-dd(2022-09-01)的格式显示系统当前的日期。
date +%F
4.查看在线用户信息。
Who
5.显示当前月份的日历。
cal
6.显示2022年整年的日历。
cal 2022
7.显示2022年9月的日历。
cal 9 2022
8.查看LINUX系统的Shell解释器版本。
bash -version
9.查看当前操作系统的信息,分别用-r,-m,-i,-v等不同的选项。
uname -r
uname -m
uname -i
10.查看当前工作目录。
pwd
11.将当月的日历写入到一个文件中,文件名为caltext。
(说明:文件存放目录最好设置为用户的家目录)
cal>caltext
cat caltext
12.将2022年1月日历附加到文件caltext中。
cal 1 2022 >>caltext
cat caltext
13.用命令统计文件caltext的行数、字数、字节数。
cat caltext | wc
14.使用help命令查看ls命令的帮助信息。
ls --help
15.使用mam命令查看date命令的帮助信息。
man date
16.ls命令有哪些常用选项,至少使用其中的6种,了解不同选项的作用。
Ls -a 查看目录下所有文件,包括隐藏文件(开头为.的文件)也一起罗列出来
ls -A 显示全部的文件,连同隐藏文件,但不包括.与..这两个目录
ls -d 仅列出目录本身,而不是列出目录内的文件数据
ls -f ls默认会以文件名排序,使用-f选项直接列出结果,而不进行排序
ls -F 在文件或目录名后加上文件类型的指示符号,例如*代表可运行文件,/代表目录,=代表sock
ls -h 以人们易读的方式显示文件或目录的大小,如1KB,234MB,2GB等
17.uname命令有哪些常用选项,至少使用其中的4种,了解不同选项的作用。
uname -r 显示系统信息的发行版本号
uname -m 显示所用机器类型
uname -i 显示所需硬件平台
uname -v 显示操作系统版本
18.ps命令有哪些常用选项,至少使用其中的4种,了解不同选项的作用。
ps a 显示现行终端机下的所有程序,包括其他用户程序
ps -A 显示所有进程
ps c 列出程序时,显示每个程序的真正的指令名称,而不包含路径,参数或常驻服务的标示
ps e 列出程序时,显示每个程序所使用的环境变量
19.top命令有哪些常用选项,至少使用其中的4种,了解不同选项的作用。
top -d 秒数 :指定top命令每隔几秒进行刷新。默认4秒
top -b 使用批处理模式输出。一般和“-n”选项合用,用于把top命令重定向到文件中
top -n 次数 :指定top命令执行的次数。一般和“-”选项合用
top -s 使top命令在安全模式中运行,避免在交互模式中出现错误
PART 4 LINUX桌面环境GNOME操作
- 进入桌面环境GNOME。
- 查看软件包相关信息。
点击 System Tools-->Software,在Package collection下分别查看Applications、Desktops、Servers、System、Development等几大类软件包中的信息。
- 在当前桌面中设置桌面背景。
- 查看LINUX系统文件目录结构,在other Locations菜单中选择Computer,查看目录结构,了解各个目录的相关内容。
PART 5 LINUX下C编程
- 查看LINUX中是否安装了gcc编译器,如未安装,则应先完成安装。
- 建立一个简单的C源文件,文件名为simpleex.c,实现的功能为,依次输出下列信息:
Hello LINUX!
****** (此处表示自己的学号
3.分别用如下命令进行编译,运行,观察两种命令的不同之处。
(1)gcc simpleex.c
(2)gcc simpleex.c –o simpleex
第一个生成的运行文件名字为a.out;
第二个生成的运行文件名字为simpleex
4. 建立一个C源程序,文件名为myls,程序内容为:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
int main()
{
DIR* dir;
struct dirent *ptr;
if((dir=opendir("."))==NULL)
{
perror("open");
exit(1);
}
while((ptr=readdir(dir))!=NULL)
{
printf("%s\t",ptr->d_name);
}
closedir(dir);
printf("\n");
return 0;
}
阅读程序,分析程序功能。在以上程序基础上进行功能扩充,运行程序时增加一个参数,根据参数不同显示不同的输出内容。
终端窗口输入 ./myls d 则只显示当前目录下的目录名;
终端窗口输入 ./myls f 则只显示当前目录下的文件名;
如终端窗口输入其他参数,则给出报错提示,提示正确的参数为d或f。
修改后代码:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include<unistd.h>
int main(int argc,char*argv[ ])
{
DIR* dir;
struct dirent *ptr;
if((dir=opendir("."))==NULL)
{
perror("open");
exit(1);
}
if(argc==1){
while((ptr=readdir(dir))!=NULL)
{
printf("%s\t",ptr->d_name);
}
}
else{
if(strcmp("d",argv[1])==0)
{
while((ptr=readdir(dir))!=NULL){
if(ptr->d_type==8)//只输出文件名
printf("%s\t",ptr->d_name);
}
}
else if(strcmp("f",argv[1])==0){
while((ptr=readdir(dir))!=NULL){
if(ptr->d_type==4)//只输出目录名
printf("%s\t",ptr->d_name);
}
}
else
printf("请输入正确的参数d/f");
}
closedir(dir);
printf("\n");
return 0;
}
PART 6 LINUX源码分析初步
CentOs下如何获取某个命令的源代码?在ls、sleep、cp命令中选择一个,尝试找到对应的.c源码,阅读源码。(从主函数开始,分析程序结构)
例如找ls源代码
1.Rpm -qif /usr/bin/ls
2.Yumdownloader --source coreutils
3.从coreutils-8.22-24.el7_9.2.src压缩包中提出coreutils-8.22.tar
4.xz -d coreutils-8.22.tar.xz
5.tar xvf coreutils-8.22.tar
最后在coreutils-8.22文件夹下可以找到所需要的源代码