你陪了我多少年,穿林打叶,过程轰轰烈烈。花开花落,一路上起起跌跌。
重装系统
其实装Debian还是比较友好的,如果你曾在Vmware上安装过Kali那就不需要百度了,按照步骤一步一步来即可。
说点要注意的,首先准备一个8G的U盘,使用USBwriter(100+kb)刻录下载好的ParrotSec.iso镜像文件。
我用的联想笔记本,联想进入BIOS刷机有点不一样,大致步骤如下:
- 开机出现lenovo图标,按F2进入BIOS界面,在Boot中,两项选择设置legacy support与legacy first。移动光标,按F5将下面的USB启动移动到最上面,关于legacy与efi的区别百度一下,这里不作复述。记得插上U盘。
- 设置好后F10保存退出,系统自动重启,出现lenovo图标,按F12进入启动设置,选择USB启动即可。
- 后面的界面和在Wmware中安装Kali一样,若没有经验直接百度。
安装好后大概就是这样
基础知识
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,该方法适用于文件重命名
12. echo '你好'>1.php 生成文件
查看信息/开关服务
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. lscpu 查看 CPU 和处理单元的信息
2. lspci 列出所有的 PCI 总线
3. lspci -v | grep "VGA" -A 12 获取显卡信息
4. lshw 列出多种硬件单元的详细或者概要的信息
5. dmidecode -q 只显示硬件必要的信息
6. dmidecode|more&dmesg |more 查看机器所有硬件信息
7. cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 查看物理CPU个数
8. cat /proc/cpuinfo| grep "cpu cores"| uniq 查看每个物理CPU中core的个数(即核数)
9. cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c&cat /proc/cpuinfo 查看CPU信息(型号)
10.
打包/解压缩
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解压出来
解压缩不同类型的文件
有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:
1)对于.tar结尾的文件
tar -xf all.tar
2)对于.gz结尾的文件
gzip -d all.gz
gunzip all.gz
3)对于.tgz或.tar.gz结尾的文件
tar -xzf all.tar.gz
tar -xzf all.tgz
4)对于.bz2结尾的文件
bzip2 -d all.bz2
bunzip2 all.bz2
5)对于tar.bz2结尾的文件
tar -xjf all.tar.bz2
6)对于.Z结尾的文件
uncompress all.Z
7)对于.tar.Z结尾的文件
tar -xZf all.tar.z
另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它
们,当然要先安装zip和unzip
1)对于.zip
linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参
数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
# zip all.zip *.jpg
这条命令是将所有.jpg的文件压缩成一个zip包
# unzip all.zip
这条命令是将all.zip中的所有文件解压出来
2)对于.rar
要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux不是免费的;可以http://www.rarsoft.com/download.htm下载RARfor Linux 3.2.0,然后安装:
# tar -xzpvf rarlinux-3.2.0.tar.gz
# cd rar
# make
这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
# rar a all *.jpg
这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar扩展名将自动附加到包名后。
# unrar e all.rar
这条命令是将all.rar中的所有文件解压出来
安装软件
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下使用鼠标机会不多,尽量多记住一些快捷键,在工作或者学习的时候能提高效率。
前一个后一个工作区的切换
如果你经常使用工作区,那你就可以用Ctrl + Alt +上/下方向键很容易地进行切换。左箭头切换到上一个工作区,右箭头切换到下一个工作区。
把当前窗口移到另一个工作区
快捷键Shift+ Ctrl + Alt +左/右方向键让你很容易把当前窗口移到指定的工作区。这个快捷键和上面的快捷键很好配合。如果你工作时常常打开很多窗口,但又不想看到桌面 和任务栏挤满程序,你可以用这个快捷键把程序移到另 一个工作区,这样你的桌面就整洁多了。
显示桌面
Ctrl + Alt + D快捷键让你很快地最小化所有窗口,看到桌面。当所有窗口都最小化后,你再按这个快捷键就可以恢复窗口原来的状态。
鼠标右击的键盘快捷键
在大多数程序里,你可以右击显示快捷菜单。其实键盘上 Shift + F10也能达到一样的效果。
重启会话以从崩溃中恢复
按下Ctrl + Alt + Backspace来重启会话,恢复的可能达90%。
快速锁定屏幕
如果你需要离开 电脑 一会儿,可以按下Ctrl + Alt + L很快地锁定屏幕,以防有人使用
反向切换窗口
Alt + Tab是切换窗口的快捷键。如果你再按下SHIft,你就可以反向切换窗口。这个快捷键很有用,当你Alt + Tab按得太快,错过了你想要切换的窗口,按一下shift就可以返回之前的窗口了。
用方向键移动窗口
Alt+F7会激活移动窗口 功能 ,用方向键(上,下,左,右)就可以移到窗口了。
编辑文本快捷键使用
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 -p 222 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下载保存到当前目录下
使用Xshell传递文件
安装相关软件
yum install lrzsz -y
运行命令rz,即是接收文件,xshell就会弹出文件选择对话框,选好文件之后关闭对话框,文件就会上传到linux里的当前目录。
运行命令sz file 就是发文件到windows上(保存的目录是可以配置) 比ftp命令方便多了,而且服务器不用再开FTP服务了。
更简便的方法是直接拖动文件到Xshell里面,就可以完成上传。
服务器部署shadowsocks
首先有一台境外的服务器或者VPS,一般是Linux系统的,ssh链接上去后,使用wget下载ssr然后安装
wget –no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
然后根据提示输入端口,密码,加密方式
在根目录下会生成两个文件sh和txt,直接运行会提示权限不足,使用chmod赋予权限
chmod +x shadowsocks-all.sh
然后执行即可
./shadowsocks-all.sh
执行后ps -A 查看ss-server服务是否开启,然后下载ssr连接即可。
或者使用这个脚本
wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
启动:
/etc/init.d/shadowsocks start
停止:
/etc/init.d/shadowsocks stop
重启:
/etc/init.d/shadowsocks restart
更简单一步操作
wget https://raw.githubusercontent.com/liuyaanng/SSR/master/ssr.sh && chmod +x ssr.sh && ./ssr.sh
本地连接使用ssr
首先下载客户端,地址
选择后缀是.deb的下载后安装,会出现一个小飞机,配置好即可。
因为ssr的流量走到都是socket,所以安装下载之后是没办法直接使用的。安装插件即可,如果实在终端下使用需要安装proxychains,浏览器推荐使用CHROME浏览器,安装SwitchyOmega插件后选择代理模式即可。
apt-get install proxychains
然后修改/etc/proxychains.conf,最后一行的socket改成socket5:1080,每次使用的时候加上proxychains即可,比如
proxychains apt-get install python
浏览器要安装插件,但是安装插件要FQ,可以下载谷歌小助手然后安装插件。
书写Markdown
以前我都是使用自带的remarkable,后来发现升级4.2后不自带了,还要安装。并且感觉remarkable使用起来不方便,还不如使用自带的Atom。
汉化ATOM方法如下:
git clone https://github.com/chinakids/atom-simplified-chinese-menu chinese
cp -r chinese ~/.atom/packages
反正把所有文件复制过去即可。
然后终端下输入
apm install markdown-scroll-sync
即可同步阅览。更多功能移步这里
实施预览需要使用快捷键
ctrl+Shift+m
安装软件应用
折腾中文输入法
在搜狗输入法官网下载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图标,直接点击启动即可,里面的应用直接下载安装即可.
试用期14天,针对16版本号有个补丁。补丁地址,复制到/opt/cxoffice/lib目录替换。
sudo cp winewrapper.exe.so /opt/cxoffice/lib
据说这个网址提供破解版,没有测试过,地址
安装网易云音乐
和安装搜狗输入法一样,去官网下载安装包,网易云的Linux安装包有两个,一个是DEEPIN深度系统定制的,下载第二个即可,我之前安装的时候用dpkg,需要一大堆依赖还要更新源,后来报错了.其实不需要这么麻烦,右键使用Gdebi默认安装即可.
将python2.6升级成2.7
下载Python2.7.5源码
# wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz
解压源代码包
# tar xvf Python-2.7.5.tgz
进入解压目录并安装
# cd Python-2.7.5 # ./configure # make all # make install # make clean # make distclean
将系统默认的python设置为python2.7.5
# rm /usr/bin/python # ln -s /usr/local/bin/python2.7 /usr/bin/python
解决yum不能运行的问题
因为yum是依赖python2.6.6运行的,所以需要对yum做一些修改
# vim /usr/bin/yum
将第一行的#!/usr/bin/python修改为#!/usr/bin/python2.6
升级 python 后,安装 pip 工具
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py ln -s /usr/local/python27/bin/pip2.7 /usr/bin/pip
Python2.6安装pip
有的linxu机器python2.6没有pip,实现安装功能如下:
首先安装epel扩展源
然后下载安装
sudo yum -y install epel-release
sudo yum -y install python-pip
快速截屏
一般来说下载使用Shutter来截屏,但是需要因为是Prel语言写的,Debian上默认安装的p语言好像版本不一样,安装的时候依赖包没有下载成功.
当然使用自带的截图也是可以的,在键盘上F12旁边有个截屏按键,如果想截自定义部分图,按住Shift+PrtSc,即可选定位置截图.
Python问题汇总
更新pip
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade pip
下载别的库可以用这条
pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/