1.shebang符号#!
如果脚本文件中没有#!这一行,那么它执行时会默认用当前Shell去解释这个脚本(即:$SHELL环境变量),例如:test.sh
#!/bin/bash
echo "hello, world."
echo "hello, ${1}.
给文件加入执行权限
chmod a+x test.sh
执行文件
./test.sh Jay
结果为:
hello, world.
hello, Jay.
2.ls(list) 列出指定目录下的文件
选项
- -l:长格式
输出:
输出格式含义:
1.文件类型:
- -: 普通文件
- d:目录文件
- b:快设备文件(block)
- c:字符设备文件(character)
- l:符号链接文件(symbolic link file)
- p:命令管道文件(pipe)
- s:套接字文件(socket)
2.文件权限: 9位 每三位一组,每一组:rwx(read:读, write:写, execute: 执行)
3.文件硬链接次数
4.文件属主
5.文件属组
6.文件大小 默认以字节表示
7.文件的时间戳(timestamp): 最后一次被修改的时间
访问: access
修改: modify 文件内容发生变化
改变: change metadata元数据改变 - -h: 文件大小单位换算(默认是byte显示)
- -a: 显示以.开头的隐藏文件
- -A: 显示.和..以外的所有文件
- -d: 显示目录自身
- -i: index node, inode显示文件索引节点号
- -r: reverse逆序显示文件
- -R: 递归显示文件
3.pwd(Printing working directory) 显示当前目录
4.cd(change directory) 切换目录
家目录,主目录,home directory
cd不带参数切换到家目录
cd ~USERNAME : 进入指定用户的家目录
cd -: 切换到前一个目录
5.type 显示指定命令类型
命令类型:
- 内置命令(shell内置)
- 外部命令: 在文件系统的某个路径下有个命令名称相应的可执行文件
环境变量:
$PATH: 命令查询的目录
使用;分割的路径
hash(命令缓存):
key-value存储,查询时间复杂度O(1)
[root@localhost tmp]# hash
hits command
1 /usr/bin/whereis
1 /usr/bin/man
1 /usr/bin/printenv
1 /usr/bin/passwd
6 /bin/ls
9 /bin/su