查看“Linux-2020-spring-4-1”的源代码
←
Linux-2020-spring-4-1
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
== 回顾上节课内容 == 查看帮助文档 man、info、help == shell的进一步了解 == shell本身也是一种编程语言 查看内部命令(man、help) $ man builtins:查看内部命令 输入“/^\s+history”正则表达式搜索history这个内部命令的使用说明 $ help history tab键自动补全命令名、文件名 好的程序员一定要懒。想方设法帮助自己,避免记忆。 空命令:(英文冒号) 类似于C语言中,空语句(;) 什么都不做,退出状态永远是成功的 shell脚本时会用到,比如在循环中 前台和后台执行命令 bg:background $ cmd & (后面加&,表示后台执行) fg: foreground $ fg job-id (后台进程变为前台) jobs 显示目前所有活跃(active)任务 命令历史、重用、编辑 history:显示之前输入的所有命令 fc:fix command $ fc -s love=hate 232 替换232命令中的love为hate 管道 (提了一下) 标准输入stdin,默认为键盘 屏幕对应的文件:stdout或stderr $ help history |less 分屏显示 shell命令行编辑 clear或者 ctrl+l:清屏 ctrl+a回到命令的最开始 ctrl+e回到命令的最末尾 ctrl+u清除一行的命令 “tab”键,自动补全文件名、命令名 == shell中的wildcard 通配符 == *?匹配任意一个字符; *匹配任意长度个任意字符;[abcd]匹配中括号中的某一个字符;[a-z]匹配一个范围 $ls /bin/?a??? $ls /bin/f* $ls /[cd]* :匹配中括号中的某一个字符开头的文件 *shell来处理的通配符 $ls home/*:相当于ls /home/zhenghua /home/yli /home/a.txt $ls -d /home/*:不显示文件夹内的东西 $cp *.txt ~/Documents == 重定向 == *标准输入重定向 stdin<---file *标准输出重定向 stdout--->file *标准错误输出重定向 stderr--->file ** 覆盖(write)输出重定向 > ** 追加(append)重定向 >> *下面给出一个C语言程序,让大家理解命令行参数的实现,stdin/stdout/stderr的用法 <nowiki> #include<stdio.h> int main(int argc, char *argv[]) { int i = 0; for (; i < argc; ++i) { fprintf(stdout, "%d: %s\n", i, argv[i]); } fflush(stdout); char c = fgetc(stdin); while (c != EOF) { if (c >= 'a' && c <= 'z') { c = c + 'A' - 'a'; } fputc(c, stdout); c = fgetc(stdin); } fflush(stdout); fprintf(stderr, "I am stderr\n"); fflush(stderr); } argc:参数的个数 argv:字符串数组; argv[0]:命令本身 fflush函数是干啥的? </nowiki> 编译和执行 $ gcc main.c -o hi $ ./hi hello dads dff 执行的结果: 0:./hi 1:hello 2: dads 3:dff I am stderr $./hi hello dads dff > yy.txt 只输出标准错误输出stderr:I am stderr $ ./hi hello dads dff >> yy.tx 追加 $ ./hi hello dads dff > yy.tx 2>&1:标准错误的输出也写入了yy.txt中 stdin=0;stdout=1;stderr=2 ctrl+c:对应kill信号,强制杀死正在执行的shell子进程 ctrl+d: 对应EOF信号,表示输入结束 $./hi < main.c :标准输入重定向
返回至
Linux-2020-spring-4-1
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
新闻
成员介绍
研究组
科研项目
发表论文
在线演示
工具
链入页面
相关更改
特殊页面
页面信息