打开终端可以看到: root@hostname #
还可能看到$(普通用户),或#(管理员用户root). root是Linux中权限最高的用户。
Shell脚本通常以 #!/bin/bash 起始的文本文件。其中#!位于Bash的解释器命令路径 /bin/bash 之前。
脚本的运行方式分两种:
1. 将脚本作为bash的命令行参数, (# + 内容 表示注释,一直延续到行尾)
e.g: $ bash script.sh # 假设脚本位于当前目录下
$ bash /home/path/script.sh # 使用 脚本的完全路径
2. 是授予脚本执行权限,将其变为可执行文件
e.,g $ chmod a+x script.sh # 对所有用户添加对此脚本的可执行权限
$ ./script.sh # ./ 表示当前目录
$ /home/path/script.sh # 或者使用完全路径
内核会读取脚本的首行,并识别出/bin/bash/在内部执行脚本:
$ /bin/bash script.sh
其他需要注意的:
$ cmd1; cmd2 等价于:
$ cmd1
$ cmd2
~ 表示主目录,通常是 /home/user, user是用户名,如果是root用户则是/root
操作演练:
echo 为终端打印, 默认情况下,echo在每次调用后会添加一个换行符,
-n取消换行符
-e 打印包含转义序列的字符串
print同样具有打印功能,只能需要手动添加换行。
日常命令用法及使用例子:
ls:显示目录列表,简单的ls不会显示出带“.”的隐藏文件,e.g:
: ls -a 则显示所有文件包括隐藏文件,包括“.”“..”的文件;
:ls -r 则递归将当前目录下的所有文件及子目录都列出
ll: 同样是列出文件信息,但比ls详细,其实它是 ls -l 的别名,e.g:
七栏分别代表:文件的属性、文件数量、拥有者、所属的组、文件大小、最后修改日期、和文件名
Chmod: 注意,只有文件属组或特权用户才能使用,用于修改一个或者多个文件的存取模式。
我们以文件data为例,当前data的权限为: rwxr-xr--
现在我们想取消所有用户对data文件的r权限,可以进行如下操作,然后再ll一下查看data的权限有什么变化:
可以看到文件data对于所有用户的r权限已被关闭;
其实 :chmod u=wx,g=x,o=0 同样也可以达到目的
Mv:有两种作用:
1. 对文件或目录重命名;
2. 将一组文件移动到一个目标目录中。
具体情况:
当目标文件是到某一目录文件的路径,源文件会被移动到这个目录下;
如果目标文件不是目录名,则源文件则会覆盖此目标文件,并且变成此目标文件名;
如果两个都在同一个目录下,mv的作用则是更名;
如果源文件或目录有多个,并且目标文件是目录文件,则将所有源文件移动到该目录下,并保留原名。
Cp:将一个或多个文件或目录复制到指定的文件或目录里。如果复制目录,必须加-r进行递归操作。
Rm: 删除一个目录中的一个或多个文件或目录,对于连接文件,只删除链接,而原油文件保持不变。注意,删除后就无法恢复;删除目录需要递归操作-r或-R
grep: 文本搜索工具,全面搜索正则表达式并把匹配的行打印出来
echo: 在显示器上显示一段文字,一般起到提示的作用;
less: 对文件或其他输出进行分页显示,可以结合pageup/pagedown进行上下翻页
tail:按照要求,将指定的文件的最后部分输出到标准设备。如果文档有更新,tail会自动更新。
E.g: 将fair-scheduler.xml这个文件的最后五行输出到屏幕,结果如下:
head: 显示文件的开头内容,默认是头10行内容
这里因为文档只有5行,所以默认全部输出。