15、关于netstat -rn中的flags的解释 U 该路由可以使用。 G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。 H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该 标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网 络号与子网号的组合。 D 该路由是由重定向报文创建的。 M 该路由已被重定向报文修改。 S 该路由是静态路由
16.查询计算机的NETBIOS名 nbtscan -r 192.168.1.0/24 Scans the whole C-class network. nbtscan 192.168.1.25-137 Scans a range from 192.168.1.25 to 192.168.1.137 nbtscan -v -s : 192.168.1.0/24 Scans C-class network. Prints results in script-friendly format using colon as field separator. Produces output like that: 192.168.0.1:NT_SERVER:00U 192.168.0.1:MY_DOMAIN:00G 192.168.0.1:ADMINISTRATOR:03U 192.168.0.2:OTHER_BOX:00U ... nbtscan -f iplist Scans IP addresses specified in file iplist.
17查询NETBOIS名称的计算机IP nmblookup 192.168.0.1 18发送消息到NT机子 smbclient -M NETBIOS
19图形界面显示嗅探 sniffit -i
系统管理: 1、关于sysctl: 其实/etc/sysctl.conf对应的是/proc/sys/目录... 例如要修改/proc/sys/net/ipv4/ip_default_ttl的话,就修改/etc/sysctl.conf文件如下... 添加一行为: net.ipv4.ip_default_ttl=255,也就是把文件夹变成小数点就可以啦 然后执行一次 #sysctl -p 就可以生效啦。
2、如何使用date修改系统时间: $ date 1124170004 此命令将日期设置为 2004 年 (04) 11月 24 日 (1124) 17时 (1700)。 #hwclock写入bios
3、查看Linux分区 #fdisk -l 或者#parted (parted)print 这样可以看到各个分区的类型及大小,不过这两个看到的结果并非相同 #cat /proc/partitions 查看分区卷标: #e2label /dev/hdXn
3、修改系统时间 date -s "2003-04-14 cst",cst指时区,时间设定用date -s 18:10 修改后执行clock -w 写到CMOS
4、如何查看当前运行级别 #runlevel 或者 #who -r
5、修改主机名 主要是三个文件(1)/etc/sysconfig/network-scripts/ifcfg-eth0 (2)/etc/hosts (3)/etc/sysconfig/network
6、在SCO上scosh不能telnet到Linux,要修改TERM #export TERM=ANSI
7、用sysctl -a查看/proc/sys/下各个值
8、查询22端口正运行什么程序 #lsof -i :22
9、使退出登陆后程序继续运行: # disown 或者是 nohup command &
10、Linux共有几种类型的文件: d 目录。 l 符号链接(指向另一个文件)。 s 套接字文件。 b 块设备文件。 c 字符设备文件。 p 命名管道文件。 - 普通文件,或者更准确地说,不属于以上几种类型的文件。
11、针对文件的权限: r 读权限。 w 写权限。 x 执行权限。 s 文件属主和组set-ID。 t 粘性位*。 l 给文件加锁,使其他用户无法访问。
12、redhat的版本如何判断 #cat /proc/version (如何怎么修改使系统启动后就为默认的Jintao Linux v2.0) #cat /etc/redhat-release #cat /etc/issue
13、使用md5sum来校验文件 #md5sum isofile > hashfile #md5sum -c hashfile
14、查看硬盘的使用情况 #df -k 以k为单位 #df -m 以m为单位 #df -h 以人性化单位显示
15、查看目录的大小 #du -sh dirname -s 仅仅显示总计 -h 显示人性化的信息
16、字符模式下设置环境变量 #export 变量名=变量值
17、系统默认的suid/sgid程序 /usr/bin/passwd 如果不让用户自己有权限修改自己密码,可以把其s位去掉 /usr/sbin/userhelper /usr/sbin/userisdnctl /usr/sbin/usrnetctl /sbin/pam_timestamp_check /sbin/unix_chkpwd /sbin/pwdb_chkpwd
18、关于grub 重新安装一次grub #grub-install /dev/hda1
19、关于pam /etc/pam.d
20、自动化任务 cron,at,batch 系统管理员通过cron.deny和cron.allow来禁止和允许用户拥有自己的crontab文件... crontab的格式: 分 时 日 月 星期 要运行的命令(注意使用的命令必须是绝对路径) crontab -e 编辑 crontab -r 删除 crontab -u user 用某用户来执行 crontab -l 列出当前crontab内容 at也通过/etc/at.allow和at.deny文件空子后哪些用户可以使用at命令,哪些不行
21、创建文件时即规定日期 #touch -t 11091531 file //11.09日15:31分
22、物理安全--->防止ctrl_alt_del重新启动服务器 #vi /etc/inittab # Trap CTRL-ALT-DELETE #ca::ctrlaltdel:/sbin/shutdown -t3 -r now 将ca这行给注释掉...
23、判断当前登陆用户 echo $LOGNAME echo $USER id whoami who am i logname
24、关于用户登陆终端的显示: 如果使用网络登陆,则TTY显示为如下: USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 169.254.1.2 6:57am 0.00s 25.28s 0.03s w 如果使用本地登陆,则显示如下: root tty1 - 12:36pm 3.00s 0.43s 0.43s -bash
25、实时查看系统所使用内存 #free -b -s5 5秒循环一次...
26./configure ./configure生成Makefile时查看帮助 ./configure --help 27 关于man 1 用户级命令和应用程序 2 系统调用和内核出错代码 3 库调用 4 设备驱动和网络协议 5 标准文件格式 6 游戏和演示 7 各种文件和文档 8 系统管理命令 9 少见隐秘的内核规范和接口
28.更改终端欢迎信息 vi /etc/motd
29.增强cd功能: cd () { builtin cd "$@" es=$? [ $es -eq 0 ] && echo "$OLDPWD ------------> $PWD" return $es } 将上面这段加入到~/.bashrc中,再用cd时就会告诉你从哪来,到哪去。 [root@LFS ~]#cd /etc /root ------------> /etc [root@LFS etc]# 30.删除特殊文件: 删除以-开头的文件:rm -- -file --表示这是rm最后一个参数 删除乱码文件:一些乱码文件,无法打出它的文件名,通常在gui下也无法删除它 这时可以使用下面这个方法删除: [root@LFS ~]#ls >ls.list 将乱码文件名写入到ls.list中 [root@LFS ~]#vi ls.list 编辑ls.list,首行加上: #!/bin/bash 将ls.list变为shell script 去掉不想删除的文件,在乱码文件名前加上rm: rm asdasd (假设asdasd为乱码) [root@LFS ~]#chmod +x ls.list [root@LFS ~]#./ls.list rm: remove regular file `asdasd'? y [root@LFS ~]#
Shell相关: 1、find命令常见使用方法: 查找名字为conf的目录 #find /目录 -type d -name conf 注意type可能为b,c,d,l等... 查找文件权限为755的文件 #find /目录 -perm 755 -print 如果用八进制,则可以用 #find /目录 -perm -007 -print (跟chmod里的表示方法相同) 查找文件属主为kt的文件 #find /目录 -user kt -print 查找group为kt的文件 #find /目录 -group kt -print 查找名字为file的文件 #find /目录 -name file 查找大小为0的文件 #find /目录 -size 0 忽略某个目录: #find /目录 -name "/目录名" -prune -o -print 查找属主帐户已经被删除的文件: #find /目录 -nouser -print 按更改时间查找文件 #find /目录 -mtime -5 -print 单位是5,查找更改时间在5日以内的文件 查找更改时间在3日以内的文件 #find /目录 -mtime +3 -print 查找更改时间比file1新但比file2旧的文件 #find /目录 file1 ! -newer file2 -exec ls -l {} ; 不仅查询根目录,而且查询子目录 #find /目录 -name file -depth -print 只在当前文件系统内部查询,而不进入其他文件系统 #find /目录 -name file -mount -print 用exec对查找出的文件进行操作 #find /目录 -type f -exec ls -l {} ; //-exec ls -l {} ;则表示执行"ls -l"的操作. 用exec安全模式,在删除前有提示 #find /目录 -name "*.log" -mtime +5 -ok rm {} ; //这样在删除文件前会先提示 根据inode号来取得硬链接 #find /目录 -inum inode号
对find找出的文件执行操作可以使用-exec 执行指令 {} ;也可以使用 | xargs 指令
2、关于if语句的test EXPRESSION1 -a EXPRESSION2 两条语句都为true EXPRESSION1 -o EXPRESSION2 两条语句任意一条为true [-n] STRING String串非零 -z STRING 串的长度为0 STRING1 = STRING2 两个串相等 STRING1 != STRING2 两个串不相等 INTEGER1 -eq INTEGER2 两个整数相同 equal INTEGER1 -ge INTEGER2 INTEGER1大于等于INTEGER2 greater equal INTEGER1 -gt INTEGER2 INTEGER1大于INTEGER2 greater than INTEGER1 -le INTEGER2 INTEGER1小于等于INTEGER2 less equal INTEGER1 -lt INTEGER2 INTEGER1小于INTEGER2 less than INTEGER1 -ne INTEGER2 INTEGER1不等于INTEGER2 not equal FILE1 -ef FILE2 file1跟file2有同个设备和inode号 equal file FILE1 -nt FILE2 file1比file2新 newer than FILE1 -ot FILE2 file1比file2老 older than -b file file存在也是块设备 block -c file file存在且是字符设备 character -d file file存在且是文件夹 directory -e file file存在 exist -f file file存在并是个普通文件 -g file file存在并是SGID -h file file存在并是个符号链接 -G file file存在并被有效的组拥有 -k file file存在并有s位 -L file file存在并是个符号链接 -O file file存在并被有效用户拥有 -p file file存在并是个named pipe -r file file存在并可读 -s file file存在并不为0(greater than 0) -S file file存在并是个socket -t [FD] 文件描述FD ????? 这个主要是为了测试shell是否是交互式... -u file file存在并且s位设置过 -w file file存在并可写 -x file file存在并可执行
3、关于grep的选项 常用的grep选项有: -c 只输出匹配行的行数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n 显示匹配行及行号。 -s 不显示不存在或无匹配文本的错误信息。 -v 显示不包含匹配文本的所有行。 -w 精确匹配某个单词 '' file 精确匹配file文件中的abc字符
精确匹配的三种grep: 1 grep -w "abc" data.f 2 grep '<48>' data.f 3 grep "48>" data.f 常用grep, cniv grep在使用正则表达式的时候,在匹配策略外面最好用单引号来括上
4、关于unset #firstVar=first #set #unset firstVar
5、awk的使用... 精确匹配第三个字符为48的行 awk '{ if($3~/^48$/ ) print $0}' test.txt //注意这里尽管用正则表达式来匹配,但不能用/^48$/,而是可以直接使用^48$ 如果是匹配第三个字符包含48的行 awk '{ if($3~/48/) print $0}' test.txt awk中正则表达式中使用.来表示单个字符,但是shell中使用?匹配单个字符。 用|表示1或2的关系,但只取一个,使用|时,必须使用圆括号括起来,如 awk '$0~/(Yellow|Brown)/' test.txt 用&&表示与的关系,&&的两天最好也要用括号括起来,如 awk '{ if($1=="fist" && $2=="second") print $0}' test.txt 用||表示或的关系,可以取一个,也可以取两个 awk '{ if ($4=="forth" || $5=="fifth") print $0 }' test.txt 同时匹配两个条件的使用: awk '条件1 && 条件2 { print $xxx }'
6、shell中`的作用 表达不清楚了...如 test=`echo $LOGNAME` 则echo $test的结果为echo $LOGNAME的结果...
7、tr的使用 将test.txt中的小写字母转换成大写 tr "[a-z]" "[A-Z]" < test.txt 不能用 tr "[a-z]" "[A-Z]" < test.txt
8、关于shell中控制字符对应的二进制码 字符 代码 ^ 136 ^M 015 tab 011 ^Z 032 响铃 007 空格 040
9、cat的用法 cat -v test.txt 显示转换字符
10、关于参数 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个 $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的进程ID号 $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数 $- 显示shell使用的当前选项,与set命令功能相同 $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
11、关于sed sed -n '2p' test.txt //打印test.txt中第二行的内容 sed -n '1,3p' test.txt //打印test.txt中第一到第三行的内容 单引号有无无所谓,","表示行到行 sed -n '4,/The/p' test.txt //打印第四行中匹配The sed -n '1,$p' quote.txt //打印整个文件 sed 's/a/b/8' //替换每行中匹配第8a,改为b sed = filename | sed 'N;s/ /:/' filename 正则表达式: 字符类 描述 [:alnum:] 字母数字 [a-z A-Z 0-9] [:alpha:] 字母 [a-z A-Z] [:blank:] 空格或制表键 [:cntrl:] 任何控制字符 [:digit:] 数字 [0-9] [:graph:] 任何可视字符(无空格) [:lower:] 小写 [a-z] [:print:] 非控制字符 [:punct:] 标点字符 [:space:] 空格 [:upper:] 大写 [A-Z] [:xdigit:] 十六进制数字 [0-9 a-f A-F] 利用sed来定位 xx为一行号,如1 x,y 表示行号范围从x到y,如2,5表示从第2行到第5行 /pattern/ 查询包含模式的行。例如/ disk /或/[a-z]/ /pattern/pattern/ 查询包含两个模式的行。例如/ disk/disks/ pattern/,x 在给定行号上查询包含模式的行。如/ ribbon / , 3 x,/pattern/ 通过行号和模式查询匹配行。3 . / vdu / x,y! 查询不包含指定行号x和y的行。1 , 2 !
12、关于test 可以使用如下命令判断文件是否可写 (1)#[ -w fruit.txt ] //注意其中空格 #echo $? (2)#test -w fruit.txt #echo $? 这里根据返回的状态来判断是否可写,如果返回0,则表示可写。0就表示成功...
13、关于expr 首先请注意,必须是整数计算... #expr 10+10 结果为10+10 #expr 10 + 10则结果为20 用乘号时需要用转义..
14 shell中的系统变量 $LOGNAME 当前用户的名字...
15 一般需要用屏蔽的字符 $.'"*[]^|0+?
16 关于正则表达式 匹配某字符出现次数 pattern{n} 匹配模式出现n次。 pattern{n,} 匹配模式出现最少n次。 pattern{n,m} 匹配模式出现n到m次之间,n , m为0 - 2 5 5中任意整数。
17 正则表达式 用来匹配IP: '[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]' 等同 '[0-9]{3}.[0-9]{3}'
18 使用gpg校验 #gpg --verify xxx.asc
程序使用: 关于vim的使用: 替换当前行的某个单词 :s/old/new/g 替换全文所有符合的单词 :%s/old/new/g 替换全文所有符合的单词并让用户确认: :%s/old/new/gc
:set ai 自动缩进 :syntax on 语法高亮 :set nu 显示行号
:set showmatch 自动匹配{}[]() :set all 显示所有选项。 :ce 光标所在文本居中 :le 光标所在文本左对齐 :ri 光标所在文本右对齐 :% ce 全文居中 :1,10 ce 1--10行居中 :set paste 粘贴模式,此时向vi中复制格式化后的文本,原样的贴上,vi不会对其缩进 :n :N vi同时编辑多个文件时(vi file1 file2),切换文件,n(向后) N(向前) vi中也有TAB命令补全功能,使用方法同bash shell |
|