UNIX课件八:重定向
- 格式:ppt
- 大小:1.70 MB
- 文档页数:23
实验1:用户的登录与退出、IO重定向与简单文件操作1、实验目的(1)、掌握系统开启和关闭的方法及正常关闭系统的意义和必要性;(2)、掌握用户的登录与退出的方法及用户退出系统或注销的意义和必要性;(3)、了解UNIX/Linux系统的图形界面全貌及使用办法;(4)、掌握命令操作方法,I/O的重定向和引号机制。
2、实现设备一台装有Windows操作系统PC机,上装有虚拟机系统VMWare,实验过程通过VMWare 系统启Linux系统工作。
3、实验方法与注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。
要求每个同学登录后系统后,要在自己的家目录内容以自己(拼音)名字或学号,创建一个子目录。
以后所有工作都要在自己的目录内进行。
建议以后的实验都在同台计算机上做,这样可以保持连续性。
用户要按通常实验要认真书写实验报告。
4、实验过程(1)系统的开启通过Windows系统启动VMware Workstation系统。
在VMware Workstation界面上,单击►启动Red Hat Linux;注:当鼠标陷入Linux系统中时将无法移出Linux窗口,此时可通过组合键“Ctrl+Alt”来释放鼠标。
(2)系统的注册与登录当系统启动过程结束后,请分别在图形和字符界面下以超级用户身份登录:用户名:rootpassword:123456注:操作界面的切换。
当从图形界面向字符界面切换时使用组合键“Ctrl+Alt+F#”,从字符界面面字符界面或图形界面切换时请使用组合键“Alt+F#”。
其中,F7为图形界面,F1~F6为字符界面。
请分别在不同的界面上登录。
(3)用户的退出或签退在字符界面下方法有三:logout exit Ctrl_D在图形方式下:→注销(logout)→注销(logout)→确定(4)语言切换(选做)在图形界面下的登录两面下有“语言(L)”按钮,单击之在选择列表中选择语言后按“确定”,在下次的图形界面登录后将使用新设定的语言。
1.1. UNIX操作系统简介UNIX是较早广泛使用的计算机操作系统之一,它的第一版于1969年在Bell实验室产生,1975年对外公布,1976年以后在Bell实验室外广泛使用。
1.1.1.UNIX特点UNIX操作系统是一种非常流行的多任务、多用户操作系统,应用非常广泛。
UNIX 的主要特点为:多任务(Multi-tasking)UNIX是一个多任务操作系统,在它内部允许有多个任务同时运行。
而DOS操作系统是单任务的操作系统,不能同时运行多个任务。
早期的UNIX 操作系统的多任务是靠分时(time sharing)机构实现的,现在有些UNIX除了具有分时机制外,还加入了实时(real-time)多任务能力,用于象实时控制、数据采集等实时性要求较高的场合。
多用户(Multi-users)UNIX又是一个多用户操作系统,它允许多个用户同时使用。
在UNIX中,每位用户运行自己的或公用的程序,好象拥有一台单独的机器。
DOS 操作系统是单用户的操作系统,只允许一个用户使用。
并行处理能力UNIX支持多处理器系统,允许多个处理器协调并行运行。
管道UNIX允许一个程序的输出作为另外一个程序输入,多个程序串起来看起来好象一条管道一样。
通过各个简单任务的组合,就可以完成更大更复杂的任务,并极大提高了操作的方便性。
后来DOS操作系统也借鉴并提供了这种机制。
功能强大的Shell UNIX的命令解释器由Shell实现。
UNIX提供了三种功能强大的Shell,每种Shell本身就是一种解释型高级语言,通过用户编程就可创造无数命令,使用方便。
安全保护机制UNIX提供了非常强大的安全保护机制,防止系统及其数据未经许可而被非法访问。
稳定性好在目前使用的操作系统中,UNIX是比较稳定的。
UNIX具有非常强大的错误处理能力,保护系统的正常运行。
用户界面传统的UNIX用户界面采用命令行方式,命令较难记忆,很难普及到非计算机专业人员。
标准输出重定向在计算机编程领域,标准输出重定向是一个非常有用的概念,它允许程序将输出发送到除标准输出设备(通常是终端)之外的地方。
通过标准输出重定向,程序员可以将输出保存到文件、发送到打印机,或者管道到另一个程序。
在Unix和类Unix系统中,标准输出重定向是通过使用特殊的符号来实现的。
下面我们将详细介绍如何在Unix系统中进行标准输出重定向,并提供一些示例来帮助读者更好地理解这个概念。
1. 输出重定向到文件。
要将程序的标准输出重定向到文件,可以使用大于号(>)符号,后面跟着要输出到的文件名。
例如,下面的命令将程序的输出重定向到一个名为output.txt的文件中:```bash。
$ ./my_program > output.txt。
```。
这将导致程序的输出不再显示在终端上,而是保存到output.txt文件中。
如果文件不存在,则会创建一个新的文件;如果文件已经存在,则会覆盖其中的内容。
2. 追加重定向到文件。
有时候,我们希望将程序的输出追加到一个已经存在的文件中,而不是覆盖文件中的内容。
这可以通过双大于号(>>)符号来实现。
例如:```bash。
$ ./my_program >> output.txt。
```。
这将导致程序的输出追加到output.txt文件的末尾,而不会覆盖已有的内容。
3. 输出重定向到打印机。
在Unix系统中,可以使用lp命令将程序的输出发送到打印机。
例如:```bash。
$ ./my_program | lp。
```。
这将导致程序的输出被发送到默认的打印机上进行打印。
4. 管道重定向。
除了将程序的输出重定向到文件或打印机之外,还可以将其发送到另一个程序。
这可以通过使用管道符号(|)来实现。
例如,下面的命令将程序的输出发送到另一个名为process_output的程序中:```bash。
$ ./my_program | process_output。
LinuxUnix系统下常⽤的命令Linux/Unix系统下常⽤的命令:shell环境命令⾏环境命令解释器shell环境下写脚本,就是shell脚本将多条命令写成⾃动化脚本,⾃动批量执⾏结合计划任务定时执⾏ ctontab——后台服务管理者基本思路思路:遇到困难的"三把斧"我是谁?我在哪⼉?我有什么?⾝份⽬录有权限⽂件、⽬录1、查看⽤户⾝份:id 我是谁?⾝份有权限有关1)查看最初登录⾝份:who am i2)查看当前⽤户名:whoami3)查看当前⽤户详细⾝份:id⽤户id、⽤户名、组id、组名4)查看当前在线⽤户情况:who 或 w5)改变⽤户⾝份:su ⽤户名su 直接改变为root2、查看当前⼯作⽬录: pwd 我在哪⾥?1)改变⽬录:cd ⽬录路径名绝对路径:从/开始表⽰当前路径:⽬前所在⽬录路径名 pwd查看相对路径:从当前路径开始表⽰特殊⽬录名: . 当前⽬录 .. 上⼀层⽬录 ~ 主⽬录2)查看系统环境变量:echo $变量名echo $PATH 命令的搜索路径将常⽤的命令所在路径名添加到PATH值中,后续直接使⽤相对路径可以直接执⾏命令名。
⾯试题:如何在Linux中安装某软件并部署使⽤?<1> 将软件安装包tar、zip、gz,传输到Linux某⽬录下:⽐如:/usr/bin/tomcat6.tar<2> 需要对压缩包进⾏解压: tar⽐如:/usr/bin/tomcat6<3> 进⼊bin⽬录中,修改.sh⽂件的权限为可执⾏:cd /usr/bin/tomcat6/binchmod a+x *.sh<4> 将bin⽬录添加到系统环境变量PATH中:cd 回主⽬录⽬前⽐如bash环境vi .bash_profile 系统环境配置⽂件在PATH中追加⽬录名:PATH=$PATH:$HOME/bin:/usr/bin/tomcat6/bin保存关闭source .bash_profile 让配置⽂件重新读取⽣效<5> 可以在任意⽬录下执⾏bin⽬录中命令,启动tomcat6⽐如startup.sh 启动服务器shutdown.sh 关闭服务器3、查看⽬录下内容:ls 有什么?1)查看⽬录下内容的详细属性:ls -l⽂件类型权限属主属组⼤⼩Byte 最后⼀次修改时间- d 644-rw-r--r-- 1 alice girls 1326 7⽉ 12 16:48 passwd2)查看当前⽬录的详细属性:ls -ld3)查看所有内容:ls -al 包括隐藏内容4)查看⽬录层次:ls -R5)按照时间排序:ls -lt4、系统进程管理:ps -ef 或 ps -aux1)查看当前系统所有进程:ps -ef2)根据pid杀进程:kill 进程id3)根据进程命令名批量杀进程:pkill 命令名4)关闭控制台当前进程:ctrl+c5)挂起控制台当前进程:ctrl+z6)查看后台挂起的任务:jobs7)后台任务前置:fg 任务号5、⽂件系统管理:1)创建⽬录:mkdir ⽬录名 ...2)创建⽂件:touch ⽂件名3)查看⽂件内容:cat ⽂件名不翻页more ⽂件名翻页回车-跳⾏、空格-翻页、q-退出vi ⽂件名可编辑head和tail 头尾tail -f 监控⽇志⽂件的动态4)拷贝:cp 源⽂件路径名新路径名5)重命名/移动:mv 源⽂件路径名新路径名6)删除⽂件: rm ⽂件名rm -f ⽂件名可关闭交互删除空⽬录:rmdir ⽬录名删除⾮空⽬录:rm -r ⽬录名rm -rf ⽬录名可关闭交互6、改变⽂件/⽬录的权限:chmod 规则⽂件/⽬录名chmod a+x *.shchmod 644 1.txtchmod 755 dir1规则:⾓⾊ u g o a⾃⼰同组其它所有⼈操作 + -增加去除权限 r w x可读可写可执⾏简易规则:数字表达法644 rw- r-- r--755 rwx r-x r-x777 rwx rwx rwx744 rwx r-- r--7、输出重定向: > >>将之前命令输出的结果写⼊后续⽂件中保存⽤途:命令⾏下结果保存和分析,⽐如运⾏⽇志适⽤⾯:Linux/Unix/Windows都⽀持> 输出重定向,新的会覆盖旧的>> 输出追加重定向,新的会在原有⽂件结尾追加内容⽐如:Linux中 cat /etc/passwd |grep tom > 1.txtWindows: adb shell monkey ... > 2.txt8、管道符:|将前⼀个命令的输出,作为后⼀个命令的输⼊:分⼯协作cat /etc/passwd | grep tom常见⽤法:| more 分页| grep 过滤| sort 排序| wc 统计9、⽂本编辑器:vivi ⽂件名vi1)三种模式切换底⾏模式 <--: / -- 命令模式 --i a o O--> 输⼊模式---回车-->(默认) <---Esc ---2)如何保存退出:Esc 回命令模式 -> : 底⾏模式 wq3)其它命令:拷贝单词 yw 拷贝⾏ yy 5yy粘贴 p删除字符 x 删除⾏ dd 5dd光标移动⽅向键、h j k l撤销 u另存为 :w ⽂件名保存 :w不保存强制退出 :q!10、其它:1)⽹络⽅⾯:查看⽹络IP地址: ifconfig设置⽹络:netconfig查看⽹络是否可达:ping IP地址关闭防⽕墙:iptables -F查看端⼝号情况:netstat2)磁盘管理:查看磁盘情况:fdisk -l df -k mount3)查看命令帮助⼿册:man 命令名4)查看系统性能情况,⽐如CPU、内存情况:top定时刷新系统资源信息,供性能监控使⽤结束监控:ctrl+c 或 q内存Memory 可⽤Mem: 1030888k av, 158284k used, 872604k free,0k shrd, 32636k buff87028k actv, 1056k in_d, 8172k in_c交换分区:虚拟内存不能频繁使⽤,否则存在系统瓶颈Swap: 2048276k av, 0k used, 2048276k free56832k cachedPID USER PRI NI SIZE RSS SHARE STAT %CPU %1 root 15 0 468 468 420 S 0.0 02 root 15 0 0 0 0 SW 0.0 03 root 15 0 0 0 0 SW 0.0 05)打包和解包:tar将整个 /home/alice/dir1 ⽬录下的⽂件全部打包成为 /home/alice/dir1.tar$ cd$ tar -cvf dir1.tar dir1 <==仅打包,不压缩!解压dir1.tar$ tar -xvf dir1.tar。
大家在刚开始学 SHELL 的时候,首先介绍一下 IO 重定向的概念:所谓 I/O Redirection 实际上是将命令的输入和输出数据流从默认位置重定向到其他位置的一种技术。
这种技术在 linux 和 windows 的 shell 编程中经常被用到。
举例来说,在 windows 下运行:dir > file.out这可以将 dir 命令的输出,重定向到 file.out 文件中去。
这里‘ > '就是一个重定向符,类似得到还有 '<', '>>', '>&', '<&', '|' 等。
请参看下述表 1 和表 2 ,本文不打算详细介绍所有这些重定向符,因为除了 >& 和 <& 其他的好像都非常简单,而且绝大多数介绍重定向的书中都说的很详细,读者一眼就能明白。
但是对于 >& 和 <& 这两个重定向符号,好像很少有讲的非常明白的。
让人很不好把握,本文希望给您一个满意的解答。
表 1 ,重定向操作符的说明表 2 ,重定向操作符的使用说到这里还是先来让我们认识一下 File Descriptor (FD) 吧。
在 linux 下称文件描述符,在 windows 下称为句柄。
相信很多人都不陌生吧。
用户通过对他的读和写来实现对文件的读写操作。
一般在重定向中我们涉及到的文件描述符是 0 ~ 9 。
其中0 表示标准输入设备一般是键盘1 表示标准输出设备一般是终端2 表示标准错误输出设备一般也是终端3~4 用来由用户自定义下面我们在 linux 下做一番示范。
首先,我们在当前目录里面创建了一个文件 exist (你可以使用“ touch exist ”命令),然后运行如下几个命令$ ls exist nonexist会在终端上看到如下显示 , 说明结果输出和错误输出都是默认被定位到终端的ls: nonexist : 没有那个文件或者目录 // 错误输出exist // 结果输出$ ls exist nonsexist 1>file.out终端则只是显示如下信息,因为结果输出已经被重定向到 file.out 文件中了。
教你认识Unix教学教案第一章:Unix简介1.1 Unix的起源和发展1.2 Unix的特点和优势1.3 Unix的常用版本介绍1.4 Unix与其他操作系统的比较第二章:Unix基本概念2.1 文件和目录2.2 权限和用户组2.3 进程和线程2.4 系统日志和系统资源第三章:Unix命令使用3.1 命令行界面和快捷键3.2 文件操作命令3.3 文本处理命令3.4 进程管理命令第四章:Unixshell编程4.1 shell简介和基本语法4.2 变量和参数4.3 控制结构和使用方法4.4 常用shell脚本示例第五章:Unix网络配置与应用5.1 Unix网络基础5.2 网络配置命令和工具5.3 文件传输和远程登录5.4 Unix网络应用举例第六章:文件系统管理6.1 文件系统概述6.2 文件系统类型6.3 挂载和卸载文件系统6.4 文件系统权限管理第七章:磁盘管理7.1 磁盘分区7.2 磁盘格式化7.3 磁盘空间管理7.4 磁盘阵列和RD第八章:软件包管理8.1 软件包管理工具8.2 安装和卸载软件包8.3 软件包仓库和安装8.4 软件包依赖关系处理第九章:系统维护与优化9.1 系统更新和升级9.2 系统备份与恢复9.3 系统性能监控9.4 系统资源优化策略第十章:Unix安全基础10.1 Unix安全概述10.2 用户和权限管理10.3 防火墙和网络策略10.4 常见Unix安全问题和应对措施第十一章:文本编辑与处理11.1 文本编辑器简介11.2 Vim和Emacs编辑器使用11.3 文本处理工具:grep、sed和awk 11.4 宏和脚本在文本处理中的应用第十二章:日期时间与任务计划12.1 日期时间命令的使用12.2 日历和计划任务工具12.3 定时任务和cron jobs12.4 事件日志和系统通知第十三章:文件传输与远程管理13.1 scp和sftp命令13.2 rsync命令的使用13.3 SSH和端口转发13.4 远程桌面工具和VNC第十四章:高级Shell编程14.1 函数和脚本编程14.2 进程控制和信号处理14.3 高级输入输出和重定向14.4 Shell脚本的调试和优化第十五章:Unix系统管理综合实践15.1 用户管理综合练习15.2 文件系统维护练习15.3 软件包管理实践15.4 系统监控和性能分析15.5 安全策略配置和演练重点和难点解析第一章:Unix简介重点:Unix的起源和发展、特点和优势。