实验一二三命令

简介: ///实验1 Linux操作基础和文本编辑useradd 用户名passwd 用户名groupadd 用户组名man 命令help命令vi 文件名i命令插入文本删除一个字符,用x命令删除一行,用dd命令删除剩下的行,用d命令复原文字命令用u命令ndd:能够剪切从当前行开始的n行文本命令p:能将剪切的内容粘贴到文档内任何地方向前查找:使用命令/+要查找的文本,向后查找:使用命令?+要查找的文本:.=并按回车键确定光标所在当前行行号:行号并按回车键,光标移动到输入的行号。

///实验1 Linux操作基础和文本编辑
useradd 用户名
passwd 用户名
groupadd 用户组名
man 命令
help命令
vi 文件名
i命令插入文本
删除一个字符,用x命令
删除一行,用dd命令
删除剩下的行,用d命令
复原文字命令用u
命令ndd:能够剪切从当前行开始的n行文本
命令p:能将剪切的内容粘贴到文档内任何地方
向前查找:使用命令/+要查找的文本,向后查找:使用命令?+要查找的文本
:.=并按回车键确定光标所在当前行行号
:行号并按回车键,光标移动到输入的行号。:$:光标移动到最后一行
ESC
:wq把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到系统提示符下
:ZZ仅当作过修改时才将缓冲区内容写到文件上
:x与 :ZZ 相同
:q!强行退出vi
///实验2Linux文件系统
1.ls命令显示当前工作目录的内容
命令格式:ls [选项]目录名 (显示目录中所有子目录及文件名)
选项:-l:以列表方式显示。

2.命令mkdir创建目录;命令rmdir删除目录;
语法:
mkdir [选项]目录名
rmdir [选项]目录名(注意目录下必须为空)
选项-p:可以创建和删除一系列具有父子关系的目录

3.pwd命令确定你当前的工作目录
命令cd  ..    移到上一目录
命令cd  当前目录下的文件名   移到当前目录下的指定文件内
date > file1     将当前日期和时间存放到新建文件file1中
命令 > 输出文件(文件输出重定向)
#ls >file1 (将ls显示的结果输出到文件file1中,如果file1存在,则覆盖)

4.cat命令查看file1文件的内容
man date >> file1    将date命令的用法附加到文件file1的后面
命令 >> 输出文件(给文件追加数据)
#ls –l  >>file1 (将ls -l显示的结果追加到文件file1末尾)

ls -l file1命令列出文件file1的较详细的信息

5.cp file1 fa  生成文件file1的副本fa
cp[选项] 文件1 文件2(复制文件1,并将副本命名为文件2。如果文件2是个目录,就将文件1的副本放在目录中。)
选项:
-i : 如果目标文件存在,在覆盖前提示
-r : 复制目录
注意:复制前必须具有文件1的读权限和文件2的写权限

6.rm fa命令将文件fa删除
rm [选项] 文件列表
选项:
-i : 删除前提示
-f : 强制删除,不考虑权限
-r : 删除目录中所有内容包括所有非空子目录

7.mv file1 file_a
文件的移动和重命名,mv命令
格式:mv [选项] 文件1 文件2
#mv  temp  temp.moved(将temp重新命名为temp.moved)
#mv  dir1/*  dir2 (将目录dir1中所有文件和目录(不包括隐藏文件)移到目录dir2中)

8.查看文件命令cat
格式:cat [选项]文件名
选项 –n:为显示行添加行号
命令more:如果要查看的文件超过一页,可以分屏显示。
空格键:显示下一屏
回车键:显示下一行
命令head:显示文件的头10行内容
命令tail:显示文件的末尾10行内容
cat file*命令列出当前工作目录中以file开头的所有文件
cat file?命令

9.find 目录列表 -name 文件名 -print
其中,目录列表是指定开始查找的目录,文件名是你要查找的文件或目录。-name和-print是find命令的选项。
#find /usr/include –name socket.h –print
(在/usr/include及子目录中查找文件socket.h,并打印该文件的绝对路径)

10.whereis [选项]命令名
找到显示该命令的绝对路径名及手册页的绝对路径名(执行命令时,该命令有效但shell找不到它时用)

