经典*nix命令

经典*nix命令


id   //显示用户的uid,gid,groups信息
echo $LOGNAME //显示登录的用户名
bc  //计算表达式,输入2+3回车计算出5;quit退出
df -k  //以K字节显示文件系统使用情况


vi系列命令
vi *.sql  //假如vi编辑多个文件,用:n切换下一个文件
ESC+":!sh"或:!ksh //执行外部命令
ESC+":20,24 w file" //将文件20-24行放到file文件中
vi -R 只读打开文件

一行命令杀进程inetd

Kill 命令kill -1 `ps -e |grep inetd |awk '{print $1}'`
netstat -a|grep bat 检查batserv程序是否处于监听状态。

more显示文件的时候,想退出按q键,到最前按g键,h键显示帮助,到最后按G

env  **查看环境变量
uname -a  **查看本机型号
hostname  **显示主机名
domainname **显示主机域名

存储,压缩文件

tar -cvf target.tar sourcefilelist //打包
tar -xvf target.tar  //解包
tar -tvf target.tar  //查看包内文件目录结构
compress .tar文件       //压缩为.Z
uncompress .Z文件 //解压缩文件

file *  //查看当前目录下所有文件的格式file * | grep commands
which 程序名 **察看命令文件的位置,这个是一个单独的文件
type 程序名 **察看命令文件的位置,这个是bash内置命令
script从键入script开始,你的所有终端显示内容将被输入到一个文件里(默认为typescript),直至exit或者Ctrl+D退出script环境。这在希望记录大段输入以及输出内容时很有用。

*******************************************
1、搜索含有某个指令的脚本:find /etc 2>/dev/null | xargs grep 'awk ' 2>/dev/null

说明:
find /etc 查找/etc 目录下的所有文件,并显示文件名
2>/dev/null 把所有的错误信息,如权限错误,不能访问等等 重定向倒看不到的虚拟设备,只显示有用信息。(1代表“标准输出”,2代表“标准错误输出”)
| 把前一个命令的输出以管道的方式传给后面的命令
xargs 对输入的每一个参数,循环执行后面的命令
grep 'awk' 在指定文件中查找字符串,这里的输入文件时xargs命令传过来的,每次处理一个find输出的文件名
******************************************
find . | xargs grep "abc" **全文检索,打印出来包含关键字的文件名和行数据

find . -exec grep -l "string" {} /;**全文检索,只显示包含关键字的文件名
find . -name *.cpp grep -l "字符串" {} /;
切换用户并使用该用户的环境配置:su - user

unix上查看本地的ip地址和网卡信息:
hostname  //显示机器名
cat /etc/hosts
netstat -in   //


比如知道文件或程序名为sql,如何知道它在哪呢?which sql

chmod +x filename    //增加执行属性
rm -f file    //删除文件
rm -rf directory     //删除文件夹
cd a*        //就可以进入比如:appp的文件夹
ps -x        //查看属于自己的进程
ps -ef | grep ap*    //查找以ap开头的进程
uname -a  //显示操作系统os类型
用vi编辑器时,ESC+:232  代表跳到252行
用vi编辑器时,ESC+:/banner  代表跳到查找包含banner词的行,用n还可继续查
find . -exec grep -l "string" {} /;    //在当前目录全文查找string串
man ls        //在线帮助man+命令
mv  移动或更改文件、目录名称
pwd  当前目录
cat/more  cat file1 | more
kill PID      //杀死进程
find . -name file1.c

压缩命令
tar -zcvf
.压缩资料
==========
执行格式:compress filename 压缩文件
执行格式:compressdir directory-name 压缩目录

.解压缩还原资料
================
执行格式:uncompress filename     反压缩文件
执行格式:uncompressdir directory-name 反压缩目录


--------------------------------
ls -Rl | more     //以分页方式列出目录下所有文件子目录

查看系统中的使用者:
===================
执行格式: who 或 finger
su username       //进入其他帐号
who am i 

vi模式下:q!离开并放弃保存;wq离开并保存;w保存但不离开vi

df   查看磁盘中可以使用的自由空间
df -t 查看使用百分比例

diff 比较两个文件

more 或 vi 向下翻页用CTRL+D,向上翻页用CTRL+B

l -rt 显示最近更新的文件
sybase:
isql  -U -P -S

unix默认shell采用ksh
在命令行下,使用时先按“ESC”键,
1、按“j”向后查找。
2、按“k"向前查找。
3、按”/“后跟查找关键字,回车匹配查找,按”n"显示下一个满足条件命令行,该功能类似vi中操作。

用esc+k或j上翻或下翻显示历史命令的时候,如何编辑命令呢:

k 上翻,l 光标后移,x删除光标所在的字符,向上箭头把光标移到最后,i 输入新字符


在当前目录(不包括子目录)里搜索文件内容:grep 字符串  *
在当前目录(包括子目录)里搜索文件内容:find . | xargs grep aaa
同时包含词"typedef"和"TIASTRU"
find . | xargs grep typedef.*TIASTRU

.* 匹配任意字符

--------------------------------正则表达式---------
.. 匹配2个字符
abc?(2|9)1    ?匹配0或1个2或9 
abc*([0–9])  *匹配0或多个0-9 
abc+([0–9])   +匹配1或多个0-9 
no@(one|ne)   @严格匹配one和ne 
no!(thing|where)  !不匹配thing或where
---------------------------------------------------

关机
shutdown -y 0

vi里跳到某行用:108


vi嵌入外部文件
ESC+: r 文件路径
vi执行外部命令
ESA+:! ls


sybase:
sp_help 表名    //查表结构等
sp_helpdb 数据库名   //查数据库信息
select @@version    //查看版本

