Debian折腾笔记

你陪了我多少年,穿林打叶,过程轰轰烈烈。花开花落,一路上起起跌跌。

重装系统

其实装Debian还是比较友好的,如果你曾在Vmware上安装过Kali那就不需要百度了,按照步骤一步一步来即可。
说点要注意的,首先准备一个8G的U盘,使用USBwriter(100+kb)刻录下载好的ParrotSec.iso镜像文件。
我用的联想笔记本,联想进入BIOS刷机有点不一样,大致步骤如下:

  1. 开机出现lenovo图标,按F2进入BIOS界面,在Boot中,两项选择设置legacy support与legacy first。移动光标,按F5将下面的USB启动移动到最上面,关于legacy与efi的区别百度一下,这里不作复述。记得插上U盘。
  2. 设置好后F10保存退出,系统自动重启,出现lenovo图标,按F12进入启动设置,选择USB启动即可。
  3. 后面的界面和在Wmware中安装Kali一样,若没有经验直接百度。

安装好后大概就是这样

Debian折腾笔记_第1张图片

基础知识

Debian是Linux的一个发行版,Linux对文件系统的权限管理的很严格,比如你在图形化下复制一个文件发现无法复制,使用命令sudo cp -r xx xx 就可以复制过去,这就是权限管理的问题。有的时候发现没办法运行记得加上sudo,总结一些必知必会的基础知识,方便在日常环境下使用。(这里插一句话,如果想使用Linux系统,但是决定ubuntu或者debian太麻烦了,建议使用国内相对来说比较好用的Linux发行版—deepin,安装过程比较简单,官方网站有很详细的介绍,小学生坐在马桶上都会安装。

文件/文件夹管理

1. ls       列出当前目录下所有文件
2. ls -a    列出当前目录所有文件(包括隐藏文件)
3. ls -l    列出每个文件的详细信息
4. cd ..    返回上级目录
5. cd -     返回上一次打开的目录
6. cd ~        返回主目录
7. cd //    返回根目录
8. mkdir test   创建名为test的文件夹
9. rm -rf test  删除test文件夹和其下所有文件(-r是递归,-f是强制)
10. mv test /var/test   把test文件夹移动到var目录下
11. mv  test test1      把test文件夹重命名为test1,该方法适用于文件重命名

查看信息/开关服务

1. sudo service apache start-stop-restart   开启-关闭-重启apache服务,记得加上sudo,不然权限不够无法启动,如果要开启别的服务比如mysql,直接把apache改成mysql即可(如果不记得mysql密码,cat /etc/mysql/debian.cnf 里面明文存储mysql密码)
2. sudo /etc/init.d/apahce start-stop-restart   同上,如果要开启别的服务比如mysql,直接把apache改成mysql即可
3. uname -a                 查看内核版本
4. cat /etc/issue           查看系统版本
5. hostname                 查看系统
6. cat /proc/cpuinfo        查看CPU信息
7. sudo ethtool eth0        查看网卡状态
8. sudo fdisk -l            查看磁盘信息
9. lshw                     查看硬件信息
10. df -h                   查看剩余空间
11. free -m                 查看内存使用情况
12. ps -A                   查看所有进程
13. kill pid&kill name      结束进程,pid是在ps -A查看对应的数字,name即是进程名
14. du -hs                  查看当前目录大小
15. find . -name 'xxx.py'   寻找文件,文件名可以使用通配符*
16. mysql \.                登陆mysql后,输入\\. var/sqlsetup.sql(sql文件路径)即可安装sql文件 
17. top/w                   查看负载,w后面三个值表示近1分钟,10,15分钟的负载,一般来说0.6是标准健康值
18. grep                    匹配文件
19. wc -l                   统计文件个数
20. |                       把上一个命令的值传递个下一个命令,比如grep '11' xxx.txt|wc -l

打包/解压缩

1. tar 
    1. tar -c 创建包
    2. tar -x 释放包
    3. tar -v 显示过程信息
    4. tar -z 代表压缩包
2. tar --zcvf dabao.tar.gz /var/bin      把/var/bin目录打包压缩成dabao.tar.gz
3. tar --zxvf dabao.tar.gz               把dabao.tar.gz解压出来

安装软件

Linux安装软件有两种方式,第一种是直接在线安装(使用apt-get),第二种是下载到本地然后手动安装(使用dpkg -i xxxx.deb)。

安装软件包

dpkg -i package.deb     //安装本地软件包,不解决依赖关系

apt-get install package  //在线安装软件包

软件安装后相关文件位置

1.下载的软件包存放位置

/var/cache/apt/archives

2.安装后软件默认位置

/usr/share

3.可执行文件位置

/usr/bin

4.配置文件位置

/etc

5.lib文件位置

/usr/lib

详细命令

1. apt-cache serach package             搜索包
2. apt-cache show package               显示这个包的详细信息,比如大小版本说明等
3. sudo apt-get install package         在线安装包
4. sudo apt-get install package --reinstall     重新在线安装这个包
5. sudo apt-get remove package          删除这个包
6. sudo apt-get remove package --purge  删除这个包和这个包的相关配置文件
7. sudo apt-get update                  更新源,在安装新的包之间要先编辑对应的源地址
8. sudo apt-get upgrade                 更新与源对应的所有文件包
9. apt-cache depends package            查看这个包需要依赖的包
10. apt-cache rdepends package          查看这个包被哪些包所依赖
11. sudo apt-get build-dep package      安装相关的编译环境
12. sudo apt-get clean && sudo apt-get autoclean    删除不用的包(清理/var/cacheapt/archive中的deb缓存文件)
13. sudo apt-get check                  检查室友有损坏的依赖包

dkpg安装删除包

1.  dpkg -i package-file-name       安装包
2.  sudo apt-get install -f根据经验,通常情况下会报依赖关系的错误,我们可以使用以下的命令修复安装。
2.  dpkg -r package-file-name       删除包
3.  sudo dpkg -l                    查看已经安装的软件
3.  dpkg -l | grep 'package-file-name'  检查这个包的状态
4.  dpkg -P package-file-name       表示彻底卸载软件包(包括配置文件)

apt-get安装删除包

1. 安装新的文件一般要编辑对应的源文件,比如:

        leafpad /etc/apt/sources.list  查看使用的源,更新编辑源
2. sudo apt-get update                  更新软件源
3. sudo apt-get upgrade                 更新对应源的所有文件
4. sudo apt-get install package         安装包
5. sudo apt-get --reinstall install package     重新安装这个包
5. sudo apt-get remove package          卸载删除包
6. sudo apt-get autoremove package      自动卸载软件但保留其配置文件
7. sudo apt-get autoremove --purge package  自动卸载软件其删除其配置文件

tips: 5 一般用于卸载本地安装的软件,6&7 一般用于在线安装的软件

最佳方法删除与安装包

通过上面的方法基本上都可以删除安装包,但是过程有些累赘,其中有一小步出错后后面就更加让人头疼,在Linux下有一个专门管理安装包的应用,aptitude。

aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。

需要注意的是,与apt一样,安装新的软件之前要跟新源哦~

首先更新源文件

mv /etc/apt/sources.list /etc/apt/sources.list.bak   # 先备份一下

sudo nano /etc/apt/sources.list                      # 编辑文件

# 然后加上下面这些源地址
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
# 更新一下
apt-get update
apt-get upgrade
# 安装apttitude
sudo apt-get install apttitude
# 举个例子,检索并删除PHP
sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
# 这样,就完全删除了PHP
# 然后我在安装PHP,使用apt-get与apttitude一样,我使用apt-get....
sudo apt-get install php5 php-pear php5-mysql php5-gd

aptitude常用命令

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         仅删除过期的包文件

i: 安装软件包   
c: 软件包没有安装,但在系统中有软件包的残留配置   
p: 从系统彻底删除   
v: 虚拟软件包   
B: 已损坏的软件包   
u: 解压文件,但尚未配置软件包   
C: 半配置 - 配置失败需要修复   
H: 半安装 - 卸载失败需要修复  

tips:使用aptitude可以解决python使用pip安装包的时候包的依赖问题:,如安装scipy,matplotlib的时候出现依赖包,自己去安装比较麻烦的问题:
如:sudo aptitude install python-scipy ; sudo aptitude install python-matplotlib

文件权限问题

Linux对文件权限管理很严格,其所对应的概念如下:

w:可写
r:可读
x:可执行
a:可追加

使用ls -l可以查看每个文件的权限,如果需要修改权限可以这么做

chmod u+r xxx.py

这样xx.py就有了可读的权限,若要有读写权限使用u+wr即可,如果要删除相关的权限使用u-wr即可。另一种方式使用数字对应的u+r,比如最常见的chomd 777 xxx.py,r对应4,w对应2,有点麻烦不好记忆,使用u+r就可以了。

快捷键

Linux下使用鼠标机会不多,尽量多记住一些快捷键,在工作或者学习的时候能提高效率。

  1. 前一个后一个工作区的切换

    如果你经常使用工作区,那你就可以用Ctrl + Alt +上/下方向键很容易地进行切换。左箭头切换到上一个工作区,右箭头切换到下一个工作区。

  2. 把当前窗口移到另一个工作区

    快捷键Shift+ Ctrl + Alt +左/右方向键让你很容易把当前窗口移到指定的工作区。这个快捷键和上面的快捷键很好配合。如果你工作时常常打开很多窗口,但又不想看到桌面 和任务栏挤满程序,你可以用这个快捷键把程序移到另 一个工作区,这样你的桌面就整洁多了。

  3. 显示桌面

    Ctrl + Alt + D快捷键让你很快地最小化所有窗口,看到桌面。当所有窗口都最小化后,你再按这个快捷键就可以恢复窗口原来的状态。

  4. 鼠标右击的键盘快捷键

    在大多数程序里,你可以右击显示快捷菜单。其实键盘上 Shift + F10也能达到一样的效果。

  5. 重启会话以从崩溃中恢复

    按下Ctrl + Alt + Backspace来重启会话,恢复的可能达90%。

  6. 快速锁定屏幕

    如果你需要离开 电脑 一会儿,可以按下Ctrl + Alt + L很快地锁定屏幕,以防有人使用

  7. 反向切换窗口

    Alt + Tab是切换窗口的快捷键。如果你再按下SHIft,你就可以反向切换窗口。这个快捷键很有用,当你Alt + Tab按得太快,错过了你想要切换的窗口,按一下shift就可以返回之前的窗口了。

  8. 用方向键移动窗口

    Alt+F7会激活移动窗口 功能 ,用方向键(上,下,左,右)就可以移到窗口了。

  9. 编辑文本快捷键使用

    1. ctrl + k  #从光标开始到文本末剪切所有文本
    2. ctrl + y  #粘贴文本
    3. ctrl + e  #将光标移动到本行末尾
    4. ctrl + a  #将光标移动到本行开头
    5. ctrl + w  #剪切前一个单词
    6. alt  + f  #跳转到下一个空格处
    7. alt  + b  #跳转到上一个空格处
    8. alt  + back  #删除前一个单词
    9. shfit + insert #粘贴一个词(在终端)
    

VIM工具使用

vim新建或打开文本

vim /xxx/xxx.txt

写入内容

键盘:i

进入inster模式,每次从模式中退出需要按esc

保存并且退出

esc --> : --> wq
#w是写入,q是退出,加上!就是强制

转到行首行尾

G   #光标到行尾
gg  #光标到行首

删除本行

dd

回退上次操作

u

复制

yy  #复制本行粘贴
p   #粘贴本行

SSH工具使用

外部连接Linux系统的时候,一般用的是ssh协议连接,win下的远程桌面连接是rdp协议。

安装SSH服务端

apt-get install openssh-server

启动SSH

service sshd start

在Debian下记得加上sudo启动

设置开机启动

chkconfig sshd on

安装SSH客户端

win:Xshell,pytty
linux:apt-get install openssh-clients
登陆:ssh root@ip

SSH免密安全登陆

SSH是非对称加密,分两个文件公钥与私钥,公钥对外开放,私钥放在自己本机,这样登陆服务器的时候就不用输入自己的密码了。

生成私钥

ssh-keygen -t rsa
ssh-keygen -t dsa

有多种加密算法,然后提升输入私钥文件名字,随后ls一下,会发现多了两个文件,即私钥与公钥,后缀加了pub的是公钥。把公钥放在服务器即可。
在服务器的ssh服务端文件夹里使用touch新建一个文件authorized_keys,里面的内容就是之前创建的公钥的内容。
最后别忘了把私钥加在本地的环境当中,即

ssh-add ~/.ssh/xxx_rsa

加载后在直接连接即可。

修改端口

防止爆破,这个对各大黑客不陌生吧。

/etc/ssh/sshd_config

下面有个端口号,直接修改即可。最后别忘了重启ssh服务。

系统用户操作命令

添加用户

useradd
adduser
example : adduser langzi
          passwd  123456
          添加用户密码

删除用户

userdel
example: userdel -r langzi

设置密码

passwd

useradd与adduser都是创建新的用户

在CentOs下useradd与adduser是没有区别的都是在创建用户,在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码。

而在Ubuntu/Debian下useradd与adduser有所不同

1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。

2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。

userdel只能删除用户,并不会删除相关的目录文件。userdel -r 可以删除用户及相关目录。

防火墙设置

安装防火墙

apt-get install firewalld

启动/停止/检查状态

sudo service firewalld start-stop-restart-state #打开-关闭-重启-检查状态

删除/添加某项服务

sudo firewalld-cmd --remove-service=ssh
sudo firewalld-cmd --add-service=ssh
#如上关闭或者开启ssh服务
sudo firewalld-cmd --remove-port=22/tcp
sudo firewalld-cmd --add-port=22/tcp
#效果如上一致

提权/下载/上传操作

提权

首先cd到home目录下,查看有用户名字为langzi.然后用该用户登陆,安装某些软件的时候加上duso提示没有权限,这个时候使用root用户登陆,修改配置文件。

visudo
#最后一行中,使用G调转过去,在all people in .... 中编辑添加
%langzi ALL=(ALL)   ALL
esc --> : --> wq
#保存退出

然后回到浪子账户,可以安装软件。

下载文件

wget/curl 两个都可以
example:下载www.langzi.fun的首页
        wget http:www.langzi.fun 
        # 这样就下载好了我的网站的首页文件

文件上传到服务器

本地文件上传到服务器上。

scp 命令
example: scp xxx.txt langzi@ip:/tmp
         # 把xxx.txt,以langzi用户上传到服务器的tmp目录下

服务器下载文件到本地

scp 命令
example: scp langzi@ip:/tmp/xxx.txt ./
        # 把服务器tmp目录下的xxx.txt下载保存到当前目录下

安装软件应用

折腾中文输入法

在搜狗输入法官网下载Linux版本的安装包.deb,下载到本地后右键Gdebi安装即可,会自动下载所依赖的包,下载后找到控制中心,找到输入法配置的选项就可以看到搜狗输入法成功安装好了,不难.

安装Win下的应用软件

推荐使用Cossover,类似于安卓模拟器,在其官网下载就好.需要注意的是,下载的版本好像只有32位的,所以需要一堆依赖的包,具体操作如下:

    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get -f install
    sudo apt-get install gdebi 
    sudo gdebi /xxxxxxxx.deb

安装好后,在右边的程序栏会出现Cossover图标,直接点击启动即可,里面的应用直接下载安装即可.

安装网易云音乐

和安装搜狗输入法一样,去官网下载安装包,网易云的Linux安装包有两个,一个是DEEPIN深度系统定制的,下载第二个即可,我之前安装的时候用dpkg,需要一大堆依赖还要更新源,后来报错了.其实不需要这么麻烦,右键使用Gdebi默认安装即可.

快速截屏

一般来说下载使用Shutter来截屏,但是需要因为是Prel语言写的,Debian上默认安装的p语言好像版本不一样,安装的时候依赖包没有下载成功.
当然使用自带的截图也是可以的,在键盘上F12旁边有个截屏按键,如果想截自定义部分图,按住Shift+PrtSc,即可选定位置截图.

个人博客:www.langzi.fun
欢迎交流Python开发,安全测试。

你可能感兴趣的:(kali,原创作品)