??xml version="1.0" encoding="utf-8" standalone="yes"?> 使用q个Ҏ需要引用batic相关的包Qmaven pom文g如下Q?br />
<dependency><groupId>batik</groupId><artifactId>batik-svggen</artifactId><version>1.6</version></dependency>
set NLS_SORT=SCHINESE_RADICAL_M ;export NLS_SORT QshQ?
or setenv NLS_SORT SCHINESE_RADICAL_M (csh)
or regedit
HKLC/SOFTWARE/ORACLE/home0/NLS_SORT (win)
Ҏ2: 在session中修?
alter session set NLS_SORT='SCHINESE_RADICAL_M'
Ҏ3: 直接使用NLSSORT函数 (推荐)
select name,id from t
order by NLSSORT(name,'NLS_SORT = SCHINESE_STROKE_M')
讄NLS_SORT?
SCHINESE_RADICAL_M 按照部首Q第一序Q、笔划(W二序Q排?nbsp;
SCHINESE_STROKE_M 按照W划Q第一序Q、部首(W二序Q排?nbsp;
SCHINESE_PINYIN_M 按照拼音排序
1. mybatis-oscache-1.0.1-bundle.zip中涉及到的jar包放入到classpath路径?nbsp;
maven下可以这样配|?br /> <dependencies>
...
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-oscache</artifactId>
<version>1.0.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>opensymphony</groupId>
<artifactId>oscache</artifactId>
<version>2.4</version>
<exclusions>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
</dependency>
...
</dependencies>
2. 在mapper文g中的配置如下Q?/span>
<mapper namespace="org.test.AuthMapper" >
<cache type="org.mybatis.caches.oscache.OSCache"/>
</mapper>
注意下面两点
(a)?/span><select id="getAuth" parameterType="Map" resultType="Auth" useCache="false">中用useCache="false"或useCache="true"来决定是否用二U缓存?nbsp;
(b)在增删改?lt;insert id="insertAuth" parameterType="Auth" flushCache="true">使用flushCache="true"或flushCache="flase"来决定对q些q行操作后清Ixml文g中所有查询语句的二~存?/font>
3. 在src目录下创Z个oscache.properties的属性文Ӟ在里面指定缓存的各种属性的讄Q?br /> cache.memory=true
cache.path=c:\\myapp\\cache
cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener
cache.persistence.overflow.only=true
cache.capacity=100000
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
public class CellEvents {
/**
* @param args
*/
public static void main(String[] args) {
Object[] objArr = new Object[]{100,20,300};
Document document = new Document(PageSize.A4.rotate(),50,50,50,50);
try{
//bfSongti = BaseFont.createFont("/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font songtiSFivefont = new Font(BaseFont.createFont("/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED), 9f);//宋体五号字
//讄存放位置
PdfWriter.getInstance(document, new FileOutputStream("D:/test.pdf"));
document.open();
PdfPTable table = new PdfPTable(5);
table.setSpacingBefore(10f);
table.getDefaultCell().setPadding(5);
//HowbuyBorderPdfPTableEvent event = new HowbuyBorderPdfPTableEvent();
//table.setTableEvent(event);
//table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);
table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
PdfPCell cellTitle = new PdfPCell(new Phrase("总资产\nQ万元)",songtiSFivefont));
cellTitle.setBorderWidth(2f);
cellTitle.setBackgroundColor(new BaseColor(new Color(153, 51, 0)));
cellTitle.setBorderColor(new BaseColor(new Color(153, 51, 0)));
cellTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
cellTitle.setVerticalAlignment(Element.ALIGN_MIDDLE);
cellTitle.setMinimumHeight(25);
table.addCell(cellTitle);
cellTitle = new PdfPCell(new Phrase(""));
cellTitle.setBorder(Rectangle.NO_BORDER);
cellTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
cellTitle.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellTitle);
cellTitle = new PdfPCell(new Phrase("当前收益\nQ万元)",songtiSFivefont));
cellTitle.setBorderWidth(2f);
cellTitle.setBackgroundColor(new BaseColor(new Color(153, 51, 0)));
cellTitle.setBorderColor(new BaseColor(new Color(153, 51, 0)));
cellTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
cellTitle.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellTitle);
cellTitle = new PdfPCell(new Phrase("",songtiSFivefont));
cellTitle.setBorder(Rectangle.NO_BORDER);
cellTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
cellTitle.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellTitle);
cellTitle = new PdfPCell(new Phrase("累计收益\nQ万元)",songtiSFivefont));
cellTitle.setBorderWidth(2f);
cellTitle.setBackgroundColor(new BaseColor(new Color(153, 51, 0)));
cellTitle.setBorderColor(new BaseColor(new Color(153, 51, 0)));
cellTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
cellTitle.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellTitle);
float[] widths2 = { 24.5f, 12.25f,24.5f,12.25f,24.5f};
table.setWidths(widths2);
table.setHorizontalAlignment(Element.ALIGN_LEFT);//
table.setWidthPercentage(70);
double zzc = objArr[0]==null ? 0:Double.parseDouble(objArr[0].toString());
double dqsy = objArr[1]==null ? 0:Double.parseDouble(objArr[1].toString());
double ljsy = objArr[2]==null ? 0:Double.parseDouble(objArr[2].toString());
PdfPCell cell1 = new PdfPCell(new Phrase(String.valueOf(zzc),songtiSFivefont));
cell1.setBorderWidth(2f);
cell1.setBorderColor(new BaseColor(new Color(153, 51, 0)));
cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell1.setMinimumHeight(20);
table.addCell(cell1);
cell1 = new PdfPCell(new Phrase("",songtiSFivefont));
cell1.setBorder(Rectangle.NO_BORDER);
cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cell1);
cell1 = new PdfPCell(new Phrase(String.valueOf(dqsy),songtiSFivefont));
cell1.setBorderWidth(2f);
cell1.setBorderColor(new BaseColor(new Color(153, 51, 0)));
cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cell1);
cell1 = new PdfPCell(new Phrase("",songtiSFivefont));
cell1.setBorder(Rectangle.NO_BORDER);
cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cell1);
cell1 = new PdfPCell(new Phrase(String.valueOf(ljsy),songtiSFivefont));
cell1.setBorderWidth(2f);
cell1.setBorderColor(new BaseColor(new Color(153, 51, 0)));
cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cell1);
document.add(table);
}catch(Exception ex){
ex.printStackTrace();
}
document.close();
}
}
1Q?/span>下蝲jad.exe文gQ?/span>http://www.varaneckas.com/jad
2Q?/span>下蝲jadeclipse插gQ?/span>http://sourceforge.net/projects/jadclipse/files/
W二步:
1Q解压羃jad158g.win.zip成jad.exeQ把它copy至jre的bin目录下,比如我的jre安装Cc盘下Qcopy的\径即为c:\Program Files\Java\jre6\binQ下一步配|等待net.sf.jadclipse_3.3.0.jar配置完成之后再说Q?br /> 2Q找到myeclipse的安装目录,我的myeclipse安装在c盘下Q\径如下:c:\ Program Files\yEclipse10。该目录下有dropins文gQ我们需要在该文件夹下,新徏jad文g夹,jad文g夹下新徏 features ?plugins 两个文g夹,把net.sf.jadclipse_3.3.0.jar 复制C个文件夹下,然后重启myeclipse?br />
W三步:
1Q在eclipseH口下,点击Window > Preferences > Java > JadClipse > Path to Decompiler。(讄jad的绝对\径,?c:\Program Files\Java\jre6\bin\jad.exe )。Use Eclipse code formatter(overrides Jad formatting instructions)选项打勾Q与格式化出来的代码样式一致?/span>
2Q在eclipseH口下,点击Window > Preferences > Java > JadClipse > MiscQ将Convert Unicode strings into ANSI strings选项打勾Q避免反~译后可能出现的中文q?br />W四步:
安装完成后,myeclipse没有自动JadClipse Class File Viewer讄成class文g的缺省打开方式Q设|方法如
一、vi的基本概?/span>
基本上vi可分ZU操作状态,分别是命令模式(Command modeQ、插入模式(Insert modeQ和底线命o模式QLast line modeQ,
各模式的功能区分如下Q?/span>
1Q?Comand modeQ控制屏q光标的UdQ字W或光标的删除,Ud复制某区D及q入Insert mode下,或者到Last line mode?/span>
2Q?Insert modeQ唯有在Insert mode下,才可做文字数据输入,按Esc{可回到Comand mode?/span>
3Q?Last line modeQ将储存文g或离开~辑器,也可讄~辑环境Q如L字符丌Ӏ列L?/span>
不过可以把vi化成两个模式Q即是将Last line mode也算入Command mode,把vi分成Command
和Insert mode?/span>
二、vi的基本操?/span>
1Q进入vi
在系l提C符可入vi及文件名U后Q即可进入vi全屏q编辑画面:
$
vi testfile
注意Q进入vi之后是处?#8220;Command mode”下,要切换到Insert mode才能输入文字?/span>
初次用vi的用户都会想先用上下左右键移动光标,l果电脑一直叫Q把自己气个半死Q所以进入vi后,先不要ؕ动,转换入Insert后再说?/span>
Q?Q切换至Insert mode~辑文g在Command mode下按‘i’?#8216;a’?#8216;o’三键可q入Insert mode。这时候就可以开始输入文字了?/span>
i: 插入Q从目前光标所在之处插入所输入的文字?/span>
a: 增加Q目前光标所在的下一个字开始输入文字?/span>
o: 插入新的一行,从行首开始输入文字?/span>
Q?QInsert的切?#8594;Command
modeQ按Esc?/span>
您目前处于Insert modeQ您只能一直打字。假如您发现打错字了Q想用光标键往回移动,该字删除,p按ESC键{换回Command modeQ再删除文字?/span>
Q?Q离开vi及存文g
在Command mode下,可按冒号“Q?#8221;键入入Last line modeQ例如:
:w
filename (输入“w filename”Q将文章存入指定的文件名filename)
:wq
(输入“wq”Q因入之时已l指定文件名testfileQ所以会写入testfileq离开vi)
:q!
(输入“q!”Q强制离开q放弃编辑的文g)
2.Command
mode功能键列?/span>
在介lcommand mode指o的时后,指o后面加上“常用”字眼的功能键Q表C比较常用的vi指oQ?/span>
误者您一定要学会、记住?/span>
Q?QI、a、o切换q入Insert mode。[常用]
Q?Q移动光?/span>
vi可以直接用键盘上的光标键来上下左右移动,但正规的vi是用写英文字母
h、j、k、lQ分别控制光标左、下、上、右UM根{?/span>
按Ctrl+BQ屏q往后移动一c[常用]
按Ctrl+FQ屏q往前移动一c[常用]
按Ctrl+UQ屏q往后移动半c?/span>
按Ctrl+DQ屏q往前移动半c?/span>
?0 Q数字零Q:Ud文章的开头。[常用]
?GQ移动到文章的最后。[常用]
?wQ光标蟩C个word的开头。[常用]
?eQ光标蟩C个word的字?/span>
?bQ光标回C个word的开头?/span>
?$Q移到光标所在行的行。[常用]
?^Q移到该行第一个非I白的字W?/span>
?0Q移到该行的开头位|。[常用]
?#Q移到该行的W?个位|,例:51?21。[常用]
Q?Q删除文?/span>
xQ每按一ơ删除光标所在位|的后面一个字W。[常用]
#xQ例如,6x 表删除光标所在位|的后面6个字W。[常用]
XQ大字的XQ每按一ơ删除光标所在位|的前面一个字W?/span>
#XQ例如,20X 表删除光标所在位|的前面20个字W?/span>
ddQ删除光标所在行。[常用]
#ddQ例如,6dd表删除从光标所在的该行往下数6行之文字。[常用]
Q?Q复?/span>
ywQ将光标所在处到字字符复制到缓冲区中?/span>
Q想在和#x?X的功能相反)
pQ将~冲区内的字W粘贴到光标所在位|(指o‘yw’?#8216;p必须搭配使用Q?/span>
yyQ复制光标所在行。[常用]
pQ复制单行到您想_脓之处。(指o‘yy’?#8216;p’必须搭配使用Q?/span>
#yyQ如Q?yy表示拯从光标所在的该行往下数6行之文字。[常用]
p:复制多行到您想粘贴之处。(指o‘#yy’?#8216;p’必须搭配使用Q?/span>
“ayyQ将复制行放入buffer a, vi提供buffer功能Q可常用的数据存在buffer
“apQ将攑֜buffer a的数据粘贴?/span>
“b3yyQ将三行数据存入buffer b?/span>
“b3pQ将存在buffer b的资料粘?/span>
Q?Q取?/span>
r: 取代光标所在处的字W:[常用]
RQ取代字W直到按Esc为止?/span>
Q?Q复原(undoQ上一个指?/span>
uQ假如您误操作一个指令,可以马上按uQ回复到上一个操作。[常用]
.:
.可以重复执行上一ơ的指o?/span>
Q?Q更?/span>
cwQ更改光标所在处的字到字?处?/span>
c#wQ例如,c3w代表更改3个字?/span>
Q?Q蟩x定行
Ctrl+GQ列出光标所在行的行受?/span>
#GQ例如,15GQ表C移动光标至文章的第15行行首。[常用]
3.Last
line mode下指令简?/span>
读者您要用Last line mode之前Q请记得先按Esc键确定您已经处于Command mode下后Q再按冒?#8220;Q?#8221;?#8220;/”?#8220;Q?#8221;
三键的其中一键进入Last line mode?/span>
(1)Q列?/span>
set
nu: 输入“set
nu或者set number”后,会在文章的每一行前面列受?/span>
set
nonuQ输?#8220;set
nonu或者set nonumber”Q取消行?/span>
(2)Q蟩到文章的某一?/span>
#Q井号代表一个数字,?span>Last line
mode提示W号“Q?#8221;前输入数字,再按Enter׃跛_该行了,
如:15[Enter]׃跛_文章的第15行。[常用]
(3)Q寻扑֭W串
/关键字:先按/Q再输入您想L的字Q如果第一ơ找的关键字不是您相可能的Q可以一直按n会往下寻扑ֈ您要的关键字为止。自上而下q行搜烦Q?/span>
Q关键字Q先按?Q再输入您想L的字Q如果第一ơ找的关键字不是您想要的Q可以按n会往前寻扑ֈ您要的关键字为止。自下而上搜烦Q?/span>
如:3/x 表示查找当前点第三次出现 x 的地方,像?/x 后跟 2n。类似地Q?/^e 从当前位置开始的W二行查找以 e 开始的内容?/p>
注意Q到达文件底部之后,搜烦回到顶部?/p>
(4)Q取代字W串
1Q?s/string/replae/gQ在last line mode输入“1Q?s/string/replace/g”会将全文的string字符串取代ؓreplace字符Ԍ
其中1,$s是指搜d间ؓ文章从头臛_的意思,g则是表示全部取代不必认?/span>
%s/string/replace/cQ同样会全文的string字符串取代ؓreplace字符Ԍ和上面指令不同的地方是,%s?,$s是相同的功能Q?/span>
c则是表示要替代之前必dơ确认是否取代?/span>
1,20s/string/replace/gQ将1?0行间的string替代为relpace字符丌Ӏ?/span>
(5)Q存文g
wQ在last line mode提示W号“Q?#8221;前按w卛_文件存h。[常用]
#Q? w filenameQ如果您x取文章的某一D,存成另一个文Ӟ可用q个指o#代表行号Q例?0,50 w niceQ?/span>
您正在~辑文章的第30~50行存成niceq个文g?/span>
或者是30,50 w >> nice ,表示把内定w加到nice文gQ不覆盖
(6)Q离开
qQ按qq开Q有时如果无法离开viQ可搭配“Q:强置dviQ如“qQ?#8221;
qwQ一般徏议离开Ӟ搭配w一起用,如此d时还可存文g。[常用]
x (pȝ的关机、重启以及登?)
shutdown -h now 关闭pȝ(1)
init 0 关闭pȝ(2)
telinit 0 关闭pȝ(3)
shutdown -h hours:minutes & 按预定时间关闭系l?
shutdown -c 取消按预定时间关闭系l?
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
文g和目?
cd /home q入 '/ home' 目录'
cd .. q回上一U目?
cd ../.. q回上两U目?
cd q入个h的主目录
cd ~user1 q入个h的主目录
cd - q回上次所在的目录
pwd 昄工作路径
ls 查看目录中的文g
ls -F 查看目录中的文g
ls -l 昄文g和目录的详细资料
ls -a 昄隐藏文g
ls *[0-9]* 昄包含数字的文件名和目录名
tree 昄文g和目录由根目录开始的树Şl构(1)
lstree 昄文g和目录由根目录开始的树Şl构(2)
mkdir dir1 创徏一个叫?'dir1' 的目?
mkdir dir1 dir2 同时创徏两个目录
mkdir -p /tmp/dir1/dir2 创徏一个目录树
rm -f file1 删除一个叫?'file1' 的文?
rmdir dir1 删除一个叫?'dir1' 的目?
rm -rf dir1 删除一个叫?'dir1' 的目录ƈ同时删除其内?
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命?Ud 一个目?
cp file1 file2 复制一个文?
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目?
ln -s file1 lnk1 创徏一个指向文件或目录的Y链接
ln file1 lnk1 创徏一个指向文件或目录的物理链?
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的编?
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)
文g搜烦
find / -name file1 ?'/' 开始进入根文gpȝ搜烦文g和目?
find / -user user1 搜烦属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin 在目?'/ home/user1' 中搜索带?.bin' l尾的文?
find /usr/bin -type f -atime +100 搜烦在过?00天内未被使用q的执行文g
find /usr/bin -type f -mtime -10 搜烦?0天内被创建或者修改过的文?
find / -name \*.rpm -exec chmod 755 '{}' \; 搜烦?'.rpm' l尾的文件ƈ定义其权?
find / -xdev -name \*.rpm 搜烦?'.rpm' l尾的文Ӟ忽略光驱、捷盘等可移动设?
locate \*.ps L?'.ps' l尾的文?- 先运?'updatedb' 命o
whereis halt 昄一个二q制文g、源码或man的位|?
which halt 昄一个二q制文g或可执行文g的完整\?
挂蝲一个文件系l?
mount /dev/hda2 /mnt/hda2 挂蝲一个叫做hda2的盘 - 定目录 '/ mnt/hda2' 已经存在
umount /dev/hda2 卸蝲一个叫做hda2的盘 - 先从挂蝲?'/ mnt/hda2' 退?
fuser -km /mnt/hda2 当设备繁忙时强制卸蝲
umount -n /mnt/hda2 q行卸蝲操作而不写入 /etc/mtab 文g- 当文件ؓ只读或当盘写满旉常有?
mount /dev/fd0 /mnt/floppy 挂蝲一个Y?
mount /dev/cdrom /mnt/cdrom 挂蝲一个cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 挂蝲一个cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 挂蝲一个cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 挂蝲一个文件或ISO镜像文g
mount -t vfat /dev/hda5 /mnt/hda5 挂蝲一个Windows FAT32文gpȝ
mount /dev/sda1 /mnt/usbdisk 挂蝲一个usb L或闪存设?
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂蝲一个windows|络׃n
盘I间
df -h 昄已经挂蝲的分区列?
ls -lSr |more 以尺寸大排列文件和目录
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空?
du -sk * | sort -rn 以容量大ؓ依据依次昄文g和目录的大小
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大ؓ依据依次昄已安装的rpm包所使用的空?(fedora, redhatcȝl?
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大ؓ依据昄已安装的deb包所使用的空?(ubuntu, debiancȝl?
q回剙索引 ^
用户和群l?
groupadd group_name 创徏一个新用户l?
groupdel group_name 删除一个用L
groupmod -n new_group_name old_group_name 重命名一个用L
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创徏一个属?"admin" 用户l的用户
useradd user1 创徏一个新用户
userdel -r user1 删除一个用?( '-r' 排除ȝ?
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属?
passwd 修改口o
passwd user1 修改一个用L口o (只允许root执行)
chage -E 2005-12-31 user1 讄用户口o的失效期?
pwck ?'/etc/passwd' 的文件格式和语法修正以及存在的用?
grpck ?'/etc/passwd' 的文件格式和语法修正以及存在的群l?
newgrp group_name 登陆q一个新的群l以改变新创建文件的预设组
q回剙索引 ^
文g的权?- 使用 "+" 讄权限Q?"-" 用于取消
ls -lh 昄权限
ls /tmp | pr -T5 -W$COLUMNS 终端划分成5栏显C?
chmod ugo+rwx directory1 讄目录的所有h(u)、群l?g)以及其他?o)以读Qr Q、写(w)和执?x)的权?
chmod go-rwx directory1 删除组(g)与其他h(o)对目录的d执行权限
chown user1 file1 改变一个文件的所有h属?
chown -R user1 directory1 改变一个目录的所有h属性ƈ同时改变改目录下所有文件的属?
chgrp group1 file1 改变文g的群l?
chown user1:group1 file1 改变一个文件的所有h和群l属?
find / -perm -u+s |列一个系l中所有用了SUID控制的文?
chmod u+s /bin/file1 讄一个二q制文g?SUID ?- q行该文件的用户也被赋予和所有者同L权限
chmod u-s /bin/file1 用一个二q制文g?SUID?
chmod g+s /home/public 讄一个目录的SGID ?- cMSUID Q不q这是针对目录的
chmod g-s /home/public 用一个目录的 SGID ?
chmod o+t /home/public 讄一个文件的 STIKY ?- 只允许合法所有h删除文g
chmod o-t /home/public 用一个目录的 STIKY ?
q回剙索引 ^
文g的特D属?- 使用 "+" 讄权限Q?"-" 用于取消
chattr +a file1 只允总q加方式d文g
chattr +c file1 允许q个文g能被内核自动压羃/解压
chattr +d file1 在进行文件系l备份时QdumpE序忽略这个文?
chattr +i file1 讄成不可变的文Ӟ不能被删除、修攏V重命名或者链?
chattr +s file1 允许一个文件被安全地删?
chattr +S file1 一旦应用程序对q个文g执行了写操作Qɾpȝ立刻把修改的l果写到盘
chattr +u file1 若文件被删除Q系l会允许你在以后恢复q个被删除的文g
lsattr 昄Ҏ的属?
q回剙索引 ^
打包和压~文?
bunzip2 file1.bz2 解压一个叫?'file1.bz2'的文?
bzip2 file1 压羃一个叫?'file1' 的文?
gunzip file1.gz 解压一个叫?'file1.gz'的文?
gzip file1 压羃一个叫?'file1'的文?
gzip -9 file1 最大程度压~?
rar a file1.rar test_file 创徏一个叫?'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同时压羃 'file1', 'file2' 以及目录 'dir1'
rar x file1.rar 解压rar?
unrar x file1.rar 解压rar?
tar -cvf archive.tar file1 创徏一个非压羃?tarball
tar -cvf archive.tar file1 file2 dir1 创徏一个包含了 'file1', 'file2' 以及 'dir1'的案文?
tar -tf archive.tar 昄一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 压~包释放?/tmp目录?
tar -cvfj archive.tar.bz2 dir1 创徏一个bzip2格式的压~包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压~包
tar -cvfz archive.tar.gz dir1 创徏一个gzip格式的压~包
tar -xvfz archive.tar.gz 解压一个gzip格式的压~包
zip file1.zip file1 创徏一个zip格式的压~包
zip -r file1.zip file1 file2 dir1 几个文件和目录同时压羃成一个zip格式的压~包
unzip file1.zip 解压一个zip格式压羃?
q回剙索引 ^
RPM ?- QFedora, Redhat及类似系l)
rpm -ivh package.rpm 安装一个rpm?
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关p警?
rpm -U package.rpm 更新一个rpm包但不改变其配置文g
rpm -F package.rpm 更新一个确定已l安装的rpm?
rpm -e package_name.rpm 删除一个rpm?
rpm -qa 昄pȝ中所有已l安装的rpm?
rpm -qa | grep httpd 昄所有名UC包含 "httpd" 字样的rpm?
rpm -qi package_name 获取一个已安装包的Ҏ信息
rpm -qg "System Environment/Daemons" 昄一个组件的rpm?
rpm -ql package_name 昄一个已l安装的rpm包提供的文g列表
rpm -qc package_name 昄一个已l安装的rpm包提供的配置文g列表
rpm -q package_name --whatrequires 昄与一个rpm包存在依赖关pȝ列表
rpm -q package_name --whatprovides 昄一个rpm包所占的体积
rpm -q package_name --scripts 昄在安?删除期间所执行的脚本l
rpm -q package_name --changelog 昄一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf 认所l的文g由哪个rpm包所提供
rpm -qp package.rpm -l 昄׃个尚未安装的rpm包提供的文g列表
rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
rpm --checksig package.rpm 认一个rpm包的完整?
rpm -qa gpg-pubkey 认已安装的所有rpm包的完整?
rpm -V package_name 查文件尺寸?许可、类型、所有者、群l、MD5查以及最后修Ҏ?
rpm -Va 查系l中所有已安装的rpm? 心使用
rpm -Vp package.rpm 认一个rpm包还未安?
rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文g
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包
rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构徏一?rpm ?
q回剙索引 ^
YUM 软g包升U器 - QFedora, RedHat及类似系l)
yum install package_name 下蝲q安装一个rpm?
yum localinstall package_name.rpm 安装一个rpm包,使用你自q软g仓库Z解决所有依赖关p?
yum update package_name.rpm 更新当前pȝ中所有安装的rpm?
yum update package_name 更新一个rpm?
yum remove package_name 删除一个rpm?
yum list 列出当前pȝ中安装的所有包
yum search package_name 在rpm仓库中搜寻Y件包
yum clean packages 清理rpm~存删除下蝲的包
yum clean headers 删除所有头文g
yum clean all 删除所有缓存的包和头文?
q回剙索引 ^
DEB ?(Debian, Ubuntu 以及cMpȝ)
dpkg -i package.deb 安装/更新一?deb ?
dpkg -r package_name 从系l删除一?deb ?
dpkg -l 昄pȝ中所有已l安装的 deb ?
dpkg -l | grep httpd 昄所有名UC包含 "httpd" 字样的deb?
dpkg -s package_name 获得已经安装在系l中一个特D包的信?
dpkg -L package_name 昄pȝ中已l安装的一个deb包所提供的文件列?
dpkg --contents package.deb 昄未安装的一个包所提供的文件列?
dpkg -S /bin/ping 认所l的文g由哪个deb包提?
q回剙索引 ^
APT 软g工具 (Debian, Ubuntu 以及cMpȝ)
apt-get install package_name 安装/更新一?deb ?
apt-cdrom install package_name 从光盘安?更新一?deb ?
apt-get update 升列表中的软g?
apt-get upgrade 升所有已安装的Y?
apt-get remove package_name 从系l删除一个deb?
apt-get check 认依赖的Y件仓库正?
apt-get clean 从下载的软g包中清理~存
apt-cache search searched-package q回包含所要搜索字W串的Y件包名称
q回剙索引 ^
查看文g内容
cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文g的内?
less file1 cM?'more' 命oQ但是它允许在文件中和正向操作一L反向操作
head -2 file1 查看一个文件的前两?
tail -2 file1 查看一个文件的最后两?
tail -f /var/log/messages 实时查看被添加到一个文件中的内?
q回剙索引 ^
文本处理
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合ƈ一个文件的详细说明文本Qƈ简介写入一个新文g?
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合ƈ一个文件的详细说明文本Qƈ简介写入一个已有的文g?
grep Aug /var/log/messages 在文?'/var/log/messages'中查扑օ键词"Aug"
grep ^Aug /var/log/messages 在文?'/var/log/messages'中查找以"Aug"开始的词汇
grep [0-9] /var/log/messages 选择 '/var/log/messages' 文g中所有包含数字的?
grep Aug -R /var/log/* 在目?'/var/log' 及随后的目录中搜索字W串"Aug"
sed 's/stringa1/stringa2/g' example.txt example.txt文g中的 "string1" 替换?"string2"
sed '/^$/d' example.txt 从example.txt文g中删除所有空白行
sed '/ *#/d; /^$/d' example.txt 从example.txt文g中删除所有注释和I白?
echo 'esempio' | tr '[:lower:]' '[:upper:]' 合ƈ上下单元格内?
sed -e '1d' result.txt 从文件example.txt 中排除第一?
sed -n '/stringa1/p' 查看只包含词?"string1"的行
sed -e 's/ *$//' example.txt 删除每一行最后的I白字符
sed -e 's/stringa1//g' example.txt 从文档中只删除词?"string1" q保留剩余全?
sed -n '1,5p;5q' example.txt 查看从第一行到W?行内?
sed -n '5p;5q' example.txt 查看W??
sed -e 's/00*/0/g' example.txt 用单个零替换多个?
cat -n file1 标示文g的行?
cat example.txt | awk 'NR%2==1' 删除example.txt文g中的所有偶数行
echo a b c | awk '{print $1}' 查看一行第一?
echo a b c | awk '{print $1,$3}' 查看一行的W一和第三栏
paste file1 file2 合ƈ两个文g或两栏的内容
paste -d '+' file1 file2 合ƈ两个文g或两栏的内容Q中间用"+"区分
sort file1 file2 排序两个文g的内?
sort file1 file2 | uniq 取出两个文g的ƈ?重复的行只保留一?
sort file1 file2 | uniq -u 删除交集Q留下其他的?
sort file1 file2 | uniq -d 取出两个文g的交?只留下同时存在于两个文g中的文g)
comm -1 file1 file2 比较两个文g的内容只删除 'file1' 所包含的内?
comm -2 file1 file2 比较两个文g的内容只删除 'file2' 所包含的内?
comm -3 file1 file2 比较两个文g的内容只删除两个文g共有的部?
q回剙索引 ^
字符讄和文件格式{?
dos2unix filedos.txt fileunix.txt 一个文本文件的格式从MSDOS转换成UNIX
unix2dos fileunix.txt filedos.txt 一个文本文件的格式从UNIX转换成MSDOS
recode ..HTML < page.txt > page.html 一个文本文件{换成html
recode -l | more 昄所有允许的转换格式
q回剙索引 ^
文gpȝ分析
badblocks -v /dev/hda1 查磁盘hda1上的坏磁?
fsck /dev/hda1 修复/查hda1盘上linux文gpȝ的完整?
fsck.ext2 /dev/hda1 修复/查hda1盘上ext2文gpȝ的完整?
e2fsck /dev/hda1 修复/查hda1盘上ext2文gpȝ的完整?
e2fsck -j /dev/hda1 修复/查hda1盘上ext3文gpȝ的完整?
fsck.ext3 /dev/hda1 修复/查hda1盘上ext3文gpȝ的完整?
fsck.vfat /dev/hda1 修复/查hda1盘上fat文gpȝ的完整?
fsck.msdos /dev/hda1 修复/查hda1盘上dos文gpȝ的完整?
dosfsck /dev/hda1 修复/查hda1盘上dos文gpȝ的完整?
q回剙索引 ^
初始化一个文件系l?
mkfs /dev/hda1 在hda1分区创徏一个文件系l?
mke2fs /dev/hda1 在hda1分区创徏一个linux ext2的文件系l?
mke2fs -j /dev/hda1 在hda1分区创徏一个linux ext3(日志?的文件系l?
mkfs -t vfat 32 -F /dev/hda1 创徏一?FAT32 文gpȝ
fdformat -n /dev/fd0 格式化一个Y?
mkswap /dev/hda3 创徏一个swap文gpȝ
q回剙索引 ^
SWAP文gpȝ
mkswap /dev/hda3 创徏一个swap文gpȝ
swapon /dev/hda3 启用一个新的swap文gpȝ
swapon /dev/hda2 /dev/hdb3 启用两个swap分区
q回剙索引 ^
备䆾
dump -0aj -f /tmp/home0.bak /home 制作一?'/home' 目录的完整备?
dump -1aj -f /tmp/home0.bak /home 制作一?'/home' 目录的交互式备䆾
restore -if /tmp/home0.bak q原一个交互式备䆾
rsync -rogpav --delete /home /tmp 同步两边的目?
rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压~将一个远E目录同步到本地目录
rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压~将本地目录同步到远E目?
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远E主Z执行一ơ备份本地磁盘的操作
dd if=/dev/sda of=/tmp/file1 备䆾盘内容C个文?
tar -Puf backup.tar /home/user 执行一ơ对 '/home/user' 目录的交互式备䆾操作
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远E目录中复制一个目录内?
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远E目录中复制一个本地目?
tar cf - . | (cd /tmp/backup ; tar xf - ) 本地一个目录复制到另一个地方,保留原有权限及链?
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查扑ƈ复制所有以 '.txt' l尾的文件到另一个目?
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' l尾的文件ƈ做成一个bzip?
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到Y盘的动作
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已l保存到软盘的备份中恢复MBR内容
q回剙索引 ^
光盘
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内?
mkisofs /dev/cdrom > cd.iso 在磁盘上创徏一个光盘的iso镜像文g
mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创徏一个压~了的光盘iso镜像文g
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创徏一个目录的iso镜像文g
cdrecord -v dev=/dev/cdrom cd.iso d一个ISO镜像文g
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - d一个压~了的ISO镜像文g
mount -o loop cd.iso /mnt/iso 挂蝲一个ISO镜像文g
cd-paranoia -B 从一个CD光盘转录韌?wav 文g?
cd-paranoia -- "-3" 从一个CD光盘转录韌?wav 文g中(参数-3Q?
cdrecord --scanbus 扫描ȝ以识别scsi通道
dd if=/dev/hdc | md5sum 校验一个设备的md5sum~码Q例如一?CD
q回剙索引 ^
|络 - Q以太网和WIFI无线Q?
ifconfig eth0 昄一个以太网卡的配置
ifup eth0 启用一?'eth0' |络讑֤
ifdown eth0 用一?'eth0' |络讑֤
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
ifconfig eth0 promisc 讄 'eth0' 成杂模式以嗅探数据?(sniffing)
dhclient eth0 以dhcp模式启用 'eth0'
route -n show routing table
route add -net 0/0 gw IP_Gateway configura default gateway
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16'
route del 0/0 gw IP_gateway remove static route
echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing
hostname show hostname of system
host www.example.com lookup hostname to resolve name to ip address and viceversa(1)
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2)
ip link show show link status of all interfaces
mii-tool eth0 show link status of 'eth0'
ethtool eth0 show statistics of network card 'eth0'
netstat -tup show all active network connections and their PID
netstat -tupl show all network services listening on the system and their PID
tcpdump tcp port 80 show all HTTP traffic
iwlist scan show wireless networks
iwconfig eth1 show configuration of a wireless network card
hostname show hostname
host www.example.com lookup hostname to resolve name to ip address and viceversa
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa
whois www.example.com lookup on Whois database
GO TOP INDEX ^
Microsoft Windows networks (SAMBA)
nbtscan ip_addr netbios name resolution
nmblookup -A ip_addr netbios name resolution
smbclient -L ip_addr/hostname show remote shares of a windows host
smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share