字符串不够8位左补0:
sprintf( szYhtId, "%08s", szTemp);   //不要忘了s
/*转换为INT类型*/
szYhtid = atoi(yhtid);

-------------------------------------------
.本地工作站与远端工作站之间文件传输
====================================
( 必须拥有远端工作站之帐号及密码,才可进行传输工作 )
执行格式: ftp hostname or ftp ip_address
Example :
ftp doc 与远端工作站 doc ,进行文件传输
Name (doc:user-name) : 输入帐号
Password (doc:user-name): 输入密码

ftp>; help 列出 ftp 文件传输,可使用之任何命令。
ftp>; !ls 列出本地工作站,目前目录下之所有文件名。
ftp>; !pwd 列出本地工作站,目前所在之工作目录位置。
ftp>; ls 列出远端工作站目前目录下之所有文件名。
ftp>; dir 列出远端工作站目前目录下之所有文件名(略同於 UNIX 的 ls -l 指令).
ftp>; dir . |more 同上,但每页会暂停(可能不适用 Unix 以外的 ftp)。
ftp>; pwd 列出远端工作站目前所在之目录位置。
ftp>; cd dir1 更改远端工作站之工作目录位置至 dir1 之下。
ftp>; get file1 将远端工作站之文件 file1 ,拷贝到本地工作站中。
ftp>; put file2 将本地工作站之文件 file2 ,拷贝到远端工作站中。
ftp>; mget *.c 将远端工作站中,副文件名为 c 之所有文件,拷贝到本地工作站中。
ftp>; mput *.txt 将本地工作站中,副文件名为 txt 之所有文件,拷贝远端工作站中。
ftp>; prompt 切换交谈式指令(使用 mput/mget 时不用每个文件皆询问yes/no)。
ftp>; quit 结束 ftp 工作。
ftp>; bye 结束 ftp 工作。
注: 从PC与工作站间的文件传输也可通过在 PC端的 FTP指令进行文件传输,指令用法与
上所述大致相同。

例子:
ftp -n -i -v << !
open 199.1.1.11
user aips aips
prompt
as
quote type b 9
lcd /home/usr/aips/yht
cd /home/aips/test
mput *
bye
!

其中:prompt指设置交互提示,这里关闭
lcd 把本地目录切换到/home/usr/aips/yht
==================================================
1.![cmd[args]]在本地机中执行交互shell、exit回到ftp环境,如!ls *.zip。
------------------------------------------


find删除一些旧的文件,但是遇到windows的长文件名时的删除方法:
  find ./ -mtime +300 | awk -F /0 '{printf("/"%s/"/n",$0)}' | xargs -n 1 rm -f
查找某个目录下的具有包含某个字符串的文件并删除:
  find .  -type f -exec grep "232" {} /; -exec rm {} /;
  find .  -type f -exec grep -q "123" {} /; -exec rm {}/;
删除当前计算机系统日期前2天产生的所有文件,包括子目录下所有目录和文件:
  find . -type d -atime +2 -exec /bin/rm -r '{}' 2>/dev/null /;
  find . -type f -atime +2 -exec /bin/rm -r '{}' 2>/dev/null /;


  【原创】批量删除文件修改时间为n天前的文件
 
copy自yesterday.vbs
搞不明白如何将vbs变量传递给cmd变量,算了,用for...('cscript.exe..)..来取了

用法:cmd下

del_day 5

删除文件修改时间为5天前的文件,测试,删除操作务必谨慎
代码:
@echo off

>t_day.vbs  echo ' Yesterday.vbs,  Version 1.01                         
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Written by Rob van der Woude                        
>>t_day.vbs echo ' http://www.robvanderwoude.com                       
>>t_day.vbs echo '                                                    
>>t_day.vbs echo ' Calculate yesterday's date                          
>>t_day.vbs echo    dtmYesterday = DateAdd("d",-%1,Date)             
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Get yesterday's year                                
>>t_day.vbs echo    strYear      = DatePart("yyyy",dtmYesterday)       
>>t_day.vbs echo '                                                   
>>t_day.vbs echo ' Get yesterday's month, add leading zero if necessary
>>t_day.vbs echo    If DatePart("m",dtmYesterday) ^< 10 Then           
>>t_day.vbs echo        strMonth = 0 ^& DatePart("m",dtmYesterday)      
>>t_day.vbs echo    Else                                               
>>t_day.vbs echo        strMonth = DatePart("m",dtmYesterday)          
>>t_day.vbs echo    End If                                             
>>t_day.vbs echo '                                                     
>>t_day.vbs echo ' Get yesterday's day, add leading zero if necessary 
>>t_day.vbs echo    If DatePart("d",dtmYesterday) ^< 10 Then           
>>t_day.vbs echo       strDay = 0 ^& DatePart("d",dtmYesterday)       
>>t_day.vbs echo    Else                                              
>>t_day.vbs echo       strDay = DatePart("d",dtmYesterday)           
>>t_day.vbs echo    End If                                             
>>t_day.vbs echo '                                                    
>>t_day.vbs echo ' Format output for yesterday                         
>>t_day.vbs echo   strYest = strYear ^& strMonth ^& strDay            
>>t_day.vbs echo '                                                    
>>t_day.vbs echo ' echo                                                
>>t_day.vbs echo Wscript.echo( strYest )                               

@echo on
for /f "delims=" %%i in ('cscript.exe //nologo t_day.vbs') do set t_day=%%i
setlocal ENABLEDELAYEDEXPANSION
for /r %%i in (*.*) do set c_day=%%~ti && if "!c_day:~0,2!!c_day:~3,2!!c_day:~6,2!" lss "%t_day:~2,6%" del /q "%%i"
endlocal
cls
@echo =========================
@echo 删除完毕.
@echo =========================


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值