命令: 1.shell 简介 命令 :用户向内核发起的控制请求 cd ; ls ;mkdir;rm; 命令行解释器 用户命令与内核交互工具 sh->csh->ksh->zsh->bash 脚本: 超多命令有序地放在一个文件中,用来完成一定的功能。 1.0shell执行过程: Step1: 用户输入shell命令 Step2: shell去解释内核所能理解的二进制指令 Step3: 内核响应(调用驱动代码),控制相关硬件 Step4: 内核获取硬件的执行结果,交给shell Step5: Shell将内核返回的结果展示给用户。 1.1关机命令: halt 关机 reboot 重启 shutdown -h now 关机 shutdown -r now 重启 shutdown -k shutdown -c init 0 2.命令格式与编辑 2.1终端: 用户名@主机名:工作目录 提示符 whoami hostname pwd $普通用户 #超级用户 echo $PS1 PS1='u@h:w$' 提示符格式变量 u username h hostname w 绝对路径 W 当前目录名 $ 用户提示符 PS2 用户命令未写完提示符 2.2命令格式: ls [option]... [file]... 命令 [参数] [目标]... -a 短参 --all 长参 [ ]可选标志 ls -l jielun ls ... 多参机制 ls -la ; 多个命令放在同一行输入 表示命令没有输入完整,下一行继续输入,用来转义回车,所以后直接回车 自动补全 Tab Tab Tab 补全提示 Esc 2.3 history 查看当前终端缓存区中的历史命令 每一个终端都有一个历史列表缓存区,(history可查看) 每一个用户有一个历史命令文件.bash_history history -c 清空缓存区列表 history -w 保存缓存区列表到文件中 history -r 从历史文件读到缓存区 帮助手册有两个man history; help history !! 执行上一条命令 !2010 执行history中编号为2010的命令 !-2 执行列表中倒数第二个命令 文件列表中历史命令的个数是由 HISTSIZE决定 echo $HISTSIZE 历史文件.bash_history的个数由HISFILESIZE决定 echo $ISTFILESIZE (~/.bashrc) 内置命令:命令的二进制文件保存在内核中(history,cd).通常的命令保存在硬盘中 /bin/ls,执行时先从硬盘读到内存再交给内核执行. 当一个用户开机登录系统后执行了哪些配置文件 /etc/profile 为所有用户配置数据,eg:自启动软件 开机就执行的指令 /etc/bash.bashrc 为所有打开bash的用户配置shell数据 ~/.profile 为当前用户的配置数据 ~/.bashrc 为当前用户配置shell的数据 3.shell特殊字符 * 任意长度的任意字符个数 ls file*.c ? 单个任意字符 ls file?.c file??.c [...] 指定匹配括号中的字符 ls file[13579].c ls file1[89].c file2[012345].c [-] 指定匹配括号区间中的字符 ls file[1-9].c ls file[a-z].c [^...] 匹配除了括号中之外的字符 ls file[^1357].c scanf("%[^ ]", buff); 管道 | command1 | command2 左输出 | 右输入 command1 必须有标准输出数据;comman2必须能接收输入 command1和command2同时运行,command2会阻塞等待输入数据 dpkg -l | less ls /usr/bin/ | wc -w 重定向 /*************************************************** everthing is file 一切皆文件 standard input 标准输入 <键盘> 0 standard output 标准输出 <显示屏> 1 缓存区满或 程序结束或 调用刷新函数fflush(stdout) standard err 标准出错 2 出错就立刻打印 *****************************************************/ > == 1> 输出重定向,会覆盖之前内容 echo "hello world" > jielun >> == 1>> 追加,在文件尾添加数据 echo "hello echo" >>jielun < 输入重定向 wc < jielun 2> 2>> 表示错误信息定位 ls -l naying 2> log &> &>> 表示正确和错误都输出到指定文件 ls -l naying jielun &> log 比较特殊的文件 /dev/null 无底洞文件,数据保存进去后会消逝. echo "hello" &> /dev/null 正确信息和错误信息全部丢弃到/dev/null中. cat /dev/null > ~/.bash_history 清空 历史命令文件. /dev/zero 总是能产生'