11.grep命令在文件中找到用户的有关信息
grep命令常用于文本文件中查找给定的词或短语。包含给定模式字符串的行在标准输出(即显示器)上显示出来。
格式:grep [选项] 字符串 文件名
#grep xiaomei /etc/passwd(在/etc/passwd目录中寻找字符串xiaomei,找到则显示包含该字符串的行信息)
#grep –n xiaomei /etc/passwd (文件中包含xiaomei字符串的行都显示了行号)


12.命令echo $HOME : 确认当前用户的主目录

13.修改文件权限
<1>符号模式格式如下:
chmod  key 文件 [文件列表]
其中,key由以下成分组成:
[who] [+|-|=] [mode]
——who这一部分可以由下面的一个和多个字符组成:u,g,o或a,它们分别表示文件主,组用户,其他用户或所有三种用户。默认值是a。
——第二部分必须是以下三个字符中的一个:+,-,或者=,分别表示增加,删除或者设定。
——mode成分可以由以下字符任意组合:r,w或x,分别表示读,写或者执行/查询的权限
以上三个部分必须依次输入,而且它们之间没有空格。在一个命令行中可以指定多个key,彼此间用逗号隔开,中间没有空格。
如:设文件f原来的权限是rw-rw-r--,现在想让所有用户都具有执行权限,则可使用以下命令:
chmod a+x f
该命令执行后,文件f的权限变成rwxrwxr-x
<2>绝对模式格式如下:
chmod 八进制模式 文件 [文件列表]
例子:权限 rw- rw- r-- 用二进制表示应为:110 110 100,
八进制表示则为:664
#chmod 664 file1(将文件1赋予rw- rw- r--权限)

14.改变文件或目录所属的组 chgrp命令
格式:chgrp [选项] 组名 文件名

