apt-get
apt-get update 在修改/etc/apt/sources.list或/etc/apt/preferences之后运行该命令,以确保软件包列表最新。
apt-get install packagename 安装一个新软件包
apt-get remove packagename 卸载一个已安装的软件包(保留配置文档)
apt-get remove --purge packagename 卸载一个已安装的软件包(删除配置文档)
apt-get autoremove packagename 删除包及其依赖的软件包
apt-get autoremove --purge packagname 删除包及其依赖的软件包+配置文件,比上面的要删除的彻底一点
dpkg --force-all --purge packagename 有些软件很难卸载,而且还阻止了别的软件的应用,但这条命令有点冒险。
apt-get autocleanapt 会把已装或已卸的软件都备份在硬盘上,所以假如需要空间的话,删除已卸载的软件的备份。
apt-get clean 这个命令会把安装的软件的备份也删除,但是这样不会影响软件的使用。
apt-get upgrade 可以使用这条命令更新软件包
apt-get dist-upgrade 将系统升级到新版本。
apt-cache search string 在软件包列表中搜索字符串。
dpkg -l package-name-pattern 列出任何和模式相匹配的软件包。
apt-cache showpkg pkgs 显示软件包信息。
dpkg -S file 这个文档属于哪个已安装软件包。
dpkg -L package 列出软件包中的任何文档。
apt-file search filename 查找包含特定文档的软件包(不一定是已安装的)
apt-get autoclean 定期运行这个命令来清除那些已卸载的软件包的.deb文档。
vim
:set hls 高亮显示搜索到的字符串
:set nohls 取消高亮显示
vim +10 filename 打开文件后光标跳到第10行行首
:g/^$/d 删除空行
:%s/aaa/bbb/gc 把aaa替换weibbb,g为每行中查找到的都替换,c为确认替换,回车后n为替换当前光标所在的内容,a为替换所有。
dgg 光标以上的行删除
dG 光标以下的行删除
ggyG 全部复制(只是复制到vim自用的寄存器里)
ggVG 全部高亮显示,配合命令 "+y 可复制全部内容到系统剪切板
注:如果没有+寄存器需要安装,参考sudo apt-get install vim-gui-common,验证:打开文件后输入:reg查看安装是否成功
df
df -h 查看磁盘使用情况
du
du -sh 查看当前目前磁盘使用的空间大小
du -d 1 -h 查看当前目录下一级目录的空间大小, -d, --max-depth=N 表示最大递归深度
tar
压缩:tar -zcvf /path/to/abc.tar.gz abc
压缩(不包含某个目录或文件):tar zcf abc.tar.gz --exclude=abc/dir abc
解压:tar -xvf /path/to/abc.tar.gz /path/to
加密压缩:tar -zcvf - abc | openssl des3 -salt -k password -out /path/to/abc.tar.gz
解密解压:openssl des3 -d -k password -salt -in /path/to/abc.tar.gz | tar xzf -
awk
sed
grep
zip
unzip
gzip
zcat
zcat不真正解压缩文件,就能显示zip,tar压缩的压缩包中文件的内容。例子如下:
zcat `find ./ -name "access.log.*.gz"` | awk '{if($7=="/customer/register/"){login[$11]++}}END{for(l in login){print l,login[l]}}'
上述例子中当awk中的数组名为log时报语法错误,换别的就没有问题,先不细究了,记下再说。
wget
文件参数
-o,--output-file=FILE 将软件输出信息保存到文件;
-a,--append-output=FILE将软件输出信息追加到文件;
-d,--debug显示输出信息;
-q,--quiet 不显示输出信息;
下载参数
-t,--tries=NUMBER 是否下载次数(0表示无穷次)
-O --output-document=FILE 指定下载目录和文件名
-nc, --no-clobber 不要覆盖已经存在的文件
-N,--timestamping只下载比本地新的文件
-T,--timeout=SECONDS 设置超时时间
-Y,--proxy=on/off 关闭代理
目录参数
-nd --no-directories 不建立目录
-x,--force-directories 强制建立目录
HTTP参数
--http-user=USER设置HTTP用户
--http-passwd=PASS设置HTTP密码
--proxy-user=USER设置代理用户
--proxy-passwd=PASS设置代理密码
拒绝选项参数
-A,--accept=LIST 可以接受的文件类型
-R,--reject=LIST拒绝接受的文件类型
-D,--domains=LIST可以接受的域名,用逗号分隔
--exclude-domains=LIST拒绝的域名,用逗号分隔
-L,--relative 下载关联链接
--follow-ftp 只下载FTP链接
-H,--span-hosts 可以下载外面的主机
-I,--include-directories=LIST允许的目录
-X,--exclude-directories=LIST 拒绝的目录
telnet
1、telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。
-e 跳过字符来进入 telnet 客户提示。
-f 客户端登录的文件名
-l 指定远程系统上登录用的用户名称。
要求远程系统支持 TELNET ENVIRON 选项。
-t 指定终端类型。
支持的终端类型仅是: vt100, vt52, ansi 和 vtnt。
host 指定要连接的远程计算机的主机名或 IP 地址。
port 指定端口号或服务名。
2、使用Telnet登录
登录命令:telnet HOST [PORT] 例如:telnet 61.152.158.132 23(默认端口)
断开Telnet连接的命令:exit
3、Telnet典型入侵
pass
netstat
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
lsof
lsof abc.txt 显示开启文件abc.txt的进程
lsof -c abc 显示abc进程现在打开的文件
lsof -c -p 1234 列出进程号为1234的进程所打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不止一个)
port --> 端口号 (可以不止一个)
恢复删除的文件:当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。
这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。
除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。
apt-get update 在修改/etc/apt/sources.list或/etc/apt/preferences之后运行该命令,以确保软件包列表最新。
apt-get install packagename 安装一个新软件包
apt-get remove packagename 卸载一个已安装的软件包(保留配置文档)
apt-get remove --purge packagename 卸载一个已安装的软件包(删除配置文档)
apt-get autoremove packagename 删除包及其依赖的软件包
apt-get autoremove --purge packagname 删除包及其依赖的软件包+配置文件,比上面的要删除的彻底一点
dpkg --force-all --purge packagename 有些软件很难卸载,而且还阻止了别的软件的应用,但这条命令有点冒险。
apt-get autocleanapt 会把已装或已卸的软件都备份在硬盘上,所以假如需要空间的话,删除已卸载的软件的备份。
apt-get clean 这个命令会把安装的软件的备份也删除,但是这样不会影响软件的使用。
apt-get upgrade 可以使用这条命令更新软件包
apt-get dist-upgrade 将系统升级到新版本。
apt-cache search string 在软件包列表中搜索字符串。
dpkg -l package-name-pattern 列出任何和模式相匹配的软件包。
apt-cache showpkg pkgs 显示软件包信息。
dpkg -S file 这个文档属于哪个已安装软件包。
dpkg -L package 列出软件包中的任何文档。
apt-file search filename 查找包含特定文档的软件包(不一定是已安装的)
apt-get autoclean 定期运行这个命令来清除那些已卸载的软件包的.deb文档。
vim
:set hls 高亮显示搜索到的字符串
:set nohls 取消高亮显示
vim +10 filename 打开文件后光标跳到第10行行首
:g/^$/d 删除空行
:%s/aaa/bbb/gc 把aaa替换weibbb,g为每行中查找到的都替换,c为确认替换,回车后n为替换当前光标所在的内容,a为替换所有。
dgg 光标以上的行删除
dG 光标以下的行删除
ggyG 全部复制(只是复制到vim自用的寄存器里)
ggVG 全部高亮显示,配合命令 "+y 可复制全部内容到系统剪切板
注:如果没有+寄存器需要安装,参考sudo apt-get install vim-gui-common,验证:打开文件后输入:reg查看安装是否成功
df
df -h 查看磁盘使用情况
du
du -sh 查看当前目前磁盘使用的空间大小
du -d 1 -h 查看当前目录下一级目录的空间大小, -d, --max-depth=N 表示最大递归深度
tar
压缩:tar -zcvf /path/to/abc.tar.gz abc
压缩(不包含某个目录或文件):tar zcf abc.tar.gz --exclude=abc/dir abc
解压:tar -xvf /path/to/abc.tar.gz /path/to
加密压缩:tar -zcvf - abc | openssl des3 -salt -k password -out /path/to/abc.tar.gz
解密解压:openssl des3 -d -k password -salt -in /path/to/abc.tar.gz | tar xzf -
awk
sed
grep
zip
unzip
gzip
zcat
zcat不真正解压缩文件,就能显示zip,tar压缩的压缩包中文件的内容。例子如下:
zcat `find ./ -name "access.log.*.gz"` | awk '{if($7=="/customer/register/"){login[$11]++}}END{for(l in login){print l,login[l]}}'
上述例子中当awk中的数组名为log时报语法错误,换别的就没有问题,先不细究了,记下再说。
wget
文件参数
-o,--output-file=FILE 将软件输出信息保存到文件;
-a,--append-output=FILE将软件输出信息追加到文件;
-d,--debug显示输出信息;
-q,--quiet 不显示输出信息;
下载参数
-t,--tries=NUMBER 是否下载次数(0表示无穷次)
-O --output-document=FILE 指定下载目录和文件名
-nc, --no-clobber 不要覆盖已经存在的文件
-N,--timestamping只下载比本地新的文件
-T,--timeout=SECONDS 设置超时时间
-Y,--proxy=on/off 关闭代理
目录参数
-nd --no-directories 不建立目录
-x,--force-directories 强制建立目录
HTTP参数
--http-user=USER设置HTTP用户
--http-passwd=PASS设置HTTP密码
--proxy-user=USER设置代理用户
--proxy-passwd=PASS设置代理密码
拒绝选项参数
-A,--accept=LIST 可以接受的文件类型
-R,--reject=LIST拒绝接受的文件类型
-D,--domains=LIST可以接受的域名,用逗号分隔
--exclude-domains=LIST拒绝的域名,用逗号分隔
-L,--relative 下载关联链接
--follow-ftp 只下载FTP链接
-H,--span-hosts 可以下载外面的主机
-I,--include-directories=LIST允许的目录
-X,--exclude-directories=LIST 拒绝的目录
telnet
1、telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。
-e 跳过字符来进入 telnet 客户提示。
-f 客户端登录的文件名
-l 指定远程系统上登录用的用户名称。
要求远程系统支持 TELNET ENVIRON 选项。
-t 指定终端类型。
支持的终端类型仅是: vt100, vt52, ansi 和 vtnt。
host 指定要连接的远程计算机的主机名或 IP 地址。
port 指定端口号或服务名。
2、使用Telnet登录
登录命令:telnet HOST [PORT] 例如:telnet 61.152.158.132 23(默认端口)
断开Telnet连接的命令:exit
3、Telnet典型入侵
pass
netstat
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
lsof
lsof abc.txt 显示开启文件abc.txt的进程
lsof -c abc 显示abc进程现在打开的文件
lsof -c -p 1234 列出进程号为1234的进程所打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不止一个)
port --> 端口号 (可以不止一个)
恢复删除的文件:当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。
这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。
除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。