[转贴] Linux 操作技巧 96例


1. 查看man文件…
nroff -man man/libnet.3 | less
有时候man文件不在系统目录..这时候就可以用上面的方式来查看非标准的man文件

2. 以不同的用户身份运行程序…
su – username -c “where/is/command/line”
有时候需要运行特殊身份的程序…就可以让su来做…

3. 解压bz文件
tar -jvxf some.bz
就是把tar的zvxf 改成jvxf

4. 编辑/etc/inittab后直接生效的方法..
执行init q

5. 让linux连续执行几个命令,出错停止
command1 && command2 && command3 ….

6. linux中的bg和fg管理
当我们打ctrl+z的时候一个任务就被挂起(就是暂停),同时屏幕上返回一个数字,这时候可以用 “bg %数字” 来把这个进程放到后台执行…这个很适合在你忘了加&的时候进行补救…同样 ” fg %数字 “就能让这个进程放到前台来执行了…
job命令用来查看当前的被bg的进程…

7. ctrl+s与ctrl+q
ctrl-s 好象是从终端时代遗传过来的东东, 流量控制, 用来暂停向终端发送数据的. ctrl-q 用来恢复恢复

8. 目录统计教本
保存成total.sh ,然后用total.sh 绝对路径,就会统计路径下目录的大小了
#!/bin/sh
du 1 –max-depth=1 | sort -n|awk ‘{printf “%7.2fM —-> %s\n”,1/1024,2}’|sed ‘s:/.*/\([^/]\{1,\}\):\1:g’

9. grep不显示本身进程
ps -aux|grep httpd|grep -v grep
通过再一次grep -v grep就可以取消显示你所执行的grep本身这个进程,-v参数是不显示所列出的进程名.

10. 自己用的一个统计httpd的脚本
#!/bin/sh
while (true)
do
pstree |grep “*\[httpd\]”|sed ‘s/.*-\([0-9][0-9]*\)\*\[httpd\]/\1/’
sleep 3
done

11. 解压rpm包中的文件
cat gnome-libs-1.4.1.2.90.22.i386.rpm | rpm2cpio | pax -r

12. 去掉apache的manual目录中的所有.en的后缀名
进入到manual目录
find ./ -regex .*\.en|awk -F. ‘{ printf “mv %s.%s.%s.%s %s.%s.%s\n”,1,2,3,4,1,2,3}’|sh

13. linux里如何映射windows里的硬盘
mount -t smbfs -o username=xxx,password=xxx //winxp_ip_or_hostname/sharename /local_path
fc2中已经不需要-t smbfs这个参数了.

14. linux里如何查看可用的硬盘设备
fdisk -l

15. 命令行下制作ISO
用法: mkisofs -a -I -J -r -o filename.iso /目录
用途: 将linux下某个目录中的所有文件做成iso镜像.而且我加上了参数,可以保证你做出来的光盘是在windows下也可以用的 (iso是有文件大小限制的…具体多少偶忘记了)

16. Linux下ISO的虚拟方法
步骤如下:
1. 把 /dev/cdrom 删除,然后运行 ln -s /dev/loop7 /dev/cdrom
2. losetup /dev/loop7 xxx.iso
3. mount /mnt/cdrom
如何换盘:
1. losetup -d /dev/loop7 ;目的是取消这个设备
2. losetup /dev/loop7 yyy.iso ;新的iso文件

17. hosts的用法
host能够用来查询域名,然而它可以得到更多的信息.host -t mx linux.com可以查询出linux.com的MX记录,以及处理mail的host的名字.host -l linux.com会返回所有注册在linux.com下的域名.host -a linux.com则会显示这个主机的所有域名信息.

18. *.bz2文件如何解压缩
使用tar -I 或者bunzip2命令都可以.

19. RPM常见用法
安装rpm包时显示进度并校验包的正确性
用-vh参数:
如 rpm -ivh ipchains-1.3.6-1.i386.rpm 如果用glint或xrpm则不必.
直接通过ftp来安装rpm包 如 rpm -i ftp://ftp.xxx.xxx
校验所有的rpm包,查找丢失的文件 rpm -Va
查找一个文件属于哪个rpm包 如 rpm -qf /usr/bin/who
列出一个rpm包的描述信息 如 rpm -qpi mon-0.37j-1.i386.rpm
列出一个rpm包的文件信息 如 rpm -qpl mon-0.37j-1.i386.rpm

20. 查看系统监听的服务
用法: netstat -ln
解释: “l”表示显示当前系统监听的端口信息;”n”表示端口按照端口号来显示,而不转换为service文件中定义的端口名;若希望了解各个端口都是由哪些进程监听则可以使用p参数.

