这个才是重要的,命令原来都不会的,当时接受那个项目时难为死了.
常用命令:
一、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自动机的做法,我去学习一下。