Shell概述:
- Shell单词直译“贝壳”。意味一种外在的保护工具。硬件、Linux内核、Shell。Shell完成用户与内核之间的交互。
- 随着各式Linux系统的图形化程度不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分工作。但是许多Ubuntu Linux功能使用Shell命令实现,要比使用图形界面交互,完成的更快、更直接。
- 优点:相比于图形界面更快、更直接。
- Shell是一个命令行解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统程序(Ctrl+Alt+T)。用户通过Shell来启动、停止、挂停、编程等操作。Shell是一个功能强大的编程语言、编写方面、调试方便、灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
- cat /etc/shells 查看当前系统有哪些shell
- echo $SHELL 当前使用的是什么shell
- sudo shutdonwn -h now 立即关机
- sudo shutdown -h +time “That is all,game over” time后关机并显示结束语
- sudo reboot now 立即重启
- sudo shutdown -r now 立即重新启动
- sudo shutdown -r +time 定时重启
Shell 权限相关命令
- Linux系统分为普通用户、超级用户(根目录、安装软件)
- su - run a command with substitute user and group ID
- su -c 变更账户为USER的使用者并执行指令后变回原来的使用者
- su --l 不仅变为超级用户,且环境变量等均变为超级用户,与su 的区别所在。su只切换身份
- --help 显示说明文件
- --version 显示版本咨询
- passwd - change user passwd
- passwd username 修改指定用户的密码
修改文件的权限
文件权限查询: ls -l 文件名 输出 -rwxrwxrwx 1 linux linux 17456 ———
以上共三组rwx 分别为u g o 。u代表所有者,g所属组,o代表其他用户。r可读w可写x可执行
- 字母法:chmod (ugoa) (+-=) (rwx) 文件名 a代表all所有
- 数字法:chmod + 数字组合+文件名
基本命令
- pwd
- ls
- cd
- mkdir
- cp
- mv
- touch
- man
- date - print or set the system date and time
- date +%T 打印现在时间 时秒分
- date +%Y/%m/%d 打印年月日
- date +%H:%M
- date +“当前时间为: %Y/%m/%d%H:%M:%S"
- date +“当前时间为: %Y/%m/%d%H:%M:%S" -d "+3 month" 三个月后
- date +“当前时间为: %Y/%m/%d%H:%M:%S" -d "-3 day" 三天前
- date -s “20300111 19:43:44” 修改时间
- clear 或Ctrl+l 清屏
- df - report file system disk space usage -a 列出所有文件系统 -k 列出磁盘分配情况(KB) -h 同-k,但大小以GMK单位显示 -l 只列出本地文件系统
- du -a 只列出空闲的文件数 -h 列出磁盘使用情况(KB) -s 列出总空闲空间(KB)
输入输出相关操作
- 输出命令 echo -n 输出不起新行 -e \n 转换回车 -E 不转回车
- 输入输出重定向: 输入/输出定向是改变shell命令或程序默认的标准输入/输出目标,重新定向到新的目标。
- 默认输入输出的位置: 标准输入: (stdin,文件描述符为0) : 默认输出定义为终端窗口。 标准输出: (stdout,文件描述符为1) : 默认输出到屏幕。 标注出错: (stderr,文件描述符为2) : 默认输出到屏幕
- 为什么使用重定向:屏幕输出信息很重要,而且希望保存。不希望后台干扰正常输出结果,已知错误信息的丢弃,做到日志功能
- >文件 将file文件重定向为输出源,新建模式 如:ls/pwd > file 将执行结果写到file文件中,若有同名文件删除。
- >> 文件 将file文件重新定向为输出源,追加模式 同上不过追加到file文件中
- 2>或&> 将由命令产生的错误信息传入文件中 系统错误存入
- 2>&1 将标准出错定向到标准输出
- <file 将file文件作为输入 要求wc<file 将file内容作为输入给wc,要求file一定有输出结果。
- <<分界符 表示从标准输入设备中读入,知道遇到分界符停止
- 命令<文件1>文件2 文件1作为命令输入,执行结果送入文件2
通配符:特殊语句用来代替字符
* 匹配任意长度字符 ?匹配一个长度字符 [otr]匹配含otr任意字符 [a-z]匹配指定字符范围内的 [^otr]出来otr均可匹配
管道:| 第一个命令的输出结果作为第二个命令的输入
history历史查询 Tab自动补齐 a=`ls` 命令置换