这个才是重要的,命令原来都不会的,当时接受那个项目时难为死了.
常用命令:
一、ls 只列出文件名 (相当于dir,dir也可以使用)
-A:列出所有文件,包含隐藏文件。
-l:列表形式,包含文件的绝大部分属性。
-R:递归显示。
--help:此命令的帮助。
二、cd 改变目录
cd /:进入根目录
cd :回到自己的目录(用户不同则目录也不同,root为/root,xxt为/home/xxt
cd ..:回到上级目录
pwd:显示当前所在的目录
三.less 文件名:查看文件内容。
四.q 退出打开的文件。
五.上传文件: rz 选择要传送的文件,确定。
六.下载文件: sz 指定文件名,enter敲,即下载到了secureCRT/download目录下。
七:删除文件: rm 删除文件 ,rmdir 删除空目录。
八.显示 最近输入的20条命令:history 20
九.获得帮助命令 --help查看命令下详细参数: 如:rz --help , sz --help 。
十.cd 进入某个文件夹的命令:
mkdir+文件夹名 创建某个文件夹的命令
sz+文件名 从服务器端向本机发送文件的命令
rz 从本机向服务器端传送文件的命令
ll 列出当前目录下的所有文件,包括每个文件的详细信息
dir 对当前文件夹
vi 打开当前文件
十一.在编辑某个文件的时候:
a 切换到编辑模式
ctrl+c 退出编辑模式
dd 删除整行
:q 退出当前文件
:w 写入并保存当前文件
-f 强行xx的参数。。。
其它命令:
1.ps -ef //查看server的进程,以列表形式显示的server进程。
ps 显示当前在系统运行的进程 /usr/bin/ps [选项] -e 显示每个现在运行的进程 -f 生成一个完全的列表
实际操作:
--------------------------------------
1 SSH客户端连接到10.5.1.55系统(参见《启动远程客户端说明SecureCRT.doc》)
$ cd /home/bea2/user_projects/csdomain/bin
2 查看weblogic92服务进程
$ ps -eaf | grep weblogic
bea2 327926 331940 0 13:08:45 pts/4 0:00 grep weblogic
webadmin 421908 368956 0 Sep 24 - 4:13 /usr/java5_64/bin/java -Xms256m -Xmx512m -da -Dplatform.home=/home/weblogic/bea/weblogic92 -Dwls.home=/home/weblogic/bea/weblogic92/server -Dwli.home=/home/weblogic/bea/weblogic92/integration -Dweblogic.management.discover=true
-Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/home/weblogic/bea/patch_weblogic923/profiles/default/sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.security.policy=/home/weblogic/bea/weblogic92/server/lib/weblogic.policy
weblogic.Server
bea2 491796 385044 17 00:12:50 pts/6 182:55 /usr/java5_64/bin/java -Xms6g -Xmx8g -javaagent:/home/bea2/user_projects/csdomain/Introscope/wily/Agent.jar -Dcom.wily.introscope.agentProfile=/home/bea2/user_projects/csdomain/Introscope/wily/IntroscopeAgent.profile
-Dcom.wily.introscope.agent.agentName=AdminServer -da -Dplatform.home=/home/weblogic/bea/weblogic92 -Dwls.home=/home/weblogic/bea/weblogic92/server -Dwli.home=/home/weblogic/bea/weblogic92/integration -Dweblogic.management.discover=true -Dwlw.iterativeDev=
-Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dfile.encoding=GBK -Dibm.stream.nio=true -Dweblogic.ext.dirs=/home/weblogic/bea/patch_weblogic923/profiles/default/sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.security.policy=/home/weblogic/bea/weblogic92/server/lib/weblogic.policy
weblogic.Server
说明:根据以上提示查看登陆用户bea2启动的进程,注意标红的bea2为进程拥有着, 491796为进程号
3 执行如下命令杀掉进程
$ kill -9 491796(根据2操做查找到得系统进程号)
说明:执行后再执行$ ps -eaf | grep weblogic命令将不会看到该进程号的weblogic进程
4 启动服务
$ ./quickRun.sh
-------------------------------------------------------------------
2.ant -buildfile CMS_MainTrunk.xml //build 包
3.vi test.txt //浏览文件内容
i {insert写输入}
esc 退出insert
:wq! write 保存并退出vi模式
:q! 不保存退出vi模式
4.我一般习惯用ps –ef命令,这样看到以列表形式显示的server进程;用命令pstree来查看server的进程,这样看到以树的形式显示的server进程。
Pstree命令的优点在于可以立即找出某进程的父进程。您可能会需要使用 -p 选项显示每个进程的 PID,以及 -u 选项来显示启动该进程的用户名。
一般来说,这一树结构比较长,您就需要这么执行 pstree –up | less 这将让您纵览整个进程树结构。
5.secureCRT中乱码解决:Options->SessionOptions->Appearance->font把default改成UTF-8,就可以显示中文字体了。
6.hostname:查hostname
7.ifconfig 查询主机IP
8.在S-CRT下用ctrl+c 和ctrl+v:
Options---Global Options---Edit default Settings进去后点Terminal---Emulation然后点Mapped Keys,点中低部的,use windows copy and paste key,点确认。
1.进入sql运行环境。
[test@test bin]$ ./psql -n dbname -U usrname
stay81=# select count(*) from table1;
count
-------
5986
(1 row)
9.进入vi的命令:
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
10.移动光标类命令:
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
11.屏幕翻滚类命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏 //好像是 r
Ctrl+b;向文件首翻一屏
12.搜索命令:
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
postgres使用:
2. 退出,使用结束后退出,不然连接一直被挂起。
stay81=# \q
3.postgres 数据导出。
[postgres@test bin]$ ./pg_dump -U postgres -t testTable -d testDB > testTable.dump
或[postgres@test bin]$ ./pg_dump -U postgres -d testDB -t testTable -F c -v > testTable.dump
4. postgres 数据导入。
[postgres@test bin]$ ./psql -U postgres -d testDB < testTable.dump
或[postgres@test bin]$ ./pg_restore -U postgres -d testDB < testTable.dump
5.一台主机上将数据库目录转储到另一台主机上。
pg_dump -h host1 -p 5432 dbname | psql -h host2 -p post1 dbname
或./pg_dump -U postgres -d testDB1 -t testTable | ./psql -U postgres -d testDB2
-U 为用户名 ,-d 为DB名,-t 为表名称,如果整个数据库导出,不需此项。
6.php执行。
[test@test bin]$ /usr/bin/php -q ./batchstart.php
实战操作:
/home/absys6$ ls
dvlp dvlp_bak20090413 personal tmp
/home/absys6$ cd dvlp
/home/absys6/dvlp$ ls
/home/absys6/dvlp$ cd SV_POLICY
/home/absys6/dvlp/SV_POLICY$ ls
include src
/home/absys6/dvlp/SV_POLICY$ cd src
/home/absys6/dvlp/SV_POLICY/src$ ls
/home/absys6/dvlp/SV_POLICY/src$ ls *pc //对文件进行筛选
/home/absys6/dvlp/SV_POLICY/src$ grep VIP *pc //列出包含VIP的所有.pc的文件的代码的一部分。
/home/absys6/dvlp/SV_POLICY/src$ vi PlyPrmCnt.pc //查看整个文件。
果然比二分要快将近一倍。63MS。二分94MS。
#include <iostream> #include <algorithm> #include <cstdio> #include <ctime> #include <cstdlib> #include <cmath> using namespace std; const int maxn=1005; double a[maxn],b[maxn]; const double eps=1e-6; int n,k; struct dnode{ double x; int index; }d[maxn]; bool cmp(dnode a,dnode b){ return a.x>b.x; } int main() { while(scanf("%d%d", &n, &k) != EOF) { if(n+k==0)break; for(int i=0;i<n;i++) scanf("%lf", &a[i]); for(int i=0;i<n;i++) scanf("%lf", &b[i]); double l=0.5,ans; do{ ans=l; for(int i=0;i<n;i++) {d[i].x=a[i]-ans*b[i]; d[i].index=i; } sort(d,d+n,cmp); double p=0,q=0; for(int i=0;i<n-k;i++) { p+=a[d[i].index]; q+=b[d[i].index]; } l=p/q; }while(fabs(ans-l)>=eps); printf("%.0f\n", l * 100); } return 0; }
最近一直在搞字符串匹配的问题,搞到AC自动机,就去找了几道题练习一下,于是就找到了ZOJ3228。
一开始看是想将所有的子串建一棵trie,然后直接AC自动机匹配,但是发现只能匹配可重复的串,那些不可重复的串搞不定(至少对于我这个弱菜来说)。
于是上网找了下别人的想法,发现很多都不是用AC自动机做的,因为根据题意,字串的长度最多为6,那么直接拿原串中所有的长度为6的前缀串构建成一棵TRIE树就可以了。
因为原串的长度为10^5,那么最多有10^5 * 6的节点。
然后就拿子串在trie树上进行前缀的匹配。
当然要分两种情况,一种是可重复的,这种就没什么好说了。直接匹配最后输出cnt就可以了。
对于不可重复的串,我们在构建TRIE的时候,多维护一个域end,来记录该子串出现的最后位置,如果当然下一个子串的首地址,也就是数组的第一个位置已经大于该子串记录的最后位置,那么更新末位置,然后计数加一。
这里我们举个例子,例如原串是"abababa"。现在我们要构建他的不可重复串的TRIE树。我这里就举LEN = 3的时候的情况。
0123456
首先位置在012的串aba,这时我们记录他的END = 2 。
下一次遍历到该串的时候是位置234,此时他的首地址等于END,那么不计数。
再下一次遍历到的时候是位置456,此时首地址大于2,那么计数+1。
同理推到LEN = 6 的情况。
#include <iostream> #include <cstdio> #include <algorithm> #include <string> #include <cmath> #include <cstring> #include <queue> #include <set> #include <vector> #include <stack> #include <map> #include <iomanip> #define PI acos(-1.0) #define Max 2505 #define inf 1<<28 #define LL(x) ( x << 1 ) #define RR(x) ( x << 1 | 1 ) #define REP(i,s,t) for( int i = ( s ) ; i <= ( t ) ; ++ i ) #define ll long long #define mem(a,b) memset(a,b,sizeof(a)) #define mp(a,b) make_pair(a,b) #define PII pair<int,int> using namespace std; inline void RD(int &ret) { char c; do { c = getchar(); } while(c < '0' || c > '9') ; ret = c - '0'; while((c=getchar()) >= '0' && c <= '9') ret = ret * 10 + ( c - '0' ); } struct trie{ int next[26] ; int overlap ; int unoverlap ; int end ; void init(){ mem(next ,0) ; overlap = 0 ;//可重复串个数 unoverlap = 0 ;//不可重复串 end = -1 ; } }TT[600005] ; int num = 0 ; void build(char *a ,int pos){ int l = strlen(a) ; int p = 0 ; for (int i = 0 ; i < l ;i ++ ){ int tt = a[i] - 'a' ; if(TT[p].next[tt] == 0){ TT[p].next[tt] = ++ num ; TT[num].init() ; } p = TT[p].next[tt] ; TT[p].overlap ++ ; if(TT[p].end < pos ){ TT[p].end = pos + i ;//记录该串最后出现的位置,当下次出现位置已经大于该位置时,则可以计数 TT[p].unoverlap ++ ; } } } void search(char *a ,int pos){ int l = strlen(a) ; int p = 0 ; for (int i = 0 ; i < l ;i ++ ){ int tt = a[i] - 'a' ; if(TT[p].next[tt] == 0){ puts("0") ; return ; } p = TT[p].next[tt] ; } if(pos){ printf("%d\n",TT[p].unoverlap) ; }else { printf("%d\n",TT[p].overlap) ; } return ; } char str[1111111] ; void init(){ num = 0 ; TT[0].init() ; } char now[111] ; int main() { int cas = 0 ; while(scanf("%s",str) != EOF){ init() ; int l = strlen(str) ; for (int i = 0 ;i < l ; ++ i){ int j ; for (j = 0 ; j < 6 && i + j < l ; j ++ ){//枚举所有长度为6的前缀串,加入TRIE树中。 now[j] = str[i + j] ; } now[j] = 0 ; build(now , i) ; } int n ; RD(n) ; int op ; printf("Case %d\n",++ cas) ; while(n -- ){ scanf("%d%s",&op ,now) ; search(now ,op) ; } puts("") ; } return 0 ; }目测还有AC自动机的做法,我去学习一下。