三种参数类型
1⃣时间日期:
cal times time
2⃣文字处理:
ctl+v 输入控制字符
${#str} str字符串长度
expr length $abc 同上
typeset -i x=base#number x是base进制的数,值为number。
typeset -i x=0x1000 与上类似
IFS bash内部字段分隔符
expr 计算数值表达式
${var#key}一般范式
# ## 从前向后删除最短的或最长的
% %% 从后向前搜索
/ // 替换单个或替换所有
new_var=${old_var-content}若old_var未设定则设为content
new_var=${old_var:-content}若old_var为空或未设定则设为content
gpg 加密解密文件
cat tac
cut sort wc uniq tee
tr 替换或删除string中的字符
col 将tab转为空格
join 每行按字段粘贴
paste 傻粘贴
expand 将tab转为空格
unexpand 反上
split 按大小或行分割文件
head nl tail
sed 处理一行
egrep 类似于grep -E
printf 格式化输出文本
awk 处理一列
sed -n '87,90p' file
${a}${b}
cat << MARK
....
MARK
rev 反转内容
xxd
ack 类似于grep
ed 简洁字符编辑器
sed -n l file 将file中的不可见字符显示出来
3⃣进程控制:
gksu 图形界面下的sudo
pmap 查看进程内存映射
pkill 以名称杀进程
pgrep 查找名称进程的pid
xkill 杀死图形程序 ?
dtruss mac下的strace
fakeroot 伪sudo
htop 高级进程查看器
ctl+z 将当前工作放入背景执行,预设情况下此工作为暂停状态。
source a.sh #run in baba,函数库关键命令,其别名为点(.)。
bash -nx
at 安排执行一次性任务
atq 枚举目前系统中待执行的任务
atrm 移除指定任务
cron
batch 系统空闲时执行at
crontab 执行周期性任务
anacron 督促执行系统关机后又启动时的crontab
fg 将背景工作拿到前景运行(默认带+号的job)
bg 在后台运行放在后台的任务(是在背景运行不是在前景)
&
jobs 查看目前背景工作状态
kill 向job(%job号)或进程发送信号
kill -9 %1
nohup 不在终端环境下运行程序
ps -A or ps aux
pstree top
killall
nice 以nice值运行程序,调整进程pri优先级 pri = pri + ni
renice 修改正在运行进程的nice,nice值会传递给子进程
free 显示内存使用情况
uptime 系统启动时间和负载
exec
pidof 找出执行程序的pid
/etc/services service
vmlinuz
>&2 &> 2> #3者的区别
exec 1>file exec 3>&1
exec 3<> file
exec 3>&-
depmod 建立模块相关性档modules.dep lsmod 列出目前系统核心加载的模块
modinfo 查看具体模块信息
modprobe 根据modules.dep内容加载模块,解决模块依赖性
insmod 加载指定模块
rmmod 移除已加载模块
mkinitrd 重制initrd文件
hash 命令表散列
fc 修改并执行上一个指令
fc -s 执行上一条指令
fc -s a=b 替换上条指令中的a为b,再执行
typeset 定义函数局部变量
command -vV
open
sar 性能分析工具
sysctl
suspend #暂停执行shell
trap #内置命令,当shell接收到sigspec指定的信号时,
arg参数(命令)将会被读取,并被执行。
strace
nohup xxx select
fc #打开一个编辑器去修改或重新执行以前输入的命令
dstat 现实系统负载
slurm 网络流量图形化工具
htop/iotop 系统和IO监控器
sync 同步硬盘数据
4⃣文件处理:
tar -xvzf file.tgz 解压缩
ipcs和ipcrm 查看和删除系统的ipc对象
创建命名管道2种方法:
1 mknod xxx p
2 mkfifo xxx
iotop IO实时监视器
stat 查看文件详细a属性
>a #创建空文件a
fsck /dev/sda7
FHS文件规范
cd - 前一个工作目录
inode block superblock
df -aTh
du ln ln -s
fdisk -l
mount -l
updatedb
umount mount -o ro ...dd
swapon -s
gzip bzip2 tar打包
type -a and filestty
stat
du -sh xxx #size of dir xxx
du -shD xxx #if xxx is link
ls -a /|split -l 10 - file #注意其中第3个-
whatis
find /sbin -perm +7000|xargs ls -l
tar -cvf - /home |tar -xvf -
diff 行字符比较
patch
cmp 字节比较
pr 按页打印
rm -r dir_name
quota RAID LVM
chattr lsattr
lspci|grep VGA
lsusb iostat lspci
ldd 查询程序绑定的动态链接库
link
lshw #查看硬件信息
arecord aplay #ALSA
dmidecode
mdfind mac上的locate
vmstat 系统内存/cpu/磁盘输入输出状态
fuser 找出file被哪个进程占用
lsof 列出进程打开的文件名
redhat:RPM yum ,Debian:dpkg APT预编译打包 SRPM
mktemp
lsblk #显示块设备
readlink
<< #内置输入重定向
dpkg -l
rename
umask
which whereis
cpio
iconv
5⃣用户安全:
文件默认权限为666,目录为777
su user_name
/etc/passwd /etc/group
useradd 新增用户
useradd -D 显示默认值
passwd 给用户设置密码
chage 显示或修改用户密码详细信息
chage -l hopy 列出账号详细密码参数
usermod 修改账户信息
userdel 删除用户
groupadd 新建一个用户组
groupmod 修改组信息
groupdel 删除组
gpasswd 组管理员管理用户组
uid为0为超级用户
sudoer
finger 查询用户信息
4 suid 2 sgid 1 sbit
groups 查看当前user所属群组,第一个为有效群组
newgrp 在新shell中切换有效群组
shadow group gshadow
初始群组 有效群组
chfn 修改用户finger信息
chsh 修改用户shell
id 查询用户uid和gid
ACL setfacl getfacl
su -
login shell and nologin shell
visudo PAM
last 近期用户登入登出情况
lastlog 每个账号最近登入时间
w 显示系统负载以及用户登入信息
who 简化版的w,没有负载信息
write 向特定用户发送信息mesg 控制显示或不显示其他用户发来的信息
wall 向系统中所有用户发送消息
mail 发送或接收邮件
pwck 检查passwd文件内容是否与实际用户相一致
grpck 同上,只是检查组内容
pwconv 将passwd内的账号与密码移动到shadow中
pwunconv 将shadow写回passwd且删除shadow文件,建议不使用
grpconv
chpasswd 读入未加密前的密码,加密后写入shadow中
SELinux :主体进程,目标文件系统,政策 安全上下文
DAC 自主式访问控制,控制主体为用户
MAC 委任式访问控制,控制主体为程序
Mac OS X启用root:
dsenableroot
禁用:dsenableroot -d
6⃣编程:
indent 修正c源代码风格
ldconfig 设置动态运行时绑定
ld.so.conf ld库路径
pkg-config 取得安装库的元信息
expr like $[1 + 4]
make install
for i in nums
for((i=1;i<=$x;i=i+1))
if的高级功能:(()) 数学表达式和[[]]字符串表达式
ary=(aa bb cc dd) #${ary[0]}
m4宏编程
readonly 将变量变为只读
unset 删除变量
ctags 给c代码文件中的函数添加索引
ctags 给c代码文件中的函数添加索引
cflow 打印c代码函数调用树
splint c的lint
7⃣系统环境:
locale 显示本地配置
printf "\033c" 控制台清屏 esc+c
glances 查看实时系统状态
bash -r 启用受限bash
wait 等待指定进程完成
eval 解释执行命令
$! 最后一个进入后台进程的pid
$1 第1个参数
${20}第20个参数
md5sum 计算md5散列
sha1sum 计算sha1散列
sum和cksum 简单计算散列
runlevel 查看当前系统运行级别
uname 查询系统和核心信息
| 管线命令仅处理前一个命令传来的正确信息,即stdout信息。
管线后面第一个一定是指令,且该指令能接受stdin。
printenv 显示env
man -f passwd
export var unset
set env
alias unalias history
/etc/profile
~/.bash_profilep
.bashrc
script -q a.log #start log
ctl+d #end
dmesg 分析核心产生的信息
$0 $1...$5
$# count $@ $* shift
printenv 查看全局环境变量
linux run level
syslogd klogd logrotate
IFS 分隔符 basename dirname
$# $* $@ shift getopt set --
getopts
stty -a
BASH_ENV
chkconfig 管理系统服务默认开机启动与否
sysv-rc-conf #like chkconfig
siege/tsung 命令行压力测试工具
vifm/ranger 命令行资源管理器
串行口终端 /dev/ttyS*
控制台终端 /dev/tty*,/dev/console
伪终端主设备 /dev/ptyAX
伪终端从设备 /dev/ttyAx
X下伪终端从设备 /dev/pts/n
man bash 查看bash内嵌命令帮助
locale -a 查看系统支持的语系
read
ulimit
!d 执行历史记录中最近的d打头的命令
!n 执行第n条历史指令
!! 执行最近一条指令
/etc/services 系统端口号与服务对应表
syslogd 记录系统与网络等服务信息
klogd 记录核心产生的信息
logrotate 轮替日志文件
chroot 更改root目录
lpstat -a 查看已存在打印机
lpadmin 添加删除打印机
lpr lp 打印
lpq 查看打印队列
lprm 删除打印队列
ldconfig 确定动态链接运行时绑定,其缓存的文件列表在 /etc/ld.so.conf里
8⃣数值处理:
bc dc
declare -i sum=1+12
$((1+2))
seq 按格式生成顺序数字集合
$[1 + 2]
zsh 支持浮点运算
ascii 查看编码各种表示
9⃣网络:
netstat
ping -c 1 1.1.1.1 &>/dev/null&&echo 0||echo 1
#or use $?
nmap dig
lynx 终端web浏览器 curl
sendmail mail
mutt #一款邮件客户端
wget
mtr 路由跟踪器iftop/iptrap 流量监控
- 顶
- 0
- 踩
- 0