15.改变文件的属主 chown命令
格式:chown [选项] 用户名 文件名
例:#chown xiaomei test(将文件test的所属用户由root改为xiaomei)
///实验3 Linux的进程控制
1.who命令查看当前在线用户信息
2.w命令查看目前登录的用户及正在执行的命令
3.ps命令用法:
格式:ps 选项
常用选项说明:
-e: 显示所有进程
-a:显示终端上所有进程,包括前一会话中运行的后台进程
-l: 以长列表的方式输出,显示如下内容:
F:与进程相关的标志,指示进程是否为一个用户进程或内核进程。
S:进程状态。R(就绪态),S(睡眠状态),D(不间断睡眠状态,如执行I/O时),T(终止状态),Z(僵化进程)。
UID:用户号
PID:进程号
PPID:父进程号
PRI:优先权
SZ:大小
TTY:终端,该字段显示附加进程的终端名
TIME:进程运行时间
CMD:命令名
WCHAN:等待通道:对于正在运行或准备运行的进程,值为空;对于等待进程,该字段列出进程等待的内核事件名。
NI:进程的nice值,计算进程优先号的参数
4.kill命令终止进程
Kill  [-信号编号] 进程pid号
信号编号:1(终止)2(中断)9(必杀)
5.新建一终端窗口,运行vi编辑器 ctrl+Z终止该前台进程
后台运行vi编辑器。切换到前台(使用fg命令)。
产生后台命令格式:命令 &
后台运行vi编辑器后撤销该后台vi命令。使用ps查看是否已经终止。(注意kill命令不带信号编号使用后的进程状态。)
前台运行vi编辑器。切换到后台。(先终止该前台命令,再使用bg命令切换到后台。
///实验4  Linux程序开发基础
1.vi first.c  创建C语言文件
2.cat first.c  查看完整文件
3.more first.c    每次查看一页文件
4.命令格式:gcc 【选项】 文件列表
该命令用于调用C编译系统。当命令执行后,它依次进行预处理,编译,汇编,链接,最后产生可执行代码。默认情况下,可执行代码放在a.out文件中。
例:
#gcc  first.c  //对文件first.c进行编译,并产生默认的可执行文件a.out。
#gcc  –o  success first.c  //gcc命令带上选项–o表示对文件first.c进行编译,并将可执行代码存放在一个自己指定的文件中(此处为success)。
5.<1>使用gdb调试C程序之前,用gcc对程序进行编译的时候带上-g选项。
例: #gcc –g first.c –o success
<2>运行gdb:
gdb 文件名(编译后的可执行文件)
例:%gdb success
<3>退出gdb:使用命令quit退出gdb返回shell
<4>Gdb帮助命令:
help:获得gdb命令的相关信息。help命令显示了所有gdb命令的类名。
help 命令名:显示该命令的简要说明。
如:(gdb)help run:显示命令run的简要说明
<5>执行程序:使用run命令
<6>设置断点:
(gdb)break 17(行数)
(gdb)run :程序将在17行处停住。
<7>程序的单步调试:
(gdb)step:逐行执行程序
(gdb)continue:继续将后面程序执行完毕。
<8>显示执行中程序的变量或表达式的值:
 (gdb)print 变量名
///实验5  进程管理
#include<stdio.h>
#include<signal.h>
#include<unistd.h>

Void waiting(),stop();
Int wait_mark;

Main()
{
  int p1,p2;
  while((p1= fork()) = = -1);
  if (p1>0)
  {
while((p2= fork()) = = -1);
if (p2>0)
 {
   Wait_mark=1;
   Signal(SIGINT, stop); //如果键盘不认del键,思考此处如何解决?能否跳
   Waiting();         // 过,使用别的方法?比如任意输入字符getchar():w继续
   Kill(p1,16);
   Kill(p2,17);
   Wait(0);
   Wait(0);
   Printf(“/n parent process is killed!/n”);
   Exit(0);
 }
Else
{
  Wait_mark=1;
   Signal(17, stop);
   Waiting();
   Printf(“/n child process2 is killed by parent!/n”);
   Exit(0);
}
 }
Else
{
Wait_mark=1;
   Signal(16, stop);
   Waiting();
   Printf(“/n child process1 is killed by parent!/n”);
   Exit(0);
}
}
Void waiting()
{
  While(wait_mark!=0);
}

Void stop()
{
 Wait_mark=0;
}

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
1月前
|
数据处理 语音技术
实验介绍
【10月更文挑战第9天】实验介绍。
29 2
|
3月前
|
人工智能 IDE 开发工具
实验步骤
【8月更文挑战第22天】实验步骤。
89 1
|
6月前
|
异构计算
组原实验(一)
组原实验(一)
|
Unix Linux Shell
linux 实验uts隔离的实验步骤
要进行Linux UTS(Unix Timesharing System)隔离的实验,可以按照以下步骤进行: 1. 打开终端并以root权限登录到Linux系统。 2. 使用`unshare`命令创建一个新的UTS命名空间。UTS命名空间用于隔离主机名和域名。以下是创建UTS命名空间的示例命令: ``` sudo unshare --uts /bin/bash ``` 3. 在新的UTS命名空间中,可以修改主机名。使用`hostname`命令来修改主机名。以下是修改主机名的示例命令: ``` hostname newhostname ``` 请将"newhostname"替换为你想要设置
229 0
|
存储 C++
C++程序设计实验3
C++程序设计实验3
111 0
|
机器学习/深度学习 Serverless C++
C++程序设计实验2
C++程序设计实验2
251 0
|
弹性计算 网络协议 Linux
实验1 常用网络命令-1
实验1 常用网络命令-1
229 0
|
缓存 Linux
我做了个实验!
这次我们就以 malloc 动态内存分配为切入点,我在文中也做了小实验: • malloc 是如何分配内存的? • malloc 分配的是物理内存吗? • malloc(1) 会分配多大的内存? • free 释放内存,会归还给操作系统吗? • free() 函数只传入一个内存地址,为什么能知道要释放多大的内存?
我做了个实验!
实验3遇到的问题
ElemType是抽象数据类型的定义啊你想定义什么就定义什么了ElemType *是定义指向这种类型的指针p=(ElemType *)malloc(8*sizeof(ElemType))开辟8个ElemType大小的内存空间,把地址分配给指向ElemType的指针p   通俗的说,ElemType就...
1002 0