shell命令
简介
许多 Ubuntu Linux功能使用shell命令来实现,要比使用图形界面交互更快、更直接。Linux中的shell就是Linux内核的一个外层保护工具,并负责完成用户和内核之间的交互。
命令是用户向系统内核发出的控制请求,与之交互的文本流
shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互。
当需要重复执行若干命令,可以将这些命令集合起来,加入一定的控制语句,编辑成为shell脚本文件,交给shell批量执行
体验shell的乐趣
关机
sudo shutdown -h now 系统立即关机
sudo shutdown -r now 系统立即重启
sudo reboot now 系统立即重启
sudo shutdown -h +45 45分钟之内关机
sudo shutdown -r +45 45分钟之内重启
shell命令格式
shell提示符
shell提示符标识了命令行的开始。用户在提示符后面输入一条命令并按enter键,完成向系统提交指令
提示符格式:username@hostname:direction$
username:用户名,显示当前登录用户的账户名;
hostname:主机名,显示登录的主机名;
direction:目录名,显示当前所处路径,当在根目录下显示为“/”,当在用户主目录下显示为“~”;
shell命令格式
格式:
$ Command [-Options] Argument1 Argument2...
$:shell提示符;
Command:命令名称,shell命令或程序,严格区分大小写
Options:命令选项,用于改变命令执行动作的类型,由“-”引导,可以同时带有多个选项;
Argument:命令参数,指出命令作用的对象或目标,有得命令允许带多个参数。
1.一条命令的三要素之间用空格隔开;
2.若将多个命令在一行书写,用分号(;)将各类命令隔开;
3.如果一条命令不能在一行写完,在行尾使用反斜杠(\)标明该条命令未结束。
命令行操作
补齐命令与文件名
1.TAB或者ESC自动补齐剩余没有输入的字符串
2.连续按下两次TAB或ESC,用于命令补齐;按下一次TAB键,用于文件名补齐
查询命令历史
1.上下键
2.history [numberline] 该命令将命令历史按列表形式从1开始一次全部显示出来。
3.`
$HISTSIZE #显示历史命令容量
500
HISTSIZE=1000 #修改历史命令容量
echo $HISTSIZE
1000
`
Shell的特殊字符
Shell通配符
Shell管道
| 管道 左边的输出作为右边的输入
linux@linux-virtual-machine:~/test$ ls
\ a.out c.out e.out g.out j.c l.c n.c o.out q.out
0.c b.c d.c f.c h.c j.out l.out newfile p.c
0.out b.out d.out f.out h.out k.c m.c n.out p.out
a.c c.c e.c g.c i.c k.out m.out o.c q.c
linux@linux-virtual-machine:~/test$ ls | wc
37 37 184
次例为统计列表中的单词数量和字节(wc)
输入/输出重定向
新建模式:以前有同名文件就创建,以前没有直接创建
追加模式:以前有同名文件就写入进去,没有就直接创建
’ > file 操作命令的结果输入到file中
’ < file wc<file中的内容作为输入传给wc命令 ,即作为wc命令的目标 ,与wc file 没什么区别
(wc命令:`
$ wc testfile # testfile文件的统计信息
3 92 598 testfile # testfile文件的行数为3、单词数92、字节数598
` )
命令置换
linux@linux-virtual-machine:~/test$ echo "Today is date"
Today is date
linux@linux-virtual-machine:~/test$ echo "Today is `date`"
Today is 2019年 11月 16日 星期六 00:08:45 CST
以echo
为例,date
本身是一个显示日期的命令,·date·
的输出作为echo 的输入。
$(command)
可以和·command·
替换