2010年10月21日 星期四
計算輸出的訊息的整體資料:wc
修改檔案時間或建置新檔: touch
2010年10月18日 星期一
nohup.out删除後對於執行nohup.out的進程會有影響嗎?
| 以下轉載至http://bbs.chinaunix.net/thread-558213-1-1.html -- nohup.out删除后,对执行nohup的进程有影响吗? 一个指令,用nohup的方式执行, 如 “#nohup cmd &” 它会在当前目录下生成一个nohup.out的log文件,现在删除这个nohup.out文件,会对执行的cmd这个命令有影响吗? Ans:
|
2010年10月17日 星期日
linux常用命令 - ps指令
功能说明:报告程序状况
语法:ps[ aAcdefHjlmNVwy][acefghLnrsSTuvxX][ C 指令名称][ g 群组名称][ G 群组识别码][ p 程序识别码]
[p 程序识别码][ s 阶段作业][ t 终端机编号][t 终端机编号][ u 用户识别码][ U 用户识别码][U 用户名称][ 程序码]
[ cols 每列字符数][ columns 每列字符数][ cumulative][ deselect][ forest][ headers][ help][ info]
[ lines 显示列数][ no headers][ group群组名称][ Group 群组识别码][ pid 程序识别码][ rows 显示列数]
[ sid 阶段作业][ tty 终端机编号][ user 用户名称][ User 用户识别码][ version][ width 每列字符数]
备注:ps 是用来报告程序执行状况的指令,您可以搭配 kill 指令随时中断,删除不必要的程序
参数:
-A 显示所有程序
-N 显示除了下指令终端外的所有程序
-a 显示所有终端下的程序,除了 session leaders
-d 除了 session leaders 外的所有程序
-e 显示所有程序
T 显示现行终端本身的所有程序
a 显示现行终端本身的所有程序,包括其他使用者
g 显示现行终端本身的所有程序,包含 group leaders
r 显示现行终端本身正在執行的程序
x 显示所有程序,不以终端来区分
--deselect 与-N作用相同
-C 显示指令名称
-G 显示指定的群组(RGID)程序 (也可以使用群组名称)
-U 显示指定的用户(PID)程序 (也可以使用用户名称)
-g 显示 session leader 或群组名称
-p 显示指定的 PID
-s 指定 sessions 程序,显示所有其下的程序
-t 显示指定的 tty
-u 显示指定用户的程序(也可以使用用户名称)
U 显示指定用户的所有程序(也可以使用用户名称)
p 显示指定的 PID
t 显示指定的 tty
--Group 同 -G 参数
--User 同 -U 参数
--group 同 -G 参数
--pid 显示指定的程序 ID
--sid 显示指定的 session ID
--tty 显示指定的 tty
--user 同 -U 参数
输出格式控制参数
-c 显示 CLS, PRI 列项
-f 显示 UID,PPIP,C 与 STIME 列项
-j 工作控制格式显示
-l 长格式显示
-y 不显示 flags 列项,並以 rss 取代 addr 列项
X 老 Linux i386 登录格式显示
j 工作控制格式显示
l 长格式显示
s 程序信号格式显示
u 使用者格式显示
v 虚拟内存格式显示
输出格式变更
-H 以树状结构显示,以体现程序间的关系
-m 显示所有执行者
-w 以宽格式显示
S 显示的所有的程序且包含已中断的程序
c 显示真正的指令名称
e 显示指令的执行环境
f 以 ASCII 字符显示程序的树状结构,以表示程序间的关系
h 不显示信息的标题
m 显示所有执行者
n WCHAN 与 USER 列项以数字输出
w 宽格式显示
--cols 设定屏幕宽度
--columns 设定屏幕宽度
--cumulative 同 S 参数
--forest 以 ASCII 字符显示程序的树状结构,以表示程序间的关系
--no-headers 与 h 参数相同
--lines 设定屏幕高度
--rows 设定屏幕高度
--width 设定屏幕宽度
指令信息
-V 显示指令版本
L 列出所有列项及其说明
V 显示指令版本
--help 显示指令的帮助
--info 显示排错信息
--version 显示指令版本
如果只看到ps指令(2个字母而已)你可能会,但看到其参数你估计就只能...下面列出了常用的几个参数组合
ps axu
可以让我们得到系统内所有使用者正在执行的所有程序.通常使用axu的目的是观察系统运行的状态或者观察daemon启动的状态
ps axu | grep [pattern]
同ps axu的作用一样,不过会在ps axu的输出数据中查找匹配pattern的信息
ps ex -U [PID|用户名称]
一般用来观察某个使用者在系统中存在的所有程序,并显示执行指令的环境变量
vmware 網路設定實例
--
vmware 網路設定實例二 : windows xp host + linux guest
上一篇寫了一個vmware的設定的一個案例,主要關於linux host+windows guest的情況,適用於經常跑linux而把windows當成副業的朋友。發布以後反應不大,後來發現更多人使用windows host 來跑linux guest的居多 ,且有很多文章談到網路問題,自己想沒有那麼難吧,就試了一把,把過程寫下來希望對網路有問題的朋友有所幫助。
版權屬yunqing所有,首發chinaunix.net,轉貼引用請包含此行聲明
正文:
本人使用的是vmware workstation 4.52,host機器運行的是windows Xp professional ,如果你還在使vmware workstation 4.0建議下載一個升級包,不過我想即使不做問題也不大。
1。安裝 vmware workstation,很簡單,一路ok過去,相信大部分朋友已經裝好。
2。創出新的guest系統。選擇類型。因為我以發生問題最多的redhat 9做試驗,所以就選redhat linux,選custom,網路類型選host-only(如果你已經安裝好 了,用了nat或bridge也沒有關係,在虛擬機的屬性裡改成hostonly就行了。)
3。創好建後啟動虛擬機,插入安裝rh9的第一張光碟。選擇自訂安裝,我只保留了gonme, X, 和graphical internet,節省安裝空間和時間。
4。安裝過程很順利,沒有問題,完成後重新啟動虛擬機,發現在更新fstab的時候掛掉了,估計是連接cdrom軟碟機時候超時。kill掉虛擬機,更改 設定,把光碟機和軟碟機的autoconnect when power on清除掉。重啟虛擬機,沒有問題,進入最後設定,音效卡,圖形界面均沒有問題。
5。按照要求在虛擬機裡安裝vmware-tool,對滑鼠和圖形介面進行更好的支援。
如果你在圖形界面下,首先要切換到文字模式。
右鍵點選桌面,打開一個終端機
在終端機裡:
su
#/sbin/telinit 3
圖形界面消失,按 Enter 幾下,在文字模式下登入。
在windows的vmware的視窗選單中選vm->install vmware tools
在虛擬機中:
su
mount /dev/cdrom /mnt/cdrom
cd /tmp
tar zxf /mnt/vmware-linux-tools.tar.gz
cd vmware-tools-distrib
./vmware-install.pl
回答並設定顯示器解析度,除了解析度需要選擇外,直接按 Enetr 就行了。
返回到預設的圖形界面(運行級別5)
/sbin/telinit 5
6.登入虛擬機,打開一個終端機:
/sbin/ifconfig
發現eth0沒有起來。
不要驚慌。
-------------以下是網路設定---------------
7。到windows XP 中,查看所有的網路連接,你應該發現除了原有的網卡之外,又多了Vmnet1和Vmnet8。如果你看了一下說明應該知道,vmnet1是 hostonly的接口,而Vmnet8是使用NAT的網路接口。在這裡我們既不想用VMWARE自帶的DHCP也不想用他的NAT所以我們知關心 VMnet1
在進一步操作之前先說一下idea:
我們將使用hostonly這個網路接口連接虛擬機和主機,然後利用windows Xp/2000裡面自帶的internet連接分享(實際上是一個簡單的路由NAT)來讓虛擬機 通過原來的網卡連接外部網路。
那麼為什麼不使用橋接的方式呢,我在前一篇文章(linux host + windows guest)裡面已經有些討論,請參考。不過最現實的原因是橋接需要一個不同於 原主機上的另外一個獨立的IP地址,這對於有些情況(IP和MAC綁定,網管不同意),比較難辦到。
OK, let's go
(1)查看你的連接外部網路的網卡的內容,選擇“高級”標籤,設定成允許共享,並設定允許的網路接口為VMNET1,如下圖。
(2)再插看一下你的VMnet1 的屬性,看一下TCP/IP的設定,你發現已經被自動設為192.168.0.1/255.255.255.0,如下圖。
(3)windows下的設定完成,轉入到跑linux的虛擬機。將你的eth0的ip地址設定為靜態的(如果安裝時沒有選靜態的話)
(4)windows下的設定完成,轉入到跑linux的虛擬機。將你的eth0的ip地址設定為靜態的(如果安裝時沒有選靜態的話)。
按紅帽子圖標->系統設定->網路(或其它你瞭解的方法)
ip: 192.168.0.2(或其它在此網域上的IP )
netmask: 255.255.255.0
default gateway: 192.168.0.1
dns:輸入你自己的DNS
保存設定。如果你還沒有設定好主機名稱:
cd /etc/sysconfig
vi network
編輯HOSTNAME
cd /etc
vi hosts
加入:
192.168.0.2 yourhostname
重新啟動服務
su
/sbin/service network restart
(4)測試一下
IP: ping 192.168.0.1
dns: ping dnsserver
文章來自:http://www.bjdown.com/article/8817.htm
2010年10月13日 星期三
宣告矩陣過大(佔用超過2GB記憶體) 在PGI fortran 編譯所需要增加的語法
(linux86-64 only). Allow (don't allow) arrays larger than 2GB; -Mlarge_arrays is default with mcmodel=medium.
-mcmodel=small|medium
(AMD64 and IA32/EM64T only) Use the memory model that limits objects to less than 2GB (small) or allows data sections to be larger than 2GB (medium); implies -Mlarge_arrays
2010年10月7日 星期四
2010年10月3日 星期日
test -s file 模式為wgrib2格式大量解碼小技巧
原計畫JMA基本場共計有46個層場須解碼,考慮在JMA_GSM_tau_yyyymmddhh中即使給相符合字串(match string)進行搜尋,也可能發生找不到對應層場資料的問題,故必須使用其wgrib2解碼時找到相符合字串時,會自動回傳至螢幕(預設echo)的特性,將回傳輸出(echo)至測試檔中123.txt,接著使用sh判斷(test -s filename),如果檔案存在且大於零則能確定有解碼,若無內容則表示該時間點無該筆對應層場資料,以程式幫忙補上-9999缺值。
# man test
--
-s FILE
FILE exists and has a size greater than zero
如何在fortran中讀寫文件時不換行
转自ifelseif的博客
读文件时,read之后如果写了一个数组,就像这样:
read(10,*)Y(1:n)
整整一行数就全都读到数组里了。但是如果用write,写到文件中却不是这个样子,会给你一个超级长的文件然后每行只有一个数。有一个选项叫ADVANCE='YES'/'NO',可以控制输入输出语句完了之后要不要换行,默认是'YES',很不幸,在intel的fortran中这个选项只对read起作用,write依旧不行。
在fortran的输入输出中,"/"表示换行,那么"\"表示什么意思呢,就是“不换行”。这是我在网上逛了老半天才看到的,为了防止忘记,写到博客里面,立此存照。
下面是一段fortran代码样例,要处理的数据20个数就会换一行,一般来讲最后一行是不满20个数的,需要用个同余判断一下
PROGRAM MAIN
IMPLICIT NONE
INTEGER I,J,NY,A,B
REAL X,Y(60),Z(60)
OPEN(UNIT=10,FILE='SX-RIVER.TXT')
OPEN(UNIT=11,FILE='SX-OUTPUT.TXT')
DO I=1,9
READ(10,*)
END DO
DO I=1,372
!!!!!!!!! DATA INPUT !!!!!!!!!!!!!!!!
READ(10,"(18X,I2,1X,F7.3)")NY,X
CALL MOD(20,NY,A,B)
DO J=1,A
READ(10,"(20(1X,F7.2))")Y(20*(J-1)+1:20*J)
END DO
DO J=1,B
READ(10,"(1X,F7.2)",ADVANCE='NO')Y(20*A+J)
END DO
READ(10,*)
DO J=1,A
READ(10,"(20(1X,F7.2))")Z(20*(J-1)+1:20*J)
END DO
DO J=1,B
READ(10,"(1X,F7.2)",ADVANCE='NO')Z(20*A+J)
END DO
READ(10,*)
!!!!!!!!! DATA OUTPUT !!!!!!!!!!!!!!!
!WRITE(11,"(I4,1X,F7.3)")NY,X
WRITE(11,"(1X,F7.2,\)")Y(1:NY)
WRITE(11,*)
WRITE(11,"(1X,F7.2,\)")Z(1:NY)
WRITE(11,*)
END DO
CLOSE(10)
CLOSE(11)
STOP
END PROGRAM MAIN
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! SUBROUTINE FOR CONGRUENCE(TONGYU) !
! Y=A*X+B !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SUBROUTINE MOD(X,Y,A,B)
IMPLICIT NONE
INTEGER X,Y,A,B,TMP
A=1
TMP=X
DO WHILE(Y.GT.TMP)
A=A+1
TMP=TMP+X
END DO
A=A-1
B=X-(TMP-Y)
RETURN
END SUBROUTINE MOD