欢迎来到HDUISA wiki,如果这是你的第一次到来,请点击此处注册

Linux

''场景:'' 学长,为什么我要用Linux, Linux比Windows好么?

答: 需要什么,都是为了满足某项需求。 Linux准确来说只是一个内核,并不是像Windows一样的系统,但是对于刚刚接触的人(或老司机)来说,常常把它当做(或懒得解释)和Windows同类的东西。

它只是个内核。

它是和Windows的NT内核一个层次的东西。如果你不知道上面说的是什么意思的话,那么我告诉你它是开源的(开放源代码)也并没有什么卵用。而且使用它(Linux系统)并不能成为你在他人面前炫耀的资本。为什么选择Linux呢?撇开什么教条之类的,只是因为它可以在某些方面满足我们的需求,帮忙我们学习计算机,学习网络,学习渗透提高我们的效率。Windows有Windows的优点,Linux自有Linux的短板。

''场景:''友人A: 我不选Linux开发方向的话,我有必要学习Linux吗?

答: 作为安协的一员,Linux相对于Windows的操作习惯有着很大的差别,单纯喝可乐的快感并不能高过可乐喝完喝奶茶啊!多试试,你会发现更大的世界!

友人A:学长我用的OSX.

亲,挑个喜欢的呗!

选择适合你的Linux发行版

''场景:'' 学长,被你安利后,我想用Linux, 我刚刚搜了一下Linux,吓死宝宝了。 哪里下载啊!

答: Linux具有众多的发行版,不同的发行版之间最大的区别就是'包管理器'和'桌面环境'了。桌面用环境是很重要的,但是对于需要看这词条的你,折腾桌面环境本身并不会让你喜欢上Linux。 Fedora用的是Gnome 3桌面环境,Ubuntu用的是自家的Unity, Kali用的是Gnome 2桌面环境,除此之外还有xfce,KDE和Deepin的桌面,在性能,外观与设备友好度三个方向各有优势。我想在此处画个能力值分布图那种,待上

总之,第一眼看上哪个上哪个呗!

<gallery mode=“packed-hover”>

File:Fedora-logo-icon_400x400.jpg|激进的Fedora!

File:Ubuntu-logo-icon 400×400.jpg|友好的Ubuntu!

File:Kali-linux-logo-400×400.jpg |渗透用Kali!

File:Arch-linux-logo 400×400.jpg |你开心就好Arch! </gallery>

重要的包管理器

比起桌面环境,这个要重要的多,桌面环境你不满意了可以随便换,ubuntu的Unity用着反人类的话(反正我是用得爽爽的)可以直接上Gnome 2/3。Fedora你也可以装个xfce去爽爽。 不同的包管理器都是

YUM Red Hat 系 * Fedora < 22 * Centos ⇐ 目前 * RHEL

APT Debian系 * Ubuntu ⇐ 目前 * Kali *…这就多了

DNF * Fedora >= 22

PACMAN * Arch Linux

还有其它Unix,类Unix的包管理器不作介绍,因为我没用过

以上只算科普,记住了至少能回答什么是Linux.更加详细的资料,如果你有兴趣,可以按照相对应的关键字进行搜索,深入了解(上面这些不怎么重要,下面才是重点)。

与Shell共舞

''场景:'' 我看电影里面那些黑客都是对着黑框框敲敲敲就黑进了XX系统,是不是Linux啊?

答: 黑框框在Linux都要命令行交互终端,简称终端。

Shell这个东西其实是个操作系统都有。狭义上都理解成是个黑框框,有个光标在一闪一闪。但它其实指的是人与机器交互用的程序。本章节皆以狭义解说。 Windows下那个命令提示符是个不完整的MS-DOS模拟器,除此之外还有个powershell。 Linux下的shell是个极其强大的东西,通过命令终端,你可以完成绝大多数Linux上的任务,通过一个闪烁的光标,就可以自由地指挥你的机器,这并不是魔法,这是shell的诗。

Shell并不是一门真正意义上的编程语言,前期不一定要会写,但是Shell脚本至少要看得懂。

