【笔记】shell下的主要工具

时间:2023-03-09 00:59:54
【笔记】shell下的主要工具

shell 下有很多工具是非常好的辅助。

一、自我精进的途径

1、help / --help :简要的帮助说明;

help 是针对 shell 内建功能的帮助, gnu工具一般为 "程序名 --help"

2、man : 初步的说明

3、info : 深入的说明信息,对于很多gnu工具,就是正式的help文件。

二、几个工具集合(单独使用上面man、info可能找不到)

1、coreutils【对应的嵌入式场合,主要是busybox】

http://www.gnu.org/software/coreutils/

http://en.wikipedia.org/wiki/GNU_Core_Utilities

该列表包含的工具对应 Coreutils 8.20版

文件处理工具
chcon   改变文件的安全相关上下文 (SELinux)
chgrp   修改文件的属组
chown   修改文件的所有者
chmod   修改文件或目录的权限
cp     复制文件或文件夹
dd     复制/转换文件
df     显示文件系统上的空闲/已用空间
dir     等效于“ls -C -b”
dircolors  设置ls命令输出显示颜色
install   复制文件并设置属性(如rwx)
ln     创建到某一文件/文件夹的链接
ls     列出某个文件夹的内容
mkdir   创建文件夹
mkfifo    创建命名管道(英语:Named pipe)(即FIFO)
mknod     创建块文件或字符设备文件(英语:device node)
mktemp   创建临时文件(英语:temp file)/文件夹
mv       移动或重命名文件
rm       删除文件
rmdir   删除空文件夹
shred    多次覆盖文件以使原本内容难以还原
sync    将缓存写入磁盘并清理缓存
touch   变更文件时间戳
truncate  截取/扩充文件到给定大小
vdir         效果实质等价于“ls -l -b”
文本工具
base64   以base64算法对文件进行编/解码,并将结果送至标准输出
cat     连接并输出文件至标准输出
cksum   计算文件的CRC校验码与字节数
comm   按行比较两个有序文件
csplit     按行分区文件
cut     从文件中截取部分输出
expand   将文件中的制表符转换为空格
fmt     简单的文本格式优化程序
fold      为每行输入以给定的宽度设定自动换行
head      根据给定条件输出文件最前面的某一部分
join     将两文件中同首部行进行组合
md5sum  计算/校验文件的MD5校验值
nl      计算文件的行数
od     将文件转换为8进制(或其他形式)表示并送至标准输出
paste    按行将两个文件合并
ptx     针对文件内容生成关键字索引(英语:Key Word in Context)
pr     将文本文件转化为打印格式
sha1sum,sha224sum,sha256sum,sha384sum,sha512sum   计算/校验SHA-1、SHA-224/256/384/512校验值
shuf     将文件内容随机排序输出
sort     对文本文件的内容进行排序
split     按大小分区文件
sum    计算文件的大小及其占用的块数
tac      连接文件并将内容按列反向输出
tail      输出文件的结尾部分
tr     替换/删除指定字符(串)
tsort   对文件内容进行拓扑排序
unexpand 将空格转换为制表符(与expand相对)
uniq   从有序文件中删除重复行
wc   输出文件的字节数/单词数/行数
Shell工具
basename 删除给定的路径名的路径前缀
chroot   转换root文件夹
date      输出/设定系统日期与时间
dirname     只输出给定的路径名的路径前缀(与basename相对)
du     显示文件系统上的磁盘使用率
echo     输出给定的文本
env          显示/修改环境变量
expr       对给定表达式进行计算
factor    输出一个整数的所有素数因子
false      仅返回“运行失败”的退出状态
hostid   输出当前主机的数值标识符
id      输出当前的真实/有效用户ID与组ID(英语:Group identifier)
link    创建到文件的硬连接(英语:hard link)(效果等价于不带参数的ln)
logname 输出用户登录时用名
nice       修改进程调度优先级
nproc    显示当前进程可用的CPU数
nohup   允许命令在用户注销后继续执行
pathchk 检查给定用户名是否有效/可达
pinky finger协议(英语:finger protocol)的轻量级实现
printenv 输出环境变量(效果等价于env)
printf    将给定字符串格式化并输出
pwd      输出当前的工作目录
readlink 显示符号链接的指向
realpath 输出解析出的绝对路径(等价于主体为“echo $(pwd)/$1”函数)
runcon 以给定的安全上下文执行命令
seq      以给定的起始、终止数字与增量生成数列
sleep    在给定时间内延迟(阻塞)
stat      输出给定的索引节点存储的数据
stdbuf  调整标准流缓冲区后运行给定命令
stty      输出/修改终端设定
tee       将输入同时送入标准输出与指定文件
test       判断表达式的正误
timeout 限时执行命令
true      仅返回“运行成功”的退出状态
tty        输出终端名
uname   输出系统相关信息
unlink    以unlink函数删除指定文件
users    输出登录到当前主机的用户
who      列出当前已登录的所有用户
whoami 输出当前用户的有效用户ID
yes   不断输出y
其他工具
[     等效于test

2、binutils(配合gcc工作)

http://zh.wikipedia.org/wiki/GNU_Binutils

http://www.gnu.org/software/binutils/

as       汇编器
ld      连接器
gprof      性能分析工具程序
addr2line  从目标文件的虚拟地址取得文件的行号或符号
ar       可以对静态库做创建、修改和取出的操作。
c++filt    解码 C++ 的符号
dlltool     创建Windows 动态库
gold       另一种连接器
nlmconv   可以转换成NetWare Loadable Module目标文件格式
nm     显示目标文件内的符号
objcopy   复制目标文件,过程中可以修改
objdump  显示目标文件的相关信息,亦可反汇编
ranlib    产生静态库的索引
readelf       显示ELF文件的内容
size           列出总体和section的大小
strings       列出任何二进制档内的可显示字符串
strip          从目标文件中移除符号
windmc      产生Windows信息资源
windres      Windows 资源档(英语:Resource (Windows))编译器

三、高级工具

sed,awk等