实验五 shell命令 与 包管理命令
期末 操作系统实验课程设计
操作系统实验课程设计(二)(参照实验五)学院:计算机科学与工程专业:信息管理工作与信息系统学号:2008142118 姓名:丁建东一、实验题目:设计一个Shell解释器二、实验目的:本设计的主要目的在于学会如何在Unix系统下创建进程和管理进程。
三、实验内容:实现一个简单的shell(命令行解释器),类似于bash, csh等。
要求实现的shell支持以下内部命令:1.cd <目录>更改当前的工作目录到另一个<目录>。
如果<目录>未指定,输出当前工作目录。
如果<目录>不存在,要求有适当的错误信息提示。
改命令应能够改变PWD的环境变量。
2.echo <内容>显示echo后的内容且换行。
3.help简短概要地输出你的shell的使用方法和基本功能。
4.jobs输出shell当前的一系列子进程,要求提供子进程的命名和PID号。
5.quit, exit, bye退出shell。
所有的内部命令应当优于在$PATH中同名的程序。
任何非内部命令必须请求shell创建一个新进程,且该子进程执行指定的程序。
这个新进程必须继承shell的环境变量和指定的命令行参数。
要求实现的shell支持以下内部命令:Batch Processing 如果shell启动带有一个文件名作为参数,打开该文件并执行文件里所有命令。
待所有进程全部结束退出shell。
四、实验思路:1.所用到的系统函数(1)打开目录void cd()API调用:int chdir(dir);getcwd(dir,dir_max);实现:改变当前目录,并判断目录是否存在。
(2)回应void echo()实现:用户输入字符串,以回车结束输入。
char echo_string[echo_len][echo_max];//用户输入命令,以空格符隔开,存为字符串数组按顺序输出用户输入的字符串。
(3)输出当前子进程Void jobs()API调用:shmget(),shmat()实现:开辟一个共享内存区,一旦创建一个子进程,就把该进程的进程ID和名字记字共享区里,在子进程结束的时候消除该记录。
实验报告五用户与组群管理
实验五用户与组群管理实验环境:Linux操作系统实验目的:(1)熟练掌握手工启动前后台作业的方法。
(2)熟练掌握进程与作业管理的相关 Shell 命令。
(3)掌握 at 调度和 cron 调度的设置方法。
(4)了解进行系统性能监视的基本方法。
实验内容及步骤:1.桌面环境下管理用户与组群操作要求1:新建两个用户帐号,其用户名为 xuser1 和 xuser2,口令为“e12ut59er”和“wfu1t28er”。
操作步骤及结果截图:(1)以超级用户身份登录X Window 图形化用户界面,依次单击「系统」菜单=>「管理」=>「用户和组群」,启动「用户管理者」窗口。
(2)单击工具栏上的「添加用户」按钮,出现「创建新用户」窗口。
在「用户名」文本框中输入用户名“xuser1”,在「口令」文本框中输入口令“e12ut59er”,在「确认口令」文本框中再次输入口令“e12ut59er”,如图5-2 所示,然后单击「确定」按钮,返回「用户管理者」窗口。
(3)用同样的方法新建用户xuser2。
(4)依次单击顶部面板的「应用程序」=>「附件」=>「文本编辑器」,启动 gedit 文本编辑器,打开/etc/passwd 和/etc/shadow 文件将发现文件的末尾出现表示 xuser1 和xuser2用户帐号的信息。
打开/etc/group 和/etc/gshadow 文件将发现文件末尾出现表示xuser1和 xuser2 私人组群的信息。
(5)按下CTRL+ALT+F2 组合键切换到第2 个虚拟终端,输入用户名xuser2 和相应的口令可登录Linux 系统,说明新建用户操作已成功。
(6)输入“pwd”命令,屏幕显示用户登录后进入用户主目录“/home/xuser2”。
(7)输入“exit”命令,xuser2 用户退出登录。
(8)按下ALT+F7 组合键返回GNOME 桌面环境。
操作要求2:锁定xuser2 用户帐号操作步骤及结果截图:(1)在「用户管理者」窗口选中xuser2 用户帐号,单击工具栏上的「属性」按钮,打开「用户属性」窗口。
LinuxShell常见命令总结大全
LinuxShell常见命令总结大全好程序员云计算培训分享Linux Shell常见命令总结大全,Linux shell命令应该算是非常入门的东西,但是实际上在使用的时候,会遇到各种各样的问题,前几天我在我们的项目上需要做一个功能,根据进程名字杀死这个进程,下面是过程。
(1) 我们正常需要的操作是$ps |grep xxx$kill -9 xx(2) kill命令是常用的,但是用killall命令会更快$killall -9 xxx(3) 令我困扰的是我用的那个没有killall然后我做了下面的操作$adb shell ps |grep speech |awk '{print $2}' > 1.txt$cat 1.txt |xargs -n1 adb shell kill -9我用这个的原因是用一条指令重定向总是各种问题,正常情况下用这条就可以了$adb shell ps |grep speech |awk '{print $2}'|xargs -n1 kill -91. 关机/重启关机(必须用root用户)shutdown -h now ## 立刻关机shutdown -h +10 ## 10分钟以后关机shutdown -h 12:00:00 ##12点整的时候关机halt # 等于立刻关机重启shutdown -r now2. echoroot@ubuntu:~# a="hello,world"root@ubuntu:~# echo aaroot@ubuntu:~# echo &a[1] 3091a: command not found[1]+ Done echoroot@ubuntu:~# echo $ahello,worldroot@ubuntu:~#3. vim文本编辑器最基本用法vi somefile.41 首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容2 按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容3 编辑完成之后,按Esc键退出编辑模式,回到一般模式;4 再按:,进入“底行命令模式”,输入wq命令,回车即可常用快捷键一些有用的快捷键(在一般模式下使用):a 在光标后一位开始插入A 在该行的最后插入I 在该行的最前面插入gg 直接跳到文件的首行G 直接跳到文件的末行dd 删除一行3dd 删除3行yy 复制一行3yy 复制3行p 粘贴u undov 进入字符选择模式,选择完成后,按y复制,按p粘贴ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴查找并替换1 显示行号:set nu2 隐藏行号:set nonu3 查找关键字:/you ## 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)4 替换操作:s/sad/bbb 查找光标所在行的第一个sad,替换为bbb:%s/sad/bbb 查找文件中所有sad,替换为bbb4. 拷贝/删除/移动/更换文件名字cp somefile.1 /home/hadoop/rm /home/hadoop/somefile.1rm -f /home/hadoop/somefile.1mv /home/hadoop/somefile.1 ../mv a.txt b.txt //把a.txt更名为b.txt5. 打包压缩1、gzip压缩gzip a.txt2、解压gunzip a.txt.gzgzip -d a.txt.gz3、bzip2压缩bzip2 a4、解压bunzip2 a.bz2bzip2 -d a.bz25、打包:将指定文件或文件夹tar -cvf bak.tar ./aaa将/etc/password追加文件到bak.tar中tar -rvf bak.tar /etc/password6、解压tar -xvf bak.tar7、打包并压缩tar -zcvf a.tar.gz aaa/8、解包并解压缩(重要的事情说三遍) tar -zxvf a.tar.gz解压到/usr/下tar -zxvf a.tar.gz -C /usr9、查看压缩包内容tar -ztvf a.tar.gzzip/unzip10、打包并压缩成bz2tar -jcvf a.tar.bz211、解压bz2tar -jxvf a.tar.bz26. 常用查找命令的使用1、查找可执行的命令所在的路径:which ls2、查找可执行的命令和帮助的位置:whereis ls3、从某个文件夹开始查找文件find / -name "hadooop*"find / -name "hadooop*" -ls4、查找并删除find / -name "hadooop*" -ok rm {} \; find / -name "hadooop*" -exec rm {} \;5、查找用户为hadoop的文件find /usr -user hadoop -ls6、查找用户为hadoop的文件夹find /home -user hadoop -type d -ls7、查找权限为777的文件find / -perm -777 -type d -ls8、在指定目录不分大小写查找某个文件find ./sound/ -iname ft56Q.c9、显示命令历史history7. grep命令最常用的-全字匹配grep -wrn weiqifa ./sound/查找某个字符串但是不在指定文件夹查找grep -E "http" ./ -R --exclude-dir=./sound/grep -E "http" . -R --exclude-dir={.git,res,bin}排除扩展名为 java 和 js 的文件grep -E "http" . -R --exclude=*.{java,js}1 基本使用查询包含hadoop的行grep hadoop /etc/passwordgrep aaa ./*.txt2 cut截取以:分割保留第七段root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# grep dsl /etc/passwd | cut -d: -f7/bin/bashroot@ubuntu:~/kernel_rk3399_yan4_dev/kernel# grep dsl /etc/passwddsl:x:1000:1000:dsl,,,:/home/dsl:/bin/bashroot@ubuntu:~/kernel_rk3399_yan4_dev/kernel#3 查询不包含hadoop的行grep -v hadoop /etc/passwd4 正则表达包含hadoopgrep 'hadoop' /etc/passwd5 正则表达(点代表任意一个字符)grep 'h.*p' /etc/passwd6 正则表达以hadoop开头grep '^hadoop' /etc/passwd7 正则表达以hadoop结尾grep 'hadoop$' /etc/passwd规则:. : 任意一个字符a* : 任意多个a(零个或多个a)a? : 零个或一个aa+ : 一个或多个a.* : 任意多个任意字符\. : 转义.o\{2\} : o重复两次查找不是以#开头的行grep -v '^#' a.txt | grep -v '^$'以h或r开头的grep '^[hr]' /etc/passwd不是以h和r开头的grep '^[^hr]' /etc/passwd不是以h到r开头的grep '^[^h-r]' /etc/passwd8. linux文件权限的描述格式解读drwxr-xr-x (也可以用二进制表示 111 101 101 --> 755)d:标识节点类型(d:文件夹 -:文件 l:链接)r:可读 w:可写 x:可执行第一组rwx: ## 表示这个文件的拥有者对它的权限:可读可写可执行第二组r-x: ## 表示这个文件的所属组用户对它的权限:可读,不可写,可执行第三组r-x: ## 表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行9. 修改文件权限chmod g-rw haha.dat ## 表示将haha.dat对所属组的rw 权限取消chmod o-rw haha.dat ## 表示将haha.dat对其他人的rw 权限取消chmod u+x haha.dat ## 表示将haha.dat对所属用户的权限增加xchmod a-x haha.dat ## 表示将haha.dat对所用户取消x权限也可以用数字的方式来修改权限chmod 664 haha.dat就会修改成 rw-rw-r--如果要将一个文件夹的所有内容权限统一修改,则可以-R参数chmod -R 770 aaa/10. 修改文件所有权<只有root权限能执行>chown angela aaa ## 改变所属用户chown :angela aaa ## 改变所属组chown angela:angela aaa/ ## 同时修改所属用户和所属组11. 统计文件或文件夹的大小root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# du -sh sound/33M sound/root@ubuntu:~/kernel_rk3399_yan4_dev/kernel#df -h 查看磁盘的空间root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# df -h Filesystem Size Used Avail Use% Mounted on udev 1.9G 0 1.9G 0% /devtmpfs 394M 6.4M 388M 2% /run/dev/sda1 294G 93G 186G 34% /tmpfs 2.0G 204K 2.0G 1% /dev/shmtmpfs 5.0M 4.0K 5.0M 1% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup tmpfs 394M 80K 394M 1% /run/user/1000 root@ubuntu:~/kernel_rk3399_yan4_dev/kernel#。
最常用的Shell命令
1 / 12Shell命令行操作Linux shell 简介Linux shell指的是一种程序,有了它,用户就能通过键盘输入指令来操作计算机了。
Shell会执行用户输入的命令,并且在显示器上显示执行结果。
这种交互的全过程都是基于文本的,与其他各章介绍的图形化操作不同。
这种面向命令行的用户界面被称为CLI(Command Line interface)。
在图形化用户界面(GUI)出现之前,人们一直是通过命令行界面来操作计算机的。
现在,基于图形界面的工具越来越多,许多工作都不必使用Shell 就可以完成了。
然而,专业的Linux用户认为Shell是一个非常有用的工具,学习Linux时一定要学习Shell,至少要掌握一些基础知识和基本的命令启动shell在启动Linux桌面系统后,Shell已经在后台运行起来了,但并没有显示出来。
如果想让它显示出来,按如下的组合键就可以:<Ctrl> + <Alt> + <F2> 组合键中的F2可以替换为F3、F 4、F 5、F6。
如果要回到图形界面,则按如下组合键:<Ctrl> + <Alt> + <F7>另外,在图形桌面环境下运行“系统终端”也可以执行Shell命令,与用组合键切换出来的命令行界面2 / 12是等效的。
“系统终端”启动后是一个命令行操作窗口,可以随时放大缩小,随时关闭,比较方便,推荐使用。
启动“系统终端”的方法是:【开始】→【应用程序】→【附件】→【系统终端】该软件允许建立多个Shell客户端,它们相互独立,可以通过标签在彼此之间进行切换。
Shell命令基本规则一般格式Shell命令的一般格式如下:命令名【选项】【参数1】【参数2】...【选项】是对命令的特别定义,以减号(-)开始,多个选项可以用一个减号(-)连起来,如ls -l -a与ls -la 相同。
【参数】提供命令运行的信息,或者是命令执行过程中所使用的文件名。
常用的Linuxshell命令详解
常用的Linux shell命令详解最近搞palm和Android都是基于Linux平台的应用,经常要用到一些shell命令,所以就将相关的命令整理了一下,便于记忆和查询,部分内容来源于网络。
1文件与目录操作命令1.1文件内容查询命令grep、fgrep、egrep语法:grep[选项][查找模式][文件名1,文件名2,…]选项:-E每个模式作为一个扩展的正则表达式对待-F每个模式作为一组固定字符串对待,而不作为正则表达式-i比较时不区分大小写-l显示首次匹配匹配串所在的文件名并用换行符将其分开。
当在文件中多次出现匹配串时,不重复显示次文件名;-x只显示整行严格匹配的行1.2文件查找命令find、locate语法:find起始目录寻找条件操作以名称和文件属性查找选项:-name'字串'查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、。
-lname'字串'查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、。
-gid n查找属于ID号为n的用户组的所有文件。
-uid n查找属于ID号为n的用户的所有文件。
-group'字串'查找属于用户组名为所给字串的所有的文件。
-user'字串'查找属于用户名为所给字串的所有的文件。
-path'字串'查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、。
-perm权限查找具有指定权限的文件和目录,权限的表示可以如711、644。
-type x查找类型为x的文件,语法:locate相关字1.3文件的复制、删除和移动命令文件复制命令[选项]源文件或目录目标文件或目录选项:-a通常在拷贝目录时使用-d拷贝时保留连接-f删除已经存在的目标文件而不提示-i和f选项相反-p此时cp除复制源文件内容外,还将其修改的时间和访问权限也复制到新文件中-r若给出的源文件是一目录文件,此时cp将递归复制该目录下的所有的子目录和文件,此时目标文件必须为一个目录名;-l不作拷贝,只是链接文件文件移动命令mv[选项]源文件或目录目标文件或目录-i交互式操作-f禁止交互式操作文件删除命令[选项]文件…-f忽略不存在的文件,从不给出提示-r指示rm将参数中列出的全部目录和子目录均递归地删除-i进行交互式删除1.4文件链接命令ln[选项]目标[链接名]或ln[选项]目标目录选项:-s建立符号链接1.5目录的创建和删除命令mkdir创建一个目录语法:[选项]dirname选项:-m对新建目录设置存取权限-p可以是一个路径名称。
操作系统实验一
操作系统实验一As a person, we must have independent thoughts and personality.本科实验报告操作系统课程名称:学号:姓名:专业:班级:指导教师:课内实验目录及成绩信息技术学院实验(实验一)1 实验名称:基本shell命令及用户管理2 实验目的掌握安装Linux操作系统的方法。
掌握Linux操作系统的基本配置。
了解GNOME桌面环境。
掌握基本shell命令的使用。
3 实验准备下载VMware Workstation虚拟机软件(版本不限)。
准备Linux操作系统的安装源(内核版本和发行版本均不限)。
注:实验准备、实验内容和作为回家作业布置,同学们利用课余时间可在私人计算机上完成。
4 实验要求、步骤及结果安装虚拟机软件。
【操作要求】安装VMware Workstation虚拟机软件,并填写以下4.1.1和的内容。
4.1.1【VMware Workstation虚拟机版本号】4.1.2【主要配置参数】安装Linux操作系统。
【操作要求】安装Linux操作系统,版本不限。
Linux发行版本:Linux内核版本:【主要操作步骤:包括分区情况】1、创建一台虚拟机安装操作系统时客户机操作系统选择Linux2、修改虚拟机的安装路径。
3、建一个新的虚拟磁盘,磁盘的空间20GB,并且将单个文件存储虚拟磁盘。
4、设置分区完毕,安装虚拟机了解Linux操作系统的桌面环境之一GNOME。
【操作要求】查看桌面图标,查看主菜单,查看个人用户主目录等个人使用环境。
【操作步骤1】桌面图标【操作步骤2】主菜单【操作步骤3】个人用户主目录【操作步骤4】启动字符终端【操作步骤5】注销[root@localhost~]# exit【操作步骤6】重启系统[root@localhost~]# reboot【操作步骤7】关闭[root@localhost~]# halt【回答问题】简述Windows桌面环境与Linux桌面环境的主要区别。
Shell编程 命令大全
Shell编程讲稿Version 1.0 Shell Programming修订历史目录1.Unix/Linux Shell介绍 (7)目的 (7)1.技术 (7)2.技能 (7)1.1.Shell类型 (7)1.1.1.什么是shell (7)1.1.2.Shell的两大类型 (7)1、Bourne shell (包括sh, ksh, and bash) (8)2、C shell (包括csh and tcsh) (8)3、几个shell的特别说明 (8)1.2.Shell与环境 (9)1.2.1.CSH环境 (9)1.2.1.1系统配置文件: (9)1.2.1.2用户配置文件: (9)1.2.2.BASH环境 (9)1.2.2.1系统配置文件 (9)1.2.2.2用户配置文件 (9)1.2.3.课堂练习 (10)1.2.4.练习作业 (11)1.3.Shell参数 (11)1.3.1.csh参数 (11)1.3.2 bash参数 (11)2.Bash Shell编程基础 (13)2.1.第一个简单的shell脚本 (13)2.1.1.目的 (13)2.1.2.知识点说明 (13)2.1.3.案例 (13)2.1.4.课堂练习 (14)2.2.输出输入与重定向符号 (15)2.2.1.目的 (15)2.2.2.知识点说明 (15)2.2.2.1.输出重定向符号 (15)2.2.2.2.输入重定向符号 (15)2.2.2.3.错误重定向符号 (15)2.2.2.4.关于IO重定向与CSH的说明 (16)2.2.3.案例 (16)2.2.4.课堂练习 (17)2.3.特殊元字符 (17)2.3.1.目的 (17)2.3.2.知识点说明 (17)2.3.3.案例 (17)2.4.变量与常量 (18)2.4.1.目的 (18)2.4.2.知识点说明 (18)2.4.2.1.变量的定义 (18)2.4.2.2.变量的使用 (19)2.4.2.3.read与line指令 (19)2.4.2.4.环境变量 (19)2.4.2.5.特殊变量 (20)2.4.2.6 export变量 (20)2.4.3.案例 (21)2.4.4.课堂练习 (22)2.5.引用 (22)2.5.1.目的 (22)2.5.2.知识点说明 (23)2.5.2.1.单引号 (23)2.5.2.2.双引号 (23)2.5.2.3. ` 命令引用号 (23)2.5.3.案例 (23)2.5.4.课堂练习 (23)2.6.数组 (24)2.6.1.目的 (24)2.6.2.知识点说明 (24)2.6.3.案例 (24)2.6.4.课堂练习 (25)2.7.运算符号 (26)2.7.1.目的 (26)2.7.2.知识点说明 (26)2.7.3.案例 (28)2.7.4.课堂练习 (30)2.8.判定分支 (31)2.8.1.目的 (31)2.8.2.知识点说明 (31)2.8.2.1.使用if判定分支 (31)2.8.2.2.一般测试 (32)2.8.2.3.文件测试 (32)2.8.2.4.BASH选项测试 (32)2.8.2.5.退出状态码与true|false指令 (33)2.8.2.6.case语句 (33)2.8.2.7.嵌套if (34)2.8.3.案例 (34)2.8.4.课堂练习 (37)2.9.循环 (38)2.9.1.目的 (38)2.9.2.1. for循环语法 (38)2.9.2.2.while循环语法 (38)2.9.2.3.until循环语法 (39)2.9.2.4.continue与break使用 (39)2.9.2.5.select语法(选) (39)2.9.2.6.shift语法(选) (40)2.9.3.案例 (40)2.9.4.课堂练习 (43)2.10.函数 (44)2.10.1.目的 (44)2.10.2.知识点说明 (44)2.10.2.1.函数语法 (44)2.10.2.2.函数的参数与返回值 (45)2.10.2.3.函数嵌套与特殊用法 (45)2.10.2.4.函数与重定向 (46)2.10.2.5.变量与函数 (47)2.10.3.案例 (47)2.10.4.课堂练习 (50)2.11.子shell (50)2.11.1.目的 (50)2.11.2.知识点说明 (51)2.11.2.1.子SHELL调用方式 (51)2.11.2.2.子SHELL调用说明 (51)2.11.2.3.受限SHELL脚本 (52)2.11.3.案例 (52)2.11.4.课堂练习 (53)2.11.5.思考与提高 (53)2.12.内建命令 (53)2.12.1.目的 (53)2.12.2.知识点说明 (54)2.12.3.案例 (61)2.12.4.课堂练习 (62)2.12.命令与程序 (62)2.12.1.目的 (62)2.12.2.知识点说明 (62)2.12.2.1.基本命令 (62)2.12.2.2.高级命令 (63)2.12.2.3.时间/日期命令 (63)2.12.2.4.文本处理命令 (63)2.12.2.5.文件与归档命令 (64)2.12.2.6.通讯命令 (65)2.12.2.7.终端控制命令 (65)2.12.2.8.数学计算命令 (66)2.12.2.9.其他命令 (66)2.12.3.案例 (66)2.12.4.课堂练习 (66)2.13.命令与进程替换 (67)2.13.1.目的 (67)2.13.2.知识点说明 (67)2.13.2.1.命令替换 (67)2.13.2.2.进程替换 (67)2.13.3.案例 (68)2.13.4.课堂练习 (68)3.Bash Shell编程高级应用 (69)3.1.grep与正则表达式 (69)3.2.SED流编辑 (72)3.3.gawk调用 (72)3.4.Shell扩展 (73)附录 (74)BASH系统环境变量参考 (74)1.保留的Bourne shell 变量 (74)2. Bash保留变量 (74)PS特殊转义字符 (77)BASH转义字符 (78)内建命令(补充) (78)printf (78)1.Unix/Linux Shell介绍目的1.技术1.1了解SHELL类型与SHELL的发展历史。
Linux shell基础 2015201018汪继超(5)
实验五目录和文件管理实验目的(1)熟练掌握目录和文件管理的相关方法;(2)掌握修改文件权限的方法。
实验内容1、字符界面下的文件管理[操作要求1]创建两个新目录dir1和dir2,然后将dir2移动到dir1中,最后删除dir2目录[操作步骤](1)普通用户jkx登录到字符界面,当前目录为用户主目录/home/jkx;(2)输入命令“ls -al”,查看当前目录中所有文件的详细信息;该命令将列出每个文件的类型(-表示普通文件;1表示符号链接文件;b、c分别代表块设备文件及字符设备文件)、权限、所有者等信息;(给出命令执行的界面截图)(2)使用命令“mkdir dir{1,2}”同时创建两个目录;(3)再次输入命令“ls -l”确认创建操作成功;(4)输入命令“mv dir2 dir1”移动目录dir2;(5)通过命令“cd dir1”进入目录dir1,通过ls命令查看该目录包含的信息;(7)输入命令“rm –rf dir2”删除dir2目录,删除目录时当前目录不能为被删除的目录或其子目录;(8)通过命令“cd ~”返回主目录。
[操作要求2]查找文件名为profile的所有文件[操作步骤](1)由于普通用户只对部分目录具有权限,应先通过“su -”命令切换到超级用户的字符界面;(2)使用命令“find / -name profile”进行查找,其中最重要的是/etc/profile;(给出命令执行的界面截图)[操作要求3]查找文件/etc/profile中包含“HOSTNAME”的所有行,并将保存为f4文件[操作步骤](1)输入命令“grep –n “HOSTNAME” /etc/profile > f4”实现查找并保存结果;(给出命令执行的界面截图)(2)(2)使用命令“cat f4”查看查找操作的结果;(3)输入命令“ls -l”,特别注意文件f4三类用户的操作权限;(4)使用chmod命令修改f4的文件权限,使得所有用户都具有读写权限:chmod 666 f4或chmod o+w f4(其中o代表其他用户)。
Linux实验五 Linux进程管理
实验五Linux进程管理一、实验目的1.掌握Linux进程管理。
2.学习并掌握进程查看命令、进程终止命令。
3.使用at和cron服务实现Linux进程调度。
二、实验环境安装了Red Hat Linux9.0系统的计算机一台三、实验过程(实验步骤、记录、数据、分析、结果)(一)进程查看、终止、挂起及暂停等操作1、使用ps命令查看和控制进程1)显示本用户进程#ps分析:显示进程:shell和ps2)显示所有用户的进程#ps –au分析:显示共有8个进程3)在后台运行cat命令#cat&分析:PID为27244)查看进程cat#ps aux |grep cat5)杀死进程cat#kill -9 cat6)再次查看进程cat,看看是否被杀死。
分析:结果显示已经杀死cat2、使用top命令查看和控制进程1)用top命令动态显示当前的进程。
分析:显示当前的进程2)只显示某一用户的进程(u)分析:pm进程的PID为123)杀死指定进程号的进程(k)3、挂起和恢复进程1)执行命令cat分析:重新执行cat命令,PID号变成28852)按【ctrl+z】挂起进程3)输入jobs命令,查看作业分析:按【ctrl+z】挂起进程后,用jobs命令查看作业,cat被挂起。
4)输入bg,把cat切换到后台执行5)输入fg,把cat切换到前台执行6)按【ctrl+c】结束进程(二)通过at命令实现计划任务1、5分钟后执行/bin/date#at now+5minutesat>/bin/dateat><EOT>(提示:输入【ctrl+d】job任务号at 年-月-日小时:分钟如何查看结果?2、查找系统中任何以c为后缀名的文档,将结果保存到$HOME/findc文件中,指定时间为2016年12月01日早上8点#at 8am 12/01/16at>find / -name ‘*.c’ >$HOME/findcat><EOT>job任务号at 年-月-日小时:分钟如何查看结果?分析:指定时间必须要在当前时间之后,将12月1日16点改为12月28日16点3、2题的命令写到$HOME/findjob中,使用at命令执行,并将结果保存到$HOME/findfc文件中,指定时间为当前时间后5分钟#vi $HOME/findjob内容如下:find / -name ‘*.c’ >$HOME/findfc存盘退出#at –f $HOME/findjob now+5minutes4、at命令实现在30天后统计/etc/inittab文件的行数,将统计结果发送至$HOME/initline文件中#at now+3daysat>wc –l /etc/inittab>>$HOME/initlineat><EOT>5、列出现有的所有at任务,并记下相关信息分析:5分钟已过去,第一个at计划已经执行,上面3个计划等待执行。
在Linux上使用Shell脚本实现软件包管理
在Linux上使用Shell脚本实现软件包管理在Linux操作系统中,软件包管理是非常重要的一项任务。
通过良好的软件包管理,我们可以方便地安装、更新和卸载软件,保证系统的稳定和安全。
而在Linux系统中,Shell脚本是一种强大的工具,可以帮助我们自动化完成各种任务。
本文将介绍如何使用Shell脚本在Linux上实现软件包管理。
一、软件包管理的基本概念在开始之前,让我们回顾一下软件包管理的基本概念。
在Linux系统中,软件包通常是一种预编译好的二进制文件,包含了软件的安装文件、配置文件和相关的依赖关系。
软件包管理系统可以帮助我们自动下载、安装和升级软件包,同时解决软件包之间的依赖关系。
常见的软件包管理系统包括dpkg和RPM,它们分别用于Debian和Red Hat等不同的Linux发行版。
这些软件包管理系统提供了一组命令行工具,我们可以通过Shell脚本来调用这些命令行工具进行软件包管理。
二、Shell脚本编写基础在开始编写Shell脚本之前,我们需要了解一些基本的Shell脚本编写知识。
1. 脚本文件的命名和扩展名Shell脚本文件通常以.sh为扩展名,比如install.sh、upgrade.sh等。
2. 脚本文件的权限设置在Linux系统中,我们需要将脚本文件设置为可执行的权限,才能运行它们。
可以使用chmod命令来设置脚本文件的权限,比如chmod +x install.sh。
3. 脚本文件的开头在脚本文件的开头通常需要指定解释器,指示系统使用哪种Shell 来执行脚本。
常见的解释器包括bash、sh和ksh等。
例如,#!/bin/bash 表示使用bash解释器执行脚本。
三、实现软件包安装现在,我们可以开始编写Shell脚本来实现软件包的安装功能。
以Debian发行版为例,我们可以使用dpkg命令来安装软件包。
```shell#!/bin/bash# 定义要安装的软件包列表packages=("package1" "package2" "package3")# 循环安装软件包for package in ${packages[@]}dodpkg -i $package.debdone```在这个例子中,我们首先定义了一个要安装的软件包列表,可以根据自己的需要修改列表中的软件包名称。
shell命令的使用方法
Shell命令是Linux和Unix操作系统中的一种重要工具,它允许用户与操作系统进行交互,执行各种操作和任务。
以下是一些常用的Shell命令及其使用方法:文件操作:ls:列出当前目录下的文件和文件夹。
cd:改变当前工作目录。
例如,cd /home/user将切换到/home/user目录。
pwd:显示当前工作目录的路径。
mkdir:创建新目录。
例如,mkdir new_directory将创建一个名为new_directory的新目录。
rm:删除文件或目录。
例如,rm file.txt将删除名为file.txt的文件,rm -r directory 将递归删除目录及其内容。
mv:移动或重命名文件或目录。
例如,mv old_name.txt new_name.txt将重命名old_name.txt为new_name.txt,mv file.txt directory/将移动file.txt到directory 目录下。
文本操作:cat:显示文件内容。
例如,cat file.txt将显示file.txt的内容。
grep:搜索文本。
例如,grep "pattern" file.txt将在file.txt中搜索包含"pattern"的行。
sed:流编辑器,用于对文本进行各种操作。
例如,sed 's/old/new/' file.txt将把file.txt中的所有"old"替换为"new"。
文件权限和所有权:chmod:更改文件权限。
例如,chmod 755 file.sh将设置file.sh的权限为755(即所有者有读、写、执行权限,组有读、执行权限,其他人有读、执行权限)。
chown:更改文件所有者。
例如,chown user:group file.sh将把file.sh的所有者更改为user,组更改为group。
如何在Shell脚本中进行文件和管理
如何在Shell脚本中进行文件和管理Shell脚本是一种编程语言,可以用于在Unix或类Unix系统中进行文件和目录的管理。
通过编写Shell脚本,可以实现对文件的创建、复制、删除等操作,以及对目录的遍历、搜索等功能。
在本文中,我们将介绍如何在Shell脚本中进行文件和目录的常见操作。
一、文件操作在Shell脚本中,可以使用以下命令进行文件的操作:1. 创建文件:使用touch命令可以创建一个新的空文件。
例如,要创建一个名为file.txt的文件,可以使用以下命令:```touch file.txt```2. 复制文件:使用cp命令可以将一个文件复制到另一个位置。
例如,要将file.txt 复制到目录backup中,可以使用以下命令:```cp file.txt backup/```3. 移动文件:使用mv命令可以将文件从一个位置移动到另一个位置,也可以用来重命名文件。
例如,要将file.txt移动到目录documents中,并将其重命名为newfile.txt,可以使用以下命令:```mv file.txt documents/newfile.txt```4. 删除文件:使用rm命令可以删除一个文件。
例如,要删除file.txt文件,可以使用以下命令:```rm file.txt```5. 查看文件内容:使用cat命令可以查看一个文件的内容。
例如,要查看file.txt的内容,可以使用以下命令:```cat file.txt```二、目录操作在Shell脚本中,可以使用以下命令进行目录的操作:1. 创建目录:使用mkdir命令可以创建一个新的目录。
例如,要创建一个名为backup的目录,可以使用以下命令:```mkdir backup```2. 复制目录:使用cp命令时,如果希望复制整个目录及其内容,可以使用参数-r。
例如,要将directory目录复制到目录backup中,可以使用以下命令:```cp -r directory backup/```3. 移动目录:使用mv命令时,如果希望移动整个目录,可以使用参数-t。
shell指令及其常见使用实例
shell指令及其常见使用实例Shell指令是一种在操作系统的命令行界面下使用的命令,它用于执行各种任务,如文件操作、进程管理、网络通信等。
下面是一些常见的Shell指令及其使用实例:1. ls,用于列出当前目录下的文件和文件夹。
示例,ls.2. cd,用于切换当前工作目录。
示例,cd /path/to/directory.3. pwd,用于显示当前工作目录的路径。
示例,pwd.4. mkdir,用于创建新的目录。
示例,mkdir new_directory.5. rm,用于删除文件或目录。
示例,rm file.txt 或 rm -r directory/。
6. cp,用于复制文件或目录。
示例,cp file.txt new_file.txt 或 cp -r directory/ new_directory/。
7. mv,用于移动文件或目录,也可用于文件/目录重命名。
示例,mv file.txt new_directory/ 或 mv file.txt new_name.txt.8. cat,用于查看文件的内容。
示例,cat file.txt.9. grep,用于在文件中搜索指定的模式。
示例,grep "pattern" file.txt.10. echo,用于在终端输出文本。
示例,echo "Hello, World!"11. chmod,用于修改文件或目录的权限。
示例,chmod 755 file.txt.12. ps,用于显示当前运行的进程。
示例,ps aux.13. kill,用于终止指定进程。
示例,kill PID.14. ssh,用于远程登录到其他计算机。
示例,ssh username@hostname.15. ping,用于测试网络连接。
示例,ping .这些只是Shell指令的一小部分,常见的使用实例也只是其中的一些示例。
Shell指令非常丰富和灵活,可以根据具体需求进行组合和扩展,以实现更复杂的操作。
常用shell命令
常用shell命令Shell是一种命令行解释器,用于管理和操作操作系统。
在Linux和Unix系统中,通过Shell命令行执行的命令都会由Shell解释执行。
在本文中,我们将介绍一些常用的Shell命令,并且重点就常用的Shell命令进行详细的讲解,希望能对你在工作中有所帮助。
一、常用的Shell命令1. cd (change directory):切换目录2. pwd (print working directory):显示当前目录3. ls (list):列出当前目录下的所有文件4. cp (copy):复制文件或者目录5. rm (remove):删除文件或者目录6. mv (move):移动文件或者目录7. mkdir (make directory):新建目录8. rmdir (remove directory):删除目录9. echo:打印文本10. cat (concatenate):读取文件内容并输出11. less:简单的文本浏览器12. man (manual):查看命令的说明文档13. touch:用于创建空白文件或更新文件的修改时间14. grep:用于搜索一个文本文件15. sed:用于文本编辑,常常与管道连用16. awk:用于文本处理,常常配合管道使用17. chmod (change mode):修改文件或目录的权限18. chown (change owner):修改文件或目录的拥有者19. ps:查看系统中正在运行的进程20. top:查看系统中正在运行的进程和系统资源使用情况二、常用的Shell命令详细讲解1. cdcd命令用于切换工作目录,其简单的语法如下:cd [目录名称]其中,目录名称可以指定为绝对路径或相对路径,如果省略目录名称,则表示切换到当前用户的主目录。
举一个例子:假设当前目录为/home/user1,执行cd /home/test,则将当前目录切换到/home/test目录下。
linux shell用法
linux shell用法Linux Shell是Linux操作系统中常用的命令行界面,它提供了强大的命令行工具,可以帮助用户进行各种系统管理、文件操作、网络通信等任务。
本篇文章将详细介绍Linux Shell的用法,包括基本概念、常见命令和注意事项。
一、基本概念Shell是Linux操作系统中用于与操作系统交互的接口,它提供了命令行界面,用户可以通过在Shell中输入命令来控制操作系统。
常见的Shell包括Bash (Bourne Again SHell)、Zsh、Ksh等。
二、常见命令1. 文件和目录操作命令(1)ls命令:用于列出目录中的文件和文件夹。
(2)cd命令:用于切换目录。
(3)mkdir命令:用于创建新的文件夹。
(4)rm命令:用于删除文件或文件夹。
(5)cp命令:用于复制文件或文件夹。
(6)mv命令:用于移动或重命名文件或文件夹。
2. 文本处理命令(1)cat命令:用于连接文件或输出文件的内容。
(2)grep命令:用于在文本中搜索匹配指定模式的行。
(3)sed命令:用于对文本进行替换和过滤操作。
(4)awk命令:用于对文本进行逐行处理和输出。
3. 系统管理命令(1)ps命令:用于查看当前系统的进程信息。
(2)top命令:实时显示系统状态,包括CPU、内存使用情况等。
(3)df命令:用于查看磁盘空间使用情况。
(4)free命令:用于查看系统内存使用情况。
(5)netstat命令:用于查看网络连接和端口信息。
4. 网络通信命令(1)ping命令:用于测试网络连接是否正常。
(2)telnet命令:用于进行远程登录和测试网络服务。
(3)ssh命令:用于安全地远程登录到服务器。
三、注意事项1. 正确使用大小写字母和特殊字符。
2. 了解常用命令的参数和选项,以提高工作效率。
3. 学会使用通配符和组合命令来完成复杂的任务。
4. 定期更新Shell版本,以获得更好的功能和性能。
5. 遵循安全最佳实践,如使用强密码、限制对敏感目录和文件的访问等。
Shell输入输出重向与包含包
comቤተ መጻሕፍቲ ባይዱand1 > file1
上面这个命令执行 command1 然后将输出的内容存入 file1。 注意任何 file1 内的已经存在的内容将被新内容替代。如果要将新内容添加在 文件末尾,请使用>>操作符。 实例 执行下面的 who 命令,它将命令的完整的输出重定向在用户文件中(users):
$ who > users
$ command > /dev/null 2>&1
注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出 (STDERR)。 Shell 文件包含 和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公 用的代码作为一个独立的文件。 Shell 文件包含的语法格式如下:
执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备 (终端)重定向到指定的文件。 你可以使用 cat 命令查看文件内容:
$ cat users _mbsetupuser console tianqixin console tianqixin ttys000
Oct 31 17:35 Oct 31 17:35 Dec 1 11:33
默认情况下,command > file 将 stdout 重定向到 file,command < file 将 stdin 重定向到 file。 如果希望 stderr 重定向到 file,可以这样写:
$ command 2 > file
如果希望 stderr 追加到 file 文件末尾,可以这样写:
输出重定向会覆盖文件内容,请看下面的例子:
$ echo "左木:zuomu" > users $ cat users 左木:zuomu $
Shell脚本编写如何处理文件和操作
Shell脚本编写如何处理文件和操作Shell脚本是一种可以自动执行一系列命令的脚本语言,广泛用于文件处理和操作。
本文将介绍如何使用Shell脚本来处理文件和进行常见的操作。
请按照以下格式进行阐述:一、Shell脚本的文件处理基础Shell脚本可以通过一系列命令来处理文件。
以下是几个常见的文件处理命令及其功能:1.1 查看文件内容在Shell脚本中,可以使用cat命令来查看文件的内容。
例如,使用cat filename可以显示文件filename的内容。
1.2 复制文件在Shell脚本中,可以使用cp命令来复制文件。
例如,使用cp file1 file2可以将file1复制到file2。
1.3 移动文件在Shell脚本中,可以使用mv命令来移动文件或重命名文件。
例如,使用mv file1 file2可以将file1移动到file2,或者使用mv file1 newfile可以将file1重命名为newfile。
1.4 删除文件在Shell脚本中,可以使用rm命令来删除文件。
例如,使用rm filename可以删除文件filename。
二、使用Shell脚本进行文件批量处理通过结合循环和条件语句,Shell脚本可以实现对多个文件的批量处理。
以下是几个常见的文件批量处理操作:2.1 文件批量复制可以使用for循环和cp命令来实现文件的批量复制。
例如,使用以下脚本可以将文件夹dir中的所有文件复制到目标文件夹target_dir中:```for file in dir/*;docp "$file" target_dir/done```2.2 文件批量移动可以使用for循环和mv命令来实现文件的批量移动或重命名。
例如,使用以下脚本可以将文件夹dir中的所有文件移动到目标文件夹target_dir中:```for file in dir/*;domv "$file" target_dir/done```2.3 文件批量删除可以使用for循环和rm命令来实现文件的批量删除。
最常用的Shell命令
Shell命令行操作Linux shell 简介Linux shell指的是一种程序,有了它,用户就能通过键盘输入指令来操作计算机了。
Shell 会执行用户输入的命令,并且在显示器上显示执行结果。
这种交互的全过程都是基于文本的,与其他各章介绍的图形化操作不同。
这种面向命令行的用户界面被称为CLI(Command Line interface)。
在图形化用户界面(GUI)出现之前,人们一直是通过命令行界面来操作计算机的。
现在,基于图形界面的工具越来越多,许多工作都不必使用Shell就可以完成了。
然而,专业的Linux用户认为Shell是一个非常有用的工具,学习Linux时一定要学习Shell,至少要掌握一些基础知识和基本的命令启动shell在启动Linux桌面系统后,Shell已经在后台运行起来了,但并没有显示出来。
如果想让它显示出来,按如下的组合键就可以:<Ctrl> + <Alt> + <F2>组合键中的F2可以替换为F3、F4、F5、F6。
如果要回到图形界面,则按如下组合键:<Ctrl> + <Alt> + <F7>另外,在图形桌面环境下运行“系统终端”也可以执行Shell命令,与用组合键切换出来的命令行界面是等效的。
“系统终端”启动后是一个命令行操作窗口,可以随时放大缩小,随时关闭,比较方便,推荐使用。
启动“系统终端”的方法是:【开始】→ 【应用程序】→ 【附件】→ 【系统终端】该软件允许建立多个Shell客户端,它们相互独立,可以通过标签在彼此之间进行切换。
Shell命令基本规则一般格式Shell命令的一般格式如下:命令名【选项】【参数1】【参数2】...【选项】是对命令的特别定义,以减号(-)开始,多个选项可以用一个减号(-)连起来,如ls -l -a 与ls -la 相同。
【参数】提供命令运行的信息,或者是命令执行过程中所使用的文件名。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五shell命令与包管理命令
一、实验目的
(1)掌握命令常用的特殊字符: $ , \, 反引号(命令替换),双引号,单引号。
(2)熟悉文件的分屏显示、输入/出重定向等命令。
(3)掌握文件的查找与压缩和解压命令。
(4)掌握管道命令的用法。
(5)掌握设置命令别名的方法。
(6)掌握常用的信息处理命令
二、复习常用命令
cat 显示输入文件的内容
more 分屏显示输入的内容
less 分屏显示输入的内容
grep 从输入的字符中查找指定的字符串
man 显示指定命令的手册
find 搜寻文件与目录
bzip 压缩文件命令
bunzip2 解压缩文件命令
gzip 压缩文件命令
gunzip 解压缩文件命令
alias 设置别名
sort 排序命令
cut 将输入行的特定字段“裁切”出来
tr 将字符string1转换成字符string2
uniq 消除连续的相同文本行
paste 将两个文件中字段合并
三、实验内容
1、执行命令”touch a\ b b\ c d e“,用ls -l查看结果,再用vi编辑器,打开d文件,任意
输入一些字符,删除文件名中带有空格的文件;
2、用find命令实现:查找当前目录中文件大小为0的文件并删除;在/etc/目录中查找后
缀名是.conf的文件;查找/home目录中小于150字节的文件,并列出文件的详细信息;查找ifconfig 的绝对路径;查找/etc目录中的子目录并统计其个数保存在$HOME/myetc文件中;找根目录下所有root用户的文件或目录,并统计文件数目追加
保存在$HOME/myetc文件中。
3、创建目录/backup,拷贝文件/etc/service到/backup中,对/backup中的service文件压缩,
分别生成.gz和.bz2两种压缩格式;将/etc/目录拷贝到/backup中,把/etc/目录打包压缩为etc.tar.gz;用rm命令将service的所有压缩包删除(只能用一条rm);在/backup中创建隐藏文件.hf
4、把系统当前的时间广播给所有在线的用户(广播命令为wall)。
5、把文件/etc/shadow和文件/etc/issue的内容合并写入文件$HOME/myetc中,并了解环境
变量HOME的含义。
6、分屏查看/etc目录中的内容;在/dev下查找所有以“tty”开头的文件并统计文件数;统
计/etc/passwd文件中用户的个数
7、显示系统中所有用户的用户名和用户号(/etc/passwd文件),打印出行号,并用tab作为
分隔符。
(注:cat命令加-n参数可显示行号)
8、创建两个文件
(1)取出两个文件的并集(两个文件合并输出到一个文件中,重复行只留下一个);
(2)取出两个文件的交集(即取出同时存在于两个文件中的行, 重复行只留下一个);
(3)取出不是同时存在于两个文件中的行
9、在命令行方式下用rpm命令安装RPM包FaxMail-2.3-5.i386.rpm
10、在命令行方式下用rpm命令安装SRPM包bluefish-0.13-alt1.src.rpm并编译生成可
执行文件。
11、查询系统中是否已安装gcc编译器和make 工具。
12、查看gcc程序所属的软件包
13、已知网络守护进程(超级服务器)软件的名称中包含有xin,但不知道其确切的名称,
如何查看系统中是否已安装网络守护进程服务器软件
14、用命令rpm卸载FaxMail软件包。
四、实验报告
以书写形式记录下每一个实验内容,包括输入若干信息、遇到的问题和解决方法;并回答以下思考题。
五、思考题
(1)重定向命令>和>>在使用上有何不同?
(2)管道技术可以给我们带来什么方便之处?
(3)说明你对设置别名命令的认识。
(4) 说明特殊符号 $ , \, 反引号,双引号,单引号的作用
(5) 完成下列题目
1)重新设置当前用户密码,并设置过期警告的天数为3天
2)设置系统时间为一个任意的日期时间
3)查看set命令所显示变量的个数
4)开机时自动装载windows的C、D分区。
(FAT32格式)
5)查看超级服务器xinetd安装在哪里。
6)卸载tftp服务器软件包,但不知道具体软件名称,应如何得知具体名称,并卸载。