• 程序员在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

    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. pedapwndbgchecksec等安装

    针对问题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
    获取包的相关信息,如说明、大小、版本等: apt-cache show package
    安装软件包: sudo apt-get install package
    重新安装软件包: sudo apt-get install package - - reinstall
    删除软件包: sudo apt-get remove package
    删除软件包,包括删除配置文件等: sudo apt-get remove package --purge
    了解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

  • 相关阅读:
    【转】Senior Data Structure · 浅谈线段树(Segment Tree)
    1260:【例9.4】拦截导弹(Noip1999)
    1255:迷宫问题
    1253:抓住那头牛
    1254:走出迷宫
    POJ 3692 幼儿园做游戏 最大团 模板题
    POJ 1466 大学谈恋爱 二分匹配变形 最大独立集
    POJ 3422 矩阵取数 最小费用流拆点+负边
    POJ 2195 一人一房 最小费用流 建图 水题
    POJ 3068 运送危险化学品 最小费用流 模板题
  • 原文地址:https://www.cnblogs.com/Higgerw/p/14036700.html
Copyright © 2020-2023  润新知