21. 查看系统运行的进程
用法: ps -auxw
解释: 其中参数”a”表示显示系统中所有用户的的进程;”u”表示输出进程用户所属信息;”x”表示也显示没有控制台的进程;若显示行太长而被截断则可以使用f参数.

22. Linux帐号搬家
对于新账号->
保证将要加入系统的新帐号放在新的位置上,这通过修改/etc/default/useradd文件中的HOME值来实现. 如: HOME=/home2 使新增帐号的主目录建在/home2下.
将已有帐号移至新的位置->
首先,将已有帐号的主目录连带目录属性拷至新位置,可用下面命令:
cp -a /home /home2或cp -rpd /home /home2
然后,修改/etc/passwd文件中相应记录的home_directory域为/home2/username.
这样两步已将旧帐号移至新位置.确保无误后,可删去旧帐号的旧主目录以腾出原文件系统的空间.

23. 启动时屏幕显示的信息
Linux 启动时屏幕显示的信息来不及看清就一闪而过,如果对这些信息感兴趣的话可以在启动完后用命令 dmesg 查看.

24. GRUB引导恢复小法
用启动盘或安装盘(linux rescue)进linux
sh# grub
grub> root (hdx,y)
grub> setup (hd0)
重启
说明: 如果成功会有一个successful……这里的x,如果是一个盘,就是0.如果你所安装的linux的根分区在第二个硬盘上,那x就是1了;y 就是装有linux系统所在的根分区.setup (hd0)就是把GRUB写到硬盘的MBR上.如果我知道我的linux装在第一个硬盘上,但我不知道装在哪个分区上,就可以先输入root (hd0,然后用[TAB]键来补齐,然后就明白了.

25. 测试磁盘性能
用法: hdparm -tT /dev/hd?
例如: hdparm -tT /dev/hda (测试第一个物理硬盘的速度)

26. 将内网的服务对外开放
将192.168.1.2上的8888端口映射到192.168.1.3的8888端口
#iptables -t nat -A PREROUTING -p tcp -m tcp –dport 8888 -j DNAT –to-destination 192.168.1.2:8888
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.2 -p tcp -m tcp –dport 8888 -j SNAT –to-source 192.168.1.3
#iptables -A INPUT -p tcp –dport 8888 -i eth0 -j ACCEPT (视情况而加)

27. 关闭”讨厌”的Linux按键Beep声
vi /etc/.inputrc 增加下面一行
set bell-style none

28. 开机进入图形/文本登陆方式
vi /etc/inittab
id:x:initdefault:
x=3:文本方式 x=5:图形方式

29. 在GRUB中限制系统可使用的内存数量
限制Linux只能使用120MB内存
title Red Hat Linux (2.4.19)
root (hd0,1)
kernel /boot/vmlinuz-2.4.19 ro root=/dev/hda2 mem=120M
initrd /boot/initrd-2.4.18-14.img

30. 如何查找某条命令的相关库文件
在Linux环境下通过ldd命令即可实现,在控制台执行:
ldd /bin/ls
即可得到/bin/ls命令的相关库文件列表.

31. 只列子目录(文件)
ls -F | grep /
你也可以在.bashrc(针对bash)中把该命令作成alias,以后只要敲入sub就可以实现只列子目录的功能.  alias sub = “ls -F | grep /” 同样,ls -l | grep ^-则是只列普通文件.

32. 计算目录下的文件及子目录
ls -al | wc -l

33. RedHat 下显示彩色目录列表
ls -color 可以显示彩色目录列表,其中:  蓝色→目录  绿色→可执行文件  红色→压缩文件  浅蓝色→链接文件  灰色→其他文件
同样你还可以试试ls –color(比前面多-),看看两者的差别吧

34. 列目录时显示中文文件名
在没有打补丁的Linux系统中,我们用ls列目录,发现中文文件名都成了?号.我们可以使用–show-control-chars命令选项来显示.
ls –show-control-chars

35. 改变当前路径下所有目录和文件的所有权
chown -R owner[.group] *
也可以用find命令来实现: find . -exec chown owner[.group] {} ;

36. 改变所有子目录及文件的属性
在你要改变属性的目录下,输入命令:chmod -R 777 *
就可以改变下面所有子目录及文件的属性,不过使用这个命令的时候要特别小心,要是在根目录下打入这个命令,你所有文件的属性都将改变,这就会引起很大的安全性问题.

37. 使用nohup命令
如果你想进程在你退出系统后还能执行,可以使用nohup命令.
如:  nohup tar cf /dev/tape /home &
你退出后再重新登录的话,使用ps命令会发现进程还在执行.

38. 重新启动
Ctrl+Alt+Del 或 init 6 或 shutdown -r now

39. 快速查找文件
查找文件可以用find,但最好是用locate.速度快,参数少.
locate filename
它是在一个数据库里面查找.所以,要记得经常用updatedb命令更新数据库.一般地,我们是在crontab里面加一句,让机子在每天深夜更新数据库.
另外,快速查找命令文件,可以使用whereis.
例如:  whereis rpm

40. 查找Linux命令
如果你想实现某种功能,但是不知道该使用什么命令.你可以试试apropos命令,它也许能帮你找到你想要的命令.例如: 你要”查找”文件,又不知道用什么命令,你可以敲入下面的命令:
apropos search

41. 在同一个命令行上同时执行多条命令
用分号分隔.如编译一个源文件:
#./configure ; make ; make install

42. 用gzip(gunzip)压缩(解压)同一目录下的多个文件
gzip * 或者 gunzip *

43. 在使用less或more时,直接启动vi
在less或者more中打入v键,会立即启动vi编辑器,可以对文件进行编辑.

44. 在使用mail中启动vi
如果你觉得用mail发送邮件编辑起来很不方便,你可以在正文的顶格输入~v,启动vi进行编辑,编辑完后退出vi,回到mail.

45. 观察文件大小变化
使用watch命令,可以反复执行命令.和ls配合,可以达到观察某文件大小变化的效果.
watch ls -| file.name

46. 观看binary文件中的字符串
strings binaryfile

47. 重装Win 9x后lilo失效无法启动Linux
只须先用软盘启动Linux然后运行一次lilo即可.对于RedHat可以用命令mkbootdisk来制作启动盘,例如:  mkbootdisk –device /dev/fd0 2.4.20
其中2.4.20是/lib/modules下的一个目录.

48. 去掉引导区内的lilo信息
安装lilo后如果硬盘数量或分区情况有改变的话将导致硬盘不能启动,这时只需用软盘启动DOS再运行fdisk/mbr即可.

49. 把DOS/Windows改为缺省操作系统
RedHat把Linux作为lilo缺省操作系统,即出现 boot: 提示符后直接回车启动Linux.如果想改为DOS/Windows,修改文件/etc/lilo.conf,把有关启动DOS的部分放在前面,再运行一 次lilo即可.也可以在lilo.conf的配置文件前面加上 Default=dos 其中DOS是DOS/Windows的label

50. 如何使用.iso文件
许多Linux发行版本都有.iso的光盘镜像文件,可以用来刻录光盘.我们也可以在Linux系统下直接使用.  mount -t iso9660 xxxxx.iso /any/path/if/u/like -o loop

51. 显示文件的类型
用命令 file 可以使你知道某个文件究竟是ELF格式的可执行文件,还是shell script文件或是其他的什么格式.  file filename

52. 解压.tar.gz文件
xxxx.tar.gz文件使用tar带zxvf参数,可以一次解压开.  tar zxvf xxxx.tar.gz

53. 后台运行程序
可以在程序后面加”&”符号,让程序在后台运行.例如: 你想用updatedb更新文件路径数据库,又不影响你其他的工作.可以:  updatedb &

54. 强行退出 X
有时候在 X 里由于程序出错鼠标键盘都不起作用,这时候不用着急,因为在Linux下几乎不会像在Win 95里那样恶性死机,你只须同时按下Ctrl+Alt+BackSpace键就可以回到字符界面下了.

55. 压缩可执行文件
可以使用gzexe压缩可执行文件,压缩后的可执行文件仍然可以直接执行.使用本方法可以达到节省磁盘空间的目的(如果你真的需要的话).  gzexe gawk

56. 处理文件名内含有特殊字符的文件
如果有一个文件名叫-file,如果想删除它,键入 rm -file 会显示invalid option,原来由于文件名的第一个字符为”-“,Linux把文件名当做选项了,可以加–解决这个问题,如rm — -file.如果是其他特殊字符的话可以在特殊字符前加一个\,或者用双引号把整个文件名括起来.

57. 快速进入目录
键入 cd ~ 可进入用户的home目录;键入 cd – 可进入上一个进入的目录.

想全部删除以.开头的file或dir时你会如何干?
Wrong-> rm -r /tmp/.*
Correct-> rm -r /tmp/\.*

58. 修改网卡MAC地址
ifconfig eth0 down
ifconfig eth0 hw ether 00:AA:BB:CCD:EE
ifconfig eth0 up
上面的是临时性的你可以加入rc.local让它开机自动执行

59. 查看网卡工作状态
#mii-tool -v
eth0: no link
product info: vendor 00:00:00, model 0 rev 0
basic mode: autonegotiation enabled
basic status: no link
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
SIOCGMIIPHY on ‘eth1’ failed: Operation not supported

60. 如何解决sendmail和sm-client启动爆慢的问题!
造成sendmail和sm-client启动慢是因为解析的问题,解决方法将自己的主机名加入/etc/hosts中即可,例如我的主机名是linuxbox.localdomain则/etc/hosts中应该有一条
192.168.100.1 linuxbox.localdomain linuxbox

61. 信息加蓝色标记的sed语法…
sed -e “s/^-.*/[color=blue]&[\/color]/g” tip>./new

62. 将一个服务加到自启动运行等级中
chkconfig –add httpd
chkconfig –level 3 httpd on
就是把httpd加到chkconfig管理中,并加在第三层启动

63. 在终端下调音量
aumix

64. 将man文件导出为文件并去掉控制符
man command | col -b >col.txt

65. col -b就是去掉控制符的

66. 查看文件夹大小
du ./ –max-depth=1
–max-depth=1是控制显示深度

67. 光驱弹出,弹入
eject -r 弹出
eject -t 弹入

68. 显示最近登入用户
last

69. chkconfig 可以设置系统启动配置
chkconfig httpd on
chkconfig vsftpd on
…….

70. service 可以控制服务的起停
service vsftpd restart
service sendmail stop
……

71. 禁止文件写(包括root)
chattr +i filename

72. 以实时滚动方式查看系统syslog
tail -f /var/log/messages

73. 清空日志:
cat /dev/null > *.log
可加在crontab中完成日志的清空作业。

74. 杀死所有俱指定名字的进程
killall processname

75. 查找含特定字符串的文件
例如查找当前目录下含有”the string you want find…”字符串的文件
find <路径> [-name xxx] | xargs grep “字串” …

76. 查看进程
ps -e
ps -ef
是不同的.你会发现不同的当前run的name.如果发现不同,就说明有可能有人在你的机器作了一些动作

77. 利用xargs对管道输出的信息使用特定程序进行处理
find ~root|xargs chmod a-x

78. 列出远程主机(windows)的共享目录
smbclient -L X.X.X.X(IP) -U 用户名

79. 把远程主机的共享目录temp挂到/mnt
mount -t smbfs -o username=用户名 //X.X.X.X(IP)/temp /mnt

80. 查看win32(fat)分区
fdisk -l (列出分区)(例)/dev/hda6 5000000 fat32
我们要看到这个分区,则:
mkdir win_fat
mount -t vfat /dev/hda6 /win_fat

81. 查找
文件夹
find /path/ \( -type d -name “.*” -exec mv {} ./path \; \)
文件
find /path/ \( -type f -name “.*” -exec mv {} /path/ \; \)

82. 显示该进程打开的文件
lsof -p pid

83. 显示连接打开的文件
lsof -i ◎[ip|hostname] port

84. 显示打开这个目录的文件
lsof directory
(可以在想umount某一目录不成功的时候,查看是不是被别的文件打开了)

85. 显示打开这个文件的进程
lsof file

86. 在ksh下用vi来编辑所有执行过的命令
ksh下执行set -o vi
或者在别的shell下执行ksh -o vi

87. more或者man的时候可以直接使用vi中的一些操作
比如j,k,CTRL+f CTRL+b,/ 等等

88. 想把man的内容导出到文本么?
man ls | col -b >a.txt

89. csh下”^”的一个小用法
% touch 11
% ^11^22
touch 22
%
不过只能替换第一个匹配到的字符串,第二个就匹配不到了

90. tar+compress
tar cvf – ./dir | compress -c >dir.tar.Z
uncompress -c dir.tar.Z|tar xvf –

91. 当前目录下文件太多,用grep会报参数超长…
ls -al|wc -l
12323
grep 123123123 *
Arguments too long.
find . -name “*” | xargs grep 123123123

92. 搜索两个字符串(AAA 与 BBB)很简单, 用管道就成
grep AAA file |grep BBB = cat file|grep AAA|grep BBB
搜索两个字符串(AAA 或 BBB),可以做两次 grep AAA file, grep BBB file
也可以一气呵成:cat file |fgrep ‘AAA (回车!)
grep -E ‘AAA|BBB’ file-name

93. 查看系统中已有的用户
cut -f1 -d: /etc/passwd

94. touch filename
如果filename已存在,则改变文件的日期、时间;
如果filename不存在,则创建一个新的空文件。

95. du -sm <dirname> 察看目录大小

96. num-lock default on
any of /etc/rc.d/*
for t in 1 2 3 4 5 6 7 8
do
setleds +num < /dev/ttyt > /dev/null
done

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s