对于Shell的学习, 虽然不是一门真正意义上的编程语言,但是你可以把它当作一门编程语言来学习,圣经《linux命令行与shell脚本编程大全》]+ 新说[https://www.google.com/ 各类论坛,博客。多写写就会用了,用过了,就算时间久了,也会记住要点,重新拣回来也很容易,即使全忘光了,你也学会了最宝贵的——自学的方法

那些年与C的恩怨情仇

'' 场景: '' 大黑客Lightless说C语言很重要,选了Linux方向的是不是也要学C语言啊

答: 相当重要。特别是在Linux上。

Linux诞生的故事直接上维基吧,追溯到Unix与C的关系。

大神菊苣们说过了,学什么语言最终啊,都只是因为这语言能够让程序员最快地完成工作罢了。 但是C语言与Linux的关系密不可分,你如果选择了Linux内核开发方向的话,这条路上一定会与C语言同行。 C语言也是安协里各个方向的基础,因为历史原因,C语言影响太大了。 学业方面,也是工科生的必修。

有人说Linux是程序员用的系统,是黑客用的系统,这种说法嘛,不置可否。(wiki上是不是不可以用这种暧昧的说法啊?) 其实是有道理的,因为每一个Linux发行版上,都为程序员搭建开发环境,生产环境准备了最方便快捷的方式。

你要写python? 可以!

你要写ruby? 可以!

你要写Java? 可以!

你要写php? 世界上最好的语言当然可以!

你要写汇编? 可以!

你要写brainfuck? 啪!

你要写OC? 啪!

调教Linux

Linux的不同发行版之间的差别主要是软件包管理器的不同,对于细节一点的差别就是配置文件的位置不同。 有时候需要记得不同发行版之间的差异。 在调教Linux方面的圣经级入门书就是《鸟哥的Linux私房菜》了,总共两本基础篇和服务器架篇。 书中以CentOS为例,讲解了怎么熟悉Linux的设置,操作和使用。怎么把Linux娘从小玩到大。 不想买书的可以到图书馆借,也可以去看在线版。

CentOS是在Fedora功能日臻完善之后,以稳定性为第一要求的发行版本,应用于生产环境的免费版本。

与Debian系的众版本有些许差别,不过Debian系的设置都会兼容CentOS的设置。就启动方式而言,Debian系的ubuntu使用Upstart,而CentOS用的是SysV,但是ubuntu也可以直接按SysV的方式设置,这种情况下ubuntu的Upstart会正常应用SysV的设置。这种情况就是

ubuntu对CentOS进行了兼容。

然后现在都换成了Systemd.

所以前期强肝CentOS或都Fedora吧。大同小异的区别找谷歌,度娘都是可以的。Kira☆~

初遇文件名乱码

如果遇到这个问题可以顺便去学习一个计算机是怎么显示字符的,最开始学习而且最重要的就是ASCII了。然而ASCII标准上的字符远远不能满足人类的需要,所以有很多很多字符集出现了。在使用不同字符集之间的操作系统,比如windows和所有linux发行版之间,字符集从GB2312变成了utf8,自然就会乱了,一般情况下可以通过iconv进行转换。 其实你们不要用中文文件名中文路径就好了。

学会使用VIM

Vim是一款著名的编辑器,功能太多,完全掌握需要一定时间,但在linux上至少得会编辑会保存,学习梯度有点大,注意它是一款编辑器,但是可以武装成IDE,但是不推荐。 要求不高,会用就好。 一般发行版是不带完全功能的Vim的,而是带了Vi,装完之后自己通过包管理器安装最新版即可。 让大黑客美琴教你怎么用VIM。 如果需要桌面用壁纸版或.vimrc文件一发的直接…来找我啊! 美琴教你使用VIM

挥动魔杖时的忠告

更改自己不熟悉的设置选项时一定要有好习惯,备份!备份!备份!

cp dest.conf dest.conf.bak

或者逼格高点

cp dest.conf{,.bak}

不想这么做的话至少你要在文件里面注释啊注释啊注释啊,不要直接dd就删了啊!

Linux的绝对领域

之所以是绝对领域,正是因为是Linux从UNIX那里继承过来的迷人之处(我擦擦口水再说

先从<del>裙子</del>权限讲起

long long ago,UNIX作为商业操作系统价格昂贵不是一般人调教得起的东西,以至于唯一合理的利用方式就是多用户分时上同一台机器,那么问题来了 '_>' 你放在文件夹里的R18的东西被别人发现了肿么办!肿么办!这是个很严重的问题啊!

于是为了捍卫本子,捍卫里番,UNIX使用了严格的权限管理机制,由于炒鸡好用,Linux也采用了相同的权限机制。

简单的来说,对于一个文件(在Linux中一切都是文件)来说,它的调教使用者分为拥有者(owner),组成员(group),和其他人(others),可以对它进行的调教有读取(read),写(write),和执行(execute).

怎么表现出来这个文件的S还是M属性呢

# evilddog@h4ckm3 in ~ [12:16:19]
$ ls -l evilddog.txt 
-rwxrw-r-- 1 root evilddog 16  8月 12 12:16 hahahaha

我们用ls -l查看hahahaha这个文件时,实现出来的前十个字符是文件的属性,第一位是文件的类型先不管,后面九个字符就是三个使用者的三个权限,代表着文件所有者root('_>' 有可读可写可执行的权限,而evilddog用户组(一个用户组也可以有其他的用户成员,也可以没有)只有可读和可写权限,而其他用户只有可读权限。

当然这个权限是可以更改的啊,我的本子怎么能让别人看到!(雾,怎么更改就留给大家去研究~

然后就是<del>大腿(舔舔舔</del>

前面说过Linux虽然只是一个连图形界面(当然大多数发行版本都预装了GUI,比如xfce,Gnome,KDE)都没有的内核,但是在以命令行而不是GUI为界面有一个巨大的好处,就是有把文件操作利用到极致的文化,允许用户以最小的CPU/内存开销管理极其复杂的文件,有尝试过在Windows下查找一个300M以上的txt文件中的一段话吗(笑,因为首先你要保证不出现停止响应的情况下打得开 233333

再比如说我想查看系统中的某个进程的情况,然后我命令一输日了狗的满屏幕都是,怎么找?这个时候就要隆重介绍我们的大腿,哦不,管道。

简单来说就是可以把管道前的命令结果输出当作内容输入给管道后的命令。

比如说,我要在一个服务器日志文件中找到某个IP地址访问服务器的内容,可是日志很庞大内容很多,不可能依靠Ctrl+F找得到全部的内容,我们就可以使用管道和一些过滤条件输出我们想要的内容

# evilddog@h4ckm3 in /home/wwwlog/ [12:45:33]
$ cat access.log | grep 192.168.156.68  
192.168.156.68 - - [04/Aug/2015:17:37:04 +0800] "GET / HTTP/1.1" 200 1153 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.130 Chrome/43.0.2357.130 Safari/537.36" -
192.168.156.68 - - [04/Aug/2015:17:37:04 +0800] "GET /lnmp.gif HTTP/1.1" 200 5683 "http://192.168.156.162/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.130 Chrome/43.0.2357.130 Safari/537.36" -
192.168.156.68 - - [04/Aug/2015:17:37:04 +0800] "GET /favicon.ico HTTP/1.1" 404 564 "http://192.168.156.162/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.130 Chrome/43.0.2357.130 Safari/537.36" -
192.168.156.68 - - [04/Aug/2015:17:37:08 +0800] "GET /tcp-ip.gif HTTP/1.1" 200 784428 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.130 Chrome/43.0.2357.130 Safari/537.36" -
192.168.156.68 - - [04/Aug/2015:17:46:59 +0800] "GET /1.pcap HTTP/1.1" 200 11688 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.130 Chrome/43.0.2357.130 Safari/537.36" -

这样就可以得到IP为192.168.156.68的主机访问服务器内容辣!

再比如说我们可以统计出访问这台服务器的次数最多的前十五个IP地址

# evilddog@h4ckm3 in /home/wwwlog/ [12:55:13]
$ cat wiki.vidar.club.log | awk '{print $1}'| sort -n |uniq -c | sort -nr | head -n 15
   9459 209.9.130.11
    661 209.9.130.8
    384 209.9.130.5
    371 209.9.130.12
    329 209.9.130.13
    252 209.9.130.6
    155 218.75.123.186
     64 14.152.69.117
     59 42.120.74.104
     21 111.0.169.125
     16 223.92.174.129
     14 122.235.235.19
     13 114.226.68.105
     10 183.156.78.63
      9 42.120.160.109

似不似很神奇呢?

* 看不懂没关系,你们只要觉得很厉害然后慢慢去学就好了。————大帝语录

Linux的绝对领域有太多太多,不要因为无知而害怕,因为无知所以才要不停的学习。

打印/导出