程序员在Ubuntu安装之后的配置

0. 虚拟机安装过程

vm虚拟机储存为单个文件好,还是储存为多个文件好?

  • 储存为多个文件好。
  • 多文件可以减轻压力,单文件容易造成系统负载大。单文件占用的是磁盘上的某一连续区域,读取速度快占用内存大。多文件分散在各个扇区读取速度一般但是占用内存小。
  • 单个文件的优点是在磁盘度内容相对稳定时,其访问速度相对会快一点,但是如果虚拟磁盘增长很快,或容量变化很大,可能会产生大量碎片,性能下降会很明显。
  • 另一个缺点是如果单文件受损,相当于整个磁盘丢失,代价较大。

1. 设置管理员密码(admin)

执行: sudo passwd root,先输入用户密码,再输入两次管理员密码。

2. 安装vmware tools

解压VMwareTools…tar.gz后,执行:

cd VMwareToolsxx.xx.xx 
sudo ./vmware-install.pl 
reboot

3. 更新软件源

参考:
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

选择合适的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种选取其中一种即可:

  1. sudo /etc/init.d/networking restart
  2. 重启电脑(重启大法好)

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/download.html

下载文件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. 搜狗输入法

参考:
https://pinyin.sogou.com/linux/help.php

安装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. 主题美化

参考:
https://www.zhihu.com/collection/258305480?page=2

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

参考:
https://www.jianshu.com/p/724315d13ad7

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

0x0B.代理的设置

参考 :
http://www.361way.com/linux-proxy/4184.html

posted @ 2020-11-25 16:04  爱吃砂糖橘的白龙  阅读(519)  评论(0编辑  收藏  举报