程序员在Ubuntu安装之后的配置
0. 虚拟机安装过程
vm虚拟机储存为单个文件好,还是储存为多个文件好?
- 储存为多个文件好。
- 多文件可以减轻压力,单文件容易造成系统负载大。单文件占用的是磁盘上的某一连续区域,读取速度快占用内存大。多文件分散在各个扇区读取速度一般但是占用内存小。
- 单个文件的优点是在磁盘度内容相对稳定时,其访问速度相对会快一点,但是如果虚拟磁盘增长很快,或容量变化很大,可能会产生大量碎片,性能下降会很明显。
- 另一个缺点是如果单文件受损,相当于整个磁盘丢失,代价较大。
1. 设置管理员密码(admin)
执行: sudo passwd root
,先输入用户密码,再输入两次管理员密码。
2. 安装vmware tools
解压VMwareTools…tar.gz
后,执行:
cd VMwareToolsxx.xx.xx
sudo ./vmware-install.pl
reboot
3. 更新软件源
选择合适的Ubuntu版本,复制:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
执行: sudo gedit /etc/apt/sources.list
粘贴后执行: sudo apt-get update
4. 安装 python python3 vim git pip pip3 ipython ipython3 curl netcat rpm unzip alien等软件
执行:
sudo apt-get install python python3
sudo apt-get install git vim netcat curl rpm unzip alien
sudo apt-get install python-pip python3-pip
sudo apt install build-essential python-dev python-setuptools
sudo apt install build-essential python3-dev python3-setuptools
sudo apt install ipython ipython3
5. 安装 mysql 软件
0x01.先下载:
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
0x02.然后查看默认配置文件:
sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = JVop6riHd0jImISH
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = JVop6riHd0jImISH
socket = /var/run/mysqld/mysqld.sock
图有‘user=debian-sys-maint’,即为自动配置的默认用户;‘password=JVop6riHd0jImISH’,即为自动配置的密码。
0x03.默认配置登陆mysql
mysql -u debian-sys-maint -p
提示输入密码,这里要输入的就是上一步的 'password=JVop6riHd0jImISH'
0x04.更改密码
use mysql;
// 下一行,密码改为了root,可以设置成其他的
update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password";
flush privileges;
quit;
0x05.重启mysql
sudo service mysql restart
mysql -u root -p
输入新密码:root
6.配置Sublime Text3
0x01.在 /usr/share/applications 目录下增加 sublime.desktop 文件
sudo vim /usr/share/applications/sublime_test.desktop
0x02.添加如下内容,然后保存。
[Desktop Entry]
Name=Sublime Text 2
Type=Application
Terminal=false
Comment=Edit text files
Exec=/home/anke/Dev/SublimeText2/sublime_text %F
Icon=/home/anke/Dev/SublimeText2/Icon/48x48/sublime_text.png
0x03.搞定,直接在Dash中检索sublime 然后将图标拖到 Launcher 上即可。
7.配置java环境
0x01.下载jdk
访问: https://www.oracle.com/java/technologies/javase-jdk8-downloads.html 下载 jdk-8u251-linux-x64.tar.gz
0x02.创建单独的目录
sudo mkdir /usr/local/java
0x03.将下载的文件复制到我们创建的文件夹下
sudo cp ~/Downloads/jdk-8u251-linux-x64.tar.gz /usr/local/java
0x04.解压缩文件
sudo tar -zxvf jdk-8u251-linux-x64.tar.gz
0x05.配置环境变量
sudo gedit /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME=/usr/local/java/jdk1.8.0_251
注意JAVA_HOME是JDK的目录,也就是那个我们新建的路径。保存并关闭后,使用命令 source /etc/environment
使环境变量立刻生效。
0x06.配置所有用户的环境变量
为了预防重启后,配置的环境变量无效,配置所有用户的环境变量 sudo gedit /etc/profile
在文件的最后添加以下内容:
# set Java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_251
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
执行 source /etc/profile
使全局设置立刻生效。
0x07.重启检验
执行命令 sudo shutdown -r now
后,输入密码重启,打开命令框,输入
java -version
javac -version
8. 配置pip源
执行:
sudo mkdir ~/.config/pip
cd ~/.config/pip
sudo vim pip.conf
sudo vim pip3.conf
都复制进去:
[global]
timeout = 1200
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com
9. 安装zsh、oh-my-zsh主题shell
参考:
https://www.cnblogs.com/EasonJim/p/7863099.html
https://zhuanlan.zhihu.com/p/355493751
10. 访问github加速
首先执行:
nslookup global.ssl.fastly.net #获取域名的IP
nslookup github.com
sudo gedit /etc/hosts
加上如下两行:
151.101.72.249 global-ssl.fastly.net #第一步中获取的ip
192.30.253.113 github.com #此处112还是113根据自己的情况调整
重启网络:下面2种选取其中一种即可:
sudo /etc/init.d/networking restart
- 重启电脑(重启大法好)
11. Apache、Nginx 安装配置
0x01.安装Apache
参考:
https://www.linuxidc.com/Linux/2018-08/153739.htm https://www.cnblogs.com/zhangjiansheng/p/6534571.html
输入命令: apt install apache2 -y
安装完成后运行如下命令重启下: sudo /etc/init.d/apache2 restart
在浏览器里输入http://localhost
或者是http://127.0.0.1
(在Linux配置中已经默认配置为成这个),如果看到了It works!,那就说明Apache就成功的安装了。
默认情况下,您的所有Web内容都位于/var/www/html
中(由 /etc/apache2/sites-enabled/000-default.conf
文件里下面这一行决定: DocumentRoot /var/www/html
)。
0x02.安装nginx
参考:
https://www.cnblogs.com/lovele-/articles/9348547.html
https://blog.csdn.net/zly_ir/article/details/87522426
https://wiki.ubuntu.org.cn/Nginx https://www.linuxidc.com/Linux/2018-05/152257.htm
nginx安装很简单: sudo apt install nginx
安装完成后,请检查Nginx服务的状态和版本:
sudo systemctl status nginx
sudo nginx -v
nginx version: nginx/1.14.0 (Ubuntu)
如果您正在运行防火墙,则还需要打开端口80和443:
sudo ufw allow 'Nginx Full'
防火墙规则已更新
规则已更新(v6)
验证防火墙:
sudo ufw enable
在系统启动时启用和激活防火墙
sudo ufw status # 检查防火墙的状态
状态: 激活
至 动作 来自
* -- --
Nginx Full ALLOW Anywhere
Nginx Full (v6) ALLOW Anywhere (v6)
配置nginx网页
参考:
https://www.linuxidc.com/Linux/2018-05/152258.htm
https://segmentfault.com/a/1190000015797789
https://segmentfault.com/a/1190000022508020
0x03.Apache与Nginx的端口动静分离(Nginx反向代理)
参考:
https://www.jianshu.com/p/ae8bf8fa0d20
https://blog.csdn.net/zwliang98/article/details/83005766?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2
将php文件的请求路由到由Apache做处理。Nginx 占用 80 端口,过滤静态请求,然后动态请求即 Proxy 到 Apache 的 8080 端口。Proxy 反向代理的好处是访问的时候,始终就是 80端口,来访者不会觉察到有任何的区别。变更文件/etc/nginx/sites-available/default
,在server中添加如下代码:
location ~* ^.*\.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;#添加此代码,指向动态服务器的ip地址及端口号
}
修改apache监听的端口号/etc/apache2/ports.conf
:
# Listen 80
Listen 8080
继续修改/etc/apache2/sites-enabled/000-default.conf
:
# <VirtualHost *:80>
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
重启服务
sudo /etc/init.d/nginx reload
sudo /etc/init.d/apache2 reload
12. PHP、phpmyadmin 安装配置
参考:
https://www.jb51.net/article/159383.htm
https://www.cnblogs.com/xpwi/p/9821371.html
https://blog.csdn.net/qq_36357820/article/details/76215992
0x01.通过下列命令安装PHP 7.3:
➜ sudo apt-get install software-properties-common
➜ sudo add-apt-repository ppa:ondrej/php
➜ sudo apt-get update
➜ sudo apt-get install -y php7.3
安装完成后,使用如下命令检查PHP的版本:
➜ php -v
PHP 7.3.17-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Apr 19 2020 07:44:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.17, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.17-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
用如下命令,按需安装PHP扩展模块,安装之前,确保安装正确的PHP版本。
➜ apt-get install php7.3-mysql php7.3-curl php7.3-json php7.3-cgi php7.3-xsl
接下来,我们需要告诉Apache首先提供PHP页面。打开/etc/apache2/mods-enabled/dir.conf文件并将其更改为首先列出index.php:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
重启服务: ➜ sudo systemctl restart apache2 \ sudo /etc/init.d/apache2 restart
编写测试php文件: ➜ sudo gedit /var/www/html/index.php
输入:
<?php
phpinfo();
?>
打开网址输入 127.0.0.1
,进入phpinfo页面。
0x02.安装phpmyadmin
➜ sudo apt-get install phpmyadmin
选择apache2
、设置phpmyadmin登录密码(root)。
安装必要依赖包,因为php7没有默认自带 php-mbstring,php-gettext 这两个包:
➜ sudo apt-get install php-mbstring php7.0-mbstring
➜ sudo apt-get install php-gettext
建立/var/www/html
下的软连接: ➜ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
查看php扩展目录:
➜ php -i | grep -i extension_dir
extension_dir => /usr/lib/php/20180731 => /usr/lib/php/20180731
➜ ls /usr/lib/php/20180731 | grep mbstring
mbstring.so
配置php.ini
:
➜ sudo gedit /etc/php/7.3/apache2/php.ini
extension_dir = "/usr/lib/php/20180731"
display_errors = On "显示错误日志
extension=php_mbstring.so "开启mbstring
最后重启apache: ➜ sudo /etc/init.d/apache2 restart
接下来登录phpmyadmin,打开浏览器,输入 127.0.0.1/phpmyadmin
, 密码就是安装phpmyadmin时候设置的(root)
13. 设置.vimrc
内容与color scheme主题色
参考:
http://vimcolors.com/
https://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=creation_date&direction=descending&search=search
重点是 ~/.vim/colors/
文件夹里面,
➜ ~/.vim/colors ls
fogbell_light.vim fogbell.vim gruvbox.vim sonokai.vim
fogbell_lite.vim greenwood.vim molokai.vim
要访问参考网址,下载一些 主题色.vim 文件放到~/.vim/colors/
文件夹里面并且查看对应主题的安装使用过程。然后编辑~/.vimrc
文件:
set number "显示行号set nowrap "不换行
set ruler
set cursorline
set shiftwidth=4 "默认缩进4个空格
set softtabstop=4 "使用tab时 tab空格数
set tabstop=4 "tab代表4个空格
set laststatus=2 "总是显示状态行
set backspace=indent,eol,start
set expandtab " 使用空格替换tab
set autoindent " 自动缩进
" 颜色模式
colorscheme "gruvbox"
"fogbell "gruvbox "molokai
syntax enable " 语法高亮
filetype on " 文件类型
set encoding=utf-8
colorscheme "xxx" 是设置账主题颜色的命令。
~/.vimrc
文件是vim的配置文件,在每次vim编辑任何文件的时候都会自动读取并设置相关的信息。"source ~/.vimrc"完全是不需要且一定会出错的!!!
14. 渗透工具打造
0x01.安装sqlmap方法:
使用git安装sqlmap: git clone git://github.com/sqlmapproject/sqlmap.git
等到看到有“done”字样的提示,修改一下环境变量:
sudo vim /home/.bashrc 在最后面加上
alias sqlmap = 'python ~/sqlmap/sqlmap.py'
打开一个新到终端,运行sqlmap验证是否正确安装
0x02.安装nmap方法:
下载文件https://nmap.org/dist/nmap-7.80-1.x86_64.rpm
,安装
sudo alien nmap-7.80-1.x86_64.rpm
sudo dpkg -i nmap-7.80-1.x86_64.dpkg
0x03.安装ida pro方法:
下载IDA Pro v6.4 for Linux
吾爱破解里面有链接:https://pan.baidu.com/s/1hNJ5Y7fqs6ONbwvHzv5qnA 密码:sshc
解压,安装32位库 apt-get install iceweasel:i386
进入目录后执行 ./idaq
或 ./idaq64
分别用来打开32位或64位的ELF文件
15. 搜狗输入法
安装fcitx: sudo apt install fcitix
然后下载、安装sogoupinyin_2.3.1.0112_amd64.deb: sudo dpkg -i sogoupinyin_2.3.1.0112_amd64.deb
重启电脑,查看右上角第四个图标,选择配置当前输入法,选择全局配置,查看激活态与非激活态之间的激活键为 Ctrl+Space。
16. peda\pwndbg\checksec等安装
针对问题1: /usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: 没有那个文件或目录
的解决方案是:
sudo apt-get install gcc-multilib
针对问题2: psutil/_psutil_common.c:9:10: fatal error: Python.h: 没有那个文件或目录
,执行
yum -y install python3-devel python-devel #Cent os、Federa
sudo aptitude install python3-dev python-dev #Ubuntu 、Kali
0x01.安装checksec
git clone https://github.com/slimm609/checksec.sh
cd ~/checksec
ls #checksec是一个bash脚本,将其拷贝到任意全局bin目录下方便使用
ChangeLog checksec.sig Dockerfile.ubuntu LICENSE.txt
checksec docker-compose.yml extras README.md
checksec_automator.sh Dockerfile.arch kernel_configs tests
env | grep "^PATH="
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin:/snap/bin
sudo cp ./checksec /usr/bin/ # 上面的路径任选其一
whereis checksec
checksec: /usr/bin/checksec
说明checksec安装成功。
0x02.安装peda
PEDA是为GDB设计的一个强大的插件,全称是Python Exploit DevelopmentAssistance for GDB。它提供了很多人性化的功能,比如高亮显示反汇编代码、寄存器、内存信息,提高了debug的效率。同时,PEDA还为GDB添加了一些实用新的命令,比如checksec可以查看程序开启了哪些安全机制等等。安装指令:
git clone https://github.com/longld/peda.git ~/peda
echo"source ~/peda/peda.py" >> ~/.gdbinit
0x03.安装pwndbg
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
sudo vim ~/.gdbinit
添加: source ~/pwndbg/gdbinit.py
17. 主题美化
Linux系统最大的特色就是可以根据自己的喜好进行自定义配置,想做成什么样的外观都可以,可定制性超强。下面介绍一下我自己的简单美化方案,基于Ubuntu16.04(以后会补充Ubuntu18.04以上系统的方案,也就是基于Gnome桌面的方案)。首先要安装unity tweak tool,待会要通过这个工具来修改主题和图标。
sudo apt-get install unity-tweak-tool
安装Flatabulous主题:
Github地址:
https://link.zhihu.com/?target=https%3A//github.com/anmoljagetia/Flatabulous
sudo add-apt-repository ppa:noobslab/themes
sudo apt-get update
sudo apt-get install flatabulous-theme
安装主题配套的ultra-flat-icons图标:
sudo add-apt-repository ppa:noobslab/icons
sudo apt-get update
sudo apt-get install ultra-flat-icons
安装完成后,打开 unity-tweak-tool
,点击主题,修改为 Flatabulous
,点击图标,修改图标为ultra-flat-icons
18. 小游戏和小命令
0x01.俄罗斯方块
参考:
https://link.zhihu.com/?target=https%3A//github.com/samtay/tetris
sudo snap install tetris-thefenriswolf
cd /snap/tetris-thefenriswolf/bin
cp ./tetris /usr/bin/
0x02.贪吃蛇
通过docker运行贪吃蛇游戏,运行命令如下: docker run -ti dyego/snake-game
0x03.banner
该命令用来打印字符标题,就是用字符(#)拼出大字来,该命令需要先安装:
sudo apt-get install sysvbanner
banner wyb
0x04.figlet
使用一些普通字符生成字符串
sudo apt-get install figlet
figlet hello 或echo hello|figlet
使用参数-f可以指定字体,如:figlet -f slant EastCoke
使用参数-ctf可以使banner居中并且与终端等宽
输出到文件可以使用figlet -p < /path/to/file
0x05.toilet
与figlet一样,它会把文本显示称标题栏,但是效果更好。 首先,安装: sudo apt-get install toilet
然后试一试这个简单的命令: toilet jiang
它比figlet命令的效果更有艺术感。不过,它还可以添加颜色。我们可以运行下列命令看到颜色:
toilet –f mono12(字体) -F metal(滤镜) jiangyao
0x06.ddate
精心调制的混搭日历 sudo apt install ddate
执行: ddate
输出: Today is Setting Orange, the 67th day of Discord in the YOLD 3186
0x07.fortune fortune-zh
在命令行下输入fortune(-zh),就会跳出一句随机的话。sudo apt-get install fortune fortune-zh
0x08.sl
会有一个由字符组成的小火车驶过 sudo apt install sl
0x09.cowsay cowthink oneko
打印一个小牛(或其他动物)说话或想像,内容可自定
第三个命令是在屏幕中有一只小猫追着你的鼠标跑
sudo apt install cowsay cowthink
cowsay hello!
cowthink hello!
oneko
0x0A.factor
分解因数(内置函数): factor 999
输出: 999: 3 3 3 37
0x0B.linuxlogo screenfetch
显示一个logo
sudo apt install linuxlogo screenfetch
linuxlogo
screenfetch
0x0C.pv
你也许曾经看到过电影里的模拟字幕, 它们好像是被实时敲打出来的. 如果我么能在终端里实现这样的效果, 那不是很好?
sudo apt install pv
# 使用方法
echo 打字机啦啦啦 | pv -qL 10
0x0D.终端火焰
sudo apt-get install libaa-bin
aafire
0x0E.在终端中看天气
curl wttr.in
# 也可以指定城市名称,比如
curl wttr.in/zhungeer
0x0F.cmatrix代码雨
sudo apt install cmatrix
cmatrix
0x10.Axel
可以通过打开多个 HTTP或FTP 连接将一个文件进行分段来下载,从而达到加速下载文件的目的。对于下载比较大的文件,该下载工具将特别有用。
Ubuntu中安装方法: sudo apt-get install axel
使用方法:终端下输入:axel url(下载文件地址)
比如下载 axel http://www.linuxidc.com/upload/2008_03/08031120147053.zip
19. docker
0x01.安装相关包
$ sudo apt-get update # 先更新一下软件源库信息
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
0x02.添加软件仓库
官方仓库
# 添加 Docker 官方的 GPG 密钥(为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥)
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 设置稳定版本的apt仓库地址
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable"
阿里云仓库
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
0x03.安装docker
$ sudo apt-get update
$ sudo apt-get install docker-ce # 安装最新版的docker
如果需要安装指定版本的,使用以下命令:
$ apt-cache policy docker-ce # 查看可供安装的所有docker版本
$ sudo apt-get install docker-ce=18.03.0~ce-0~ubuntu # 安装指定版本的docker
0x04.检查docker是否安装成功
$ docker --version # 查看安装的docker版本
20. 高效有用的命令
0x01.查看本机ip地址 ip a \ ip address
0x02.apt-get无法获得锁的情况,如果有,使用下面命令:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
0x03.关于升级特定软件与查看软件版本信息
ubuntu 升级软件:
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
搜寻软件包: apt-cache search xxx
# 可以参考 https://packages.ubuntu.com/
获取软件包的相关信息,如说明、大小、版本等,不管是否已经安装。: apt-cache show package
列出软件包所有来源的版本: apt-cache madison package
列出软件包所有来源的版本,信息会比上面详细一点:apt-cache policy package
安装软件包: sudo apt-get install package
通过apt-get安装指定版本: sudo apt-get install package=version
显示软件包的一些常规信息: apt-cache showpkg package
列出已安装的所有的软件包: apt-cache pkgnames
重新安装软件包: sudo apt-get install package - - reinstall
删除软件包: sudo apt-get remove package
删除软件包,包括删除配置文件等: sudo apt-get remove --purge package
了解package使用依赖: apt-cache depends package
是查看package被哪些包依赖: apt-cache rdepends package
安装package相关的编译环境: apt-get build-dep package
下载package的源代码: apt-get source package
清理无用的包: sudo apt-get clean && sudo apt-get autoclean
检查是否有损坏的依赖: sudo apt-get check
看软件安装位置: dpkg -L xxxx
查看软件是否安装: dpkg -l | grep filename
0x04.aptitude命令
aptitude与apt-get一样,是Debian及其衍生系统中功能极其强大的包管理工具基于大名鼎鼎的APT机制, 整合了 dselect 和 apt-get 的所有功能, 并提供的更多特性,特别是在依赖 关系处理上。
与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。
推荐使用aptitude命令来代替apt-get,下载或者删除依赖包的时候aptitude要比apt-get更好。不过aptitude和apt-get不能混用,要不然互相都不知道对方做了什么。 命令:
aptitude update 更新可用的包列表
aptitude safe-upgrade 执行一次安全的升级
aptitude full-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件
0x05.ufw防火墙命令
参考: https://blog.csdn.net/m0_37864814/article/details/82961996
ubuntu 系统默认已安装ufw.
sudo apt-get install ufw # 安装
sudo ufw enable # 启用
sudo ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。
sudo ufw allow|deny [service] # 打开或关闭某个端口。 例如:
sudo ufw allow smtp # 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp # 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53 # 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 # 允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp # 禁止外部访问smtp服务
sudo ufw delete allow smtp # 删除上面建立的某条规则
sudo ufw enable|disable # 开启/关闭防火墙 (默认设置是’disable’)
0x06.GDB的命令
外部命令: 编译文件时添加-g选项,这个是为GDB保留源程序的符号表选项,不然一会儿你加载程序将出现问题。编译文件时添加-q选项的目的在于消除广告。
内部命令:
aslr 显示/设定GDB的ASLR(地址空间配置随机加载)设置。
aslr on/off 开启/关闭aslr
checksec 检查二进制文件的各种安全选项
dumpargs 函数将要被调用时,显示将要被传入函数的所有参数(默认会在反汇编代码下方自动显示)
dumprop 在给定内存范围中Dump出所有ROPgadgets
elfheader 从调试的ELF文件中获取头信息
readelf 获取elf头信息
elfsymbol 获取non-debugging symbol信息(plt表)
lookup 搜索属于内存范围的所有地址/对地址的引用
patch 从string/hexstring/int开始对存储器进行校正
pattern 生成字符串模板 写入内存用于定位溢出点
pattern create size 生成特定长度字符串
pattern offset value 定位字符串
procinfo 显示来自/ proc / pid /的各种信息
pshow 显示各种PEDA选项和其他设置
pset 设置各种PEDA选项和其他设置
ropgadget 获取二进制或库的常见ROP小工具
ropsearch 在内存中搜索ROP小工具
searchmem|find 在内存中查找字符串,支持正则表达式
shellcode 生成shellcode
skeleton 生成python漏洞利用代码模板
vmmap 可以用来查看栈、bss段是否可以执行
xormem 使用密钥对存储区域进行异或
li m,n 显示第m行到n行的源码
b x 第x行下断点
run/r 执行程序到下一处断点处或末尾
info locals 查看当前函数局部变量
examine/x /[length][format][unit] <addr> 查看指定地址的内存内容
length: 一个正整数,表示从当前地址向后显示几个地址的内容
format: 显示的格式不是查看的格式。和c语言中的格式缩写一样,如
d: 整数integer
s: 字符串string
c: 字符char
u: 无符号整数 unsigned integer
o: 八进制格式显示变量
x: 十六进制格式
f: 浮点数格式float
unit: 连续显示的单位,如
b表示单字节
h表示双字节
w表示四字节
g表示八字节
print/p var 查看变量
0x07.rpm命令
*.rpm格式的软件包,rpm(redhat package manager)
安装rpm: apt install rpm
使用rpm安装软件:
rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net)
-i(install):安装
-v(verbose):显示详细信息
-h(hash):显示进度
--nodeps:不检测依赖性
使用rpm包升级软件:
rpm -Uvh 包全名(可替代安装)
-U(upgrade):升级
使用rpm包卸载软件:
rpm -e 包名(只能跟包名,不能跟包全名,可在任何目录执行)
-e(erase):卸载
--nodeps:不检查依赖性
使用rpm包查询软件:
rpm -q 包名:查询包是否安装
rpm -qa 包名:查询所有已安装的RPM包
rpm -i 包名:查询软件信息
rpm -l 包名:查询包中文件安装位置
0x08.alien
alien工具的作用: 一个将rpm包转换为deb包的工具
alien工具的安装: sudo apt-get install alien
先进入xxx.rpm包的目录,再在终端使用命令: alien xxx.rpm
即可在本目录下生成一个xxx.deb。 然后就可以使用: dpkg -i xxx.deb(或者干脆双击)
来安装deb包。
0x09.snap命令
参考:
https://www.linuxidc.com/Linux/2018-06/152993.htm https://www.linuxidc.com/Linux/2018-05/152385.htm
Snap是Ubuntu母公司Canonical于2016年4月发布Ubuntu16.04时候引入的一种安全的、易于管理的、沙盒化的软件包格式,与传统的dpkg/apt有着很大的区别。
它类似一个容器,里面拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间。
Snap可以让开发者将他们的软件更新包随时发布给用户,而不必等待发行版的更新周期;其次Snap应用可以同时安装多个版本的软件,比如安装Python2.7和Python3.3。Snap的安装包扩展名是.snap,现在支持snap的应用已经越来越多了,snap软件包一般安装在/snap目录下。
#查询已经安装了的软件
sudo snap list
#搜索要安装的Snap软件包
sudo snap find xxxx
#查看Snap软件的更多信息
sudo snap info xxxx
#安装Snap软件包
sudo snap install xxxx
#更换软件安装通道
sudo snap switch –channel=xxxx xxxx
#更新Snap软件包
sudo snap refresh xxxx
#还原到之前版本
sudo snap revert xxxx
#卸载Snap软件
sudo snap remove xxxx
0x0A.添加或删除一个PPA源
添加PPA源的命令为: sudo add-apt-repository ppa:user/ppa-name
添加好更新一下: sudo apt-get update
删除命令格式则为: sudo add-apt-repository -r ppa:user/ppa-name