grep

egrep

egrep [command line options] <pattern> [path]

例如:

egrep -i 'picoCTF' *
egrep 'mellon' text.txt
正则表达式

一些常见的基本正则表达式如下

  • . (点)单个字符
  • ? 它前面的字符仅匹配0次或1次
  • ***** 它前面的字符匹配次数大于等于0
  • + 它前面的字符匹配次数大于等于1
  • {n} 它前面的字符匹配次数为n次
  • {n,m} 它前面的字符匹配次数大于等于n且小于等于m
  • [agd] 出现的字符是中括号里面的其中之一
  • [^agd] 出现的字符不能是中括号里面的其中之一
  • [c-f] 中间的杠表示一个范围,在这里是c到f之间的字符
  • () 允许我们将几个字符分成一组
  • ** ** 逻辑或运算
  • ^ 匹配字串的开头
  • $ 匹配字串的末尾

strings

在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。strings命令对识别随机对象文件很有用。

-a --all 扫描整个文件
-f -print-file-name 在显示字符串前先显示文件名
-n –bytes=[number]:找到并且输出所有NUL终止符序列
- :设置显示的最少的字符数,默认是4个字符
-t --radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制
-o :类似--radix=o
-T --target= :指定二进制文件格式
-e --encoding={s,S,b,l,B,L} :选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
@ :读取中选项

配合grep使用

strings -a filename | grep pico

pipe 管道

重定向

command > file将输出重定向到file

command < file 将输入重定向到file

command » file 将输出以追加的方式重定向到file

n > file 将文件描述符为n的文件重定向到file文件

n < file 将文件描述符为n的文件以追加的方式重定向到file

n >& m 将输出文件n和m合并

n <& m 将输入文件n和m合并

« tag 将开始标记tag和结束标记tag之间的内容作为输入

文件描述符

  • 0(STDIN标准输入)
  • 1(STDOUT标准输出)
  • 2(STDERR标准错误输出)

例如

user@shell:/$ ./in-out-err 1> ~/out 2> ~/err

cat

用于连接文件并打印到标准输出设备上

-n 或 –number:由 1 开始对所有输出的行数编号。

-b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 –show-ends : 在每行结束处显示 $。

-T 或 –show-tabs: 将 TAB 字符显示为 ^I。

-A, –show-all:等价于 -vET。

-e:等价于”-vE”选项;

-t:等价于”-vT”选项;

wc

用于计算字数

-c 或 –bytes 或 –chars 只显示bytes数

-l 或 –lines 只显示行数

-w 或 –words只显示字数

env

显示所有的环境变量

gdb使用

disas反汇编

gdb-peda$ disas main

break断点设置

gdb-peda$ break 3
gdb-pead$ break *0x00000000004008df
gdb-peda$ break *main
gdb-peda$ break *(main+132)

格式化输出

gdb-peda$ printf "%s", (char*)flag_buf

scp

scp local_file remote_username@remote_ip:remote_folder/file

scp -r local_folder remote_username@remote_ip:remote_folder

scp -r localdir username@remote_ip:remote_dir

端口 -p port

修改ssh密码

passwd{username}

修改mysql密码

> mysql -u root -p
show database;
use mysql;
set password for root@localhost = password('123')
或者
update user set password = PASSWORD('要更换的密码') where user = 'root'
flush privileges;
select* from typecho_flag;

mysql>set password=password(‘new password’)

mysql>flush privileges

备份数据库

mysqldump -u root -p –databases databasename > /tmp/db.sql

恢复

mysql>source FILE_PATH

source ~/bd.sql

端口

查看端口

netstat -napt
lsof -i

杀掉进程

kill -9 PID

df

df -h查看磁盘占用情况

mv

移动文件,重命名文件/文件夹