0)序言
1)常用
查看某个命令的路径
which:查看某个命令的路径,该命令在PATH变量配置的路径中寻找命令,并给出第一个查询结果返回
查看用户信息的几种方法
finger
id
groups
删除目录
果目录为空,可以用 rmdir 删除 如果目录不为空,可以用rm -rf 删除
创建符号链接(快捷方式)
ln -s {target-filename} {symbolic-filename}
For example create softlink for /webroot/home/httpd/test.com/index.php as /home/vivek/index.php, enter the following command:
ln -s /webroot/home/httpd/test.com/index.php /home/vivek/index.phpls -l
查看系统启动日志
dmesg | more
grep
忽略大小写
grep -i
随机产生网卡地址
#!/bin/sh
exec 2>/dev/nulldd if=/dev/urandom bs=1 count=6 | od -t x1 | sed '2d;s/^0\+ //;s/ /:/g'
添加path变量的三种方法
1)修改/etc/profile文件,此修改对全局用户有效
2)修改.bashrc文件,可以精确到用户(只对当前用户有效)
3)直接在shell下加入变量,shell退出则失效
按照时间顺序列出文件
ls –t
按照时间逆序列出文件(新文件在后)
ls –rt (r 代表reverse意,可以逆转所有排序)
ls在当前目录下查找某个文件,但不列出子文件夹中的内容
ls –d "pattern"
拷贝一个目录下的所有文件
cp -R
修改fstab后如何不重启加载所有文件系统
mount –a
移动文件夹
mv src dest
查看linux版本
1. 查看内核版本命令:
1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@crowe.devel.redhat.com) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005 2) [root@q1test01 ~]# uname -a Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux 3) [root@q1test01 ~]# uname -r 2.6.9-22.ELsmp 2. 查看linux版本: 1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如: [root@3.5.5Biz-46 ~]# [root@q1test01 ~]# lsb_release -a LSB Version: :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0- ia32:graphics-3.0-noarch Distributor ID: RedHatEnterpriseAS Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 2) Release: 4 Codename: NahantUpdate2 注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。 2) 登录到linux执行cat /etc/issue,例如如下: [root@q1test01 ~]# cat /etc/issue Red Hat Enterprise Linux AS release 4 (Nahant Update 2) Kernel \r on an \m 3) 登录到linux执行cat /etc/redhat-release ,例如如下: [root@q1test01 ~]# cat /etc/redhat-release Red Hat Enterprise Linux AS release 4 (Nahant Update 2) 注:这种方式下可以直接看到具体的版本号,比如 AS4 Update 1 4)登录到linux执行rpm -q redhat-release ,例如如下: [root@q1test01 ~]# rpm -q redhat-release redhat-release-4AS-3 注:这种方式下可看到一个所谓的release号,比如上边的例子是3 这个release号和实际的版本之间存在一定的对应关系,如下: redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3 redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4 redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4 redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1 redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2 redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3 redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4 另:第3)、4)两种方法只对Redhat Linux有效。
2)启动相关
如何自动mount
添加开机启动后自动mount的文件系统,可以通过在fstab中添加项完成,比如添加一个windows的共享连接
修改fstab后如何不重启加载所有文件系统
mount –a
添加一个需要在启动时运行的服务:
方法一:在rc3.d中创建一个link
方法二:在rc.local中加入启动项
init.d,rc[X].d 目录关系
在这个目录下的档案都是连结档,均指向到 /etc/rc.d/init.d 这个目录下,而这个 /etc/rc.d/init.d 目录则是以 Linux 的 rpm 安装方法时,设定一些服务的启动目录。举个例子来说,如果你要重新启动 sendmail 的话,而且你的 sendmail 是以 rpm 来安装的,那么下达 /etc/rc.d/init.d/sendmail restart 就可以直接启动 sendmail 啰!所以你即可知道 /etc/rc.d/init.d 里面档案的主要功能!因此,当你的 run-level 内的 scripts 要启动哪写服务呢,呵呵!就将档案连结到该 init.d 目录下的档案并加以启动即可啰!也就是说『当你以 文字模式 ( run-level=3 ) 启动 Linux 时,你的系统在经过 BIOS、 MBR、 Kernel、 init、/etc/rc.d/rc.sysinit 之后,就会进入 /etc/rc.d/rc3.d 来启动一些服务』啰!不过,需要注意的是,在 rc3.d (或其它目录下 rc0.d ~ rc6.d )目录中 S 开头的档案为执行该服务, K 为开头的档案则是杀掉该服务的意思。那么那些数字代表的意义为何?那就是启动的顺序啦!例如S12syslog 会比S90crond 更早被执行呢!那么为什么要有这些顺序呢?这是有原因的!例如您的主机有要启动 WWW 好了,那么您的网络设定应该要先启动才对吧!所以啰,如果 WWW 先启动,才驱动网络,那么 WWW 自然就一定起不来啦!所以各项服务的启动顺序也是相当重要的!目前 Mandrake 当中,可以使用 chkconfig 来设定开机要启动的服务选项呢!
3)性能相关
查看内存信息
cat /proc/meminfo 查看内存信息
查看系统磁盘的用量
df 命令可以
df –h ,使得展现结果易于人阅读带单位,比如将15176390,写为15G
4)目录权限
-rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
drwxr-xr-x 2 root root 48 9月 6 13:06 vmware当执行ls -l 或 ls -al 命令后显示的结果中,最前面的第2~10个字符是用来表示权限。第一个字符一般用来区分文件和目录: d:表示是个目录,事实上在ext2fs中,目录是个特别的文件。 -:表示这是个普通的文件。 l: 表示这是个符号链接文件,实际上他指向另一个文件。 b、c:分别表示区块设备和其他的外围设备,是特别类型的文件。 s、p:这些文件关系到系统的数据结构和管道,通常非常少见到。下面周详介绍一下权限的种类和设置权限的方法。二、一般权限第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示和所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。-:表示不具有该项权限。
5)软件安装
tar.gz的通用安装步骤
tar –xzf:解压缩
./configuration:生成make文件,一般通过prefix参数来配置目标路径
make:编译
make install:安装
查找用rpm安装的***程序集路径
rpm –qa | grep ***
查看是否安装某软件包
rpm –q 包名称
查找用rpm安装的***程序集路径
rpm –qa | grep ***
使用apt安装
sudo apt install apache2 mysql5
相关介绍
The Advanced Packaging Tool, or APT, is a that works with to handle the installation and removal of software on the and its variants. APT simplifies the process of managing software on computer systems by automating the retrieval, configuration and installation of , either from binary files or by source code.
6)网络相关
查看本机服务端口
netstat –tln
查看某端口对应的程序
lsof –i: 80,或者netstat –anp | grep 端口
关闭防火墙
/etc/rc.d/init.d/iptables stop
打开防火墙
/etc/rc.d/init.d/iptables start
查看当iptable前配置
:iptables –L
抓包与包分析
:tcpdump –i eth1 host XXX.XXX.XXX.XXX and port 80
其他命令如下
tcpdump 的抓包保存到文件的命令参数是-w xxx.cap
抓eth1的包 tcpdump -i eth1 -w /tmp/xxx.cap 抓 192.168.1.123的包 tcpdump -i eth1 host 192.168.1.123 -w /tmp/xxx.cap 抓192.168.1.123的80端口的包 tcpdump -i eth1 host 192.168.1.123 and port 80 -w /tmp/xxx.cap 抓192.168.1.123的icmp的包 tcpdump -i eth1 host 192.168.1.123 and icmp -w /tmp/xxx.cap 抓192.168.1.123的80端口和110和25以外的其他端口的包 tcpdump -i eth1 host 192.168.1.123 and ! port 80 and ! port 25 and ! port 110 -w /tmp/xxx.cap 抓vlan 1的包 tcpdump -i eth1 port 80 and vlan 1 -w /tmp/xxx.cap 抓pppoe的密码 tcpdump -i eth1 pppoes -w /tmp/xxx.cap 以100m大小分割保存文件, 超过100m另开一个文件 -C 100m 抓10000个包后退出 -c 10000 后台抓包, 控制台退出也不会影响: nohup tcpdump -i eth1 port 110 -w /tmp/xxx.cap & 抓下来的文件可以直接用ethereal 或者wireshark打开。 wireshark就是新版的ethereal在Linux的系统下如何才能修改IP信息
以前总是用ifconfig修改,重启后总是得重做。如果修改配置文件,就不用那么麻烦了~
A、修改ip地址
即时生效:
# ifconfig eth0 192.168.0.20 netmask 255.255.255.0
启动生效:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
B、修改default gateway
即时生效:
# route add default gw 192.168.0.254
启动生效:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
C、修改dns
修改/etc/resolv.conf
修改后可即时生效,启动同样有效
D、修改host name
即时生效:
# hostname fc2
启动生效:
修改/etc/sysconfig/network
新启动网络配置
/etc/init.d/network restart
注意:修改机器名后,一般需要修改hosts(/etc/hosts)文件,添加机器名对应的ip
前提: Redhat 系统
ip, 掩码:
编辑 /etc/sysconfig/network-script/ifcfg-eth0
IPADDR=192.168.0.1 NETMASK=255.255.255.0网关:
编辑 /etc/sysconfig/network
NETWORKING=yes HOSTNAME=xx GATEWAY=192.168.0.100 DNS:编辑 /etc/resolv.conf
NAMESERVER=202.96.209.5 注意:上述IP地址都要改成与你的网络配置相对应的IP地址。
7)VI
vim:undo和redo
:u(撤销操作数)
Ctrl+R
vi查找:
命令状态输入/pattern2search,继续查找直接按n
vi粘贴:p
vi剪切:[number]dd或者d[number]d,,number表示要剪切几行
vi拷贝:[number]yy,number是行数
移动到段尾首尾{}
Shift+g移动到文档末尾
d l 删除当前字符(与x命令功能相同)
d 0 删除到某一行的开始位置 d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符) d w 删除到某个单词的结尾位置 d 3 w 删除到第三个单词的结尾位置 d b 删除到某个单词的开始位置 d W 删除到某个以空格作为分隔符的单词的结尾位置 d B 删除到某个以空格作为分隔符的单词的开始位置
8)常用目录作用
/bin 存放使用者最长用的命令,如:cp、ls、cat,等等。
/boot 启动linux时使用的一些核心文件。 /dev 是device(设备)的缩写,这个目录下是所有linux的外围设备。 D:\document\Chat\MyIM\MyIM\bin\Release/etc 这个目录用来存放系统管理所需要的配置文件和子目录。 /home 用户的主目录,比如说有个用户叫wang,那他的目录就是/home/wang也可以用~wang来表示。 /lib 这个目录是存放着系统最基本的动态连接库,几乎所有的应用程序都须用这些共享库。 /lost+found 这个目录平时是空的,当系统不正常关机后,这里就是一些无家可归文件的避难所。 /mnt 这个目录是空的,系统提供这个目录是让用户临时挂接别的文件系统。 /proc 这个目录是一个虚拟目录,它是系统内存映射,我们可以直接通过访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存中。 /root 系统管理员(root)的主目录,作为系统的拥有者的特权。 /sbin s就是super user的意义,也就是说这里存放的是系统管理员使用的管理程序。 /tmp 这个目录是存放一些临时文件的地方。 /usr 我们用到的应用程序的文件几乎都存放这个目录下:/usr/X11R6存放X_Window的目录;/usr/bin存放着许多应用程序;/usr /sbin给超级用户使用的一些管理程序就放在这个里面;/usr/include开发和编译应用程序所需的头文件;/usr/lib存放一些常用的动态连接共享库和静态归档案库;/usr/local这是提供给一般用户的/usr目录,在这里安装软件最合适。/usr/man存放帮助文档。/usr /src开放的源代码就存在这个目录下。 /var 这个目录存放那些不断扩充的东西,为了保持usr的相对稳定,那些才、经常被修改的目录可以放在这个目录下,如/var/log日志文件。
9)其他
关于输入输出">" "<"的意义
cat x y 1> hold 2>&1
结果就是将标准+错误输出到hold;
cat x y 2>&1 1> hold 则是将错误输出重定向到标准输出,而将标准定向到hold。所以错误输出不会进入hold,因为被定向到标准输出。
赋值关系
(1) 1 = hold , 2 += 1;
(2) 2 += 1 , 1 = hold。
Shell脚本相关
shift:将命令行变量列表的第一个变量删除,第二个变量变为第一位,可理解为变量列表头指针移动一位
daemon 语句 和& 符号可以将程序变为后台输出
10)虚拟机安装Linux的一些问题
虚拟机安装花屏调整分辨率
VitualPC有时安装Linux后,进入图形界面会产生花屏,此时需要跳转到命令行模式,调整Xwin的参数,方法如下
启动时,Linux会在加载各启动项前,提示通过键入'I'是否进入交互加载模式(interactive)模式,此时键入I,进入交互模式,逐一手动允许系统项,禁止系统启动xwin
进入命令行模式后,进入/etc/X11/目录,修改X11配置文件中的分辨率,色深等,修改完成后重新启动即可
Linux新版本??内核在装入VirtualPC虚拟机时会出现鼠标不能捕获的问题,可以通过修改grub.conf中内核参数来修正
定位到kernel
在其行末尾添加 i8042.noloop
kernel /vmiluz******* ro root=LABEL=/ *** i8042.noloop
Windows 2008远程桌面,消除只允许一个用户登录限制
12)CollnetSVN 1.1.0 x86 Linux 安装
下载CollnetSVN文件
cp 到安装目录
切换用户到一个普通用户su somebody(一定不能是root,如果实在没有用户,可以用adduser 添加一个,再用passwd username 去修改这个用户的密码)
tar –zxf 解压缩
用刚才这个普通用户的身份运行csvn/bin/csvn start 以及 csvn/bin/csvn-httpd start(一定不能用root)
可以将csvn-httpd添加到启动项,方法是ln –s /csvn/bin/csvn-httpd S99csvn_httpd,重启系统就能看到启动时加载此服务
11)httpd
apache配置转发
<VirtualHost *:80>
ProxyPreserveHost On ServerAdmin a@a.com ServerName search.cd-host.net DefaultLanguage zh-CN AddDefaultCharset utf-8 ProxyPass / ProxyPassReverse / </VirtualHost>
启动light httpd自带的fastcgi:spawn
/usr/local/webserver/php/bin/spawn-fcgi -a 127.0.0.1 -p 10080 -C 64 -u www -f /usr/local/webserver/php/bin/php-cgi