Xshell :一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.(百度百科)
此文讲述的是xshell下的Linux命令,此命令在help下大都可以找到。在xshell终端下常用的命令有:
因为新的CSDN书写格式出来,所以对原版做了一些修改,增加可读性
原版见:原版
help 查看帮助命令
ls --help 查看ls命令下的具体用法
info ls 查看ls命令的作用
clear 清屏
pwd(print working directory)
ls 列出所有文件或者文件夹(以排形式)
ls *abc 列出文件abc内的所有文件
ls –l 列出所以文件及其详细属性(以列形式,不展示隐藏文件,隐藏文件的展示见第二部分)
ls .* 展示此级文件以及上一级文件(不展示隐藏文件)
ls -a 显示隐藏文件
ls -lrt 按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序)
举例:
cd etl/app/TEMP/abc/ddl
进入目录etl/app/TEMP/abc/ss
cd /home 进入home目录
cd / 切换到根目录
cd - 回到上次目录
cd … 返回上一级目录
cd …/… 返回上两级目录
注意:rm最好不要乱用,删了就找不回来了,建议要用rm的地方换成用mv到某个备份文件夹!!
rm [-fir]文件或目录
-f 是忽略不存在的文件,不会出现警告信息(force,强行执行)
rm [参数] dir (删除文件夹)
参数有如下选择:
-i:互动模式,在删除前会询问用户是否执行此操作。(回答y表示是,n表示否)
-r:递归删除(recursive),常用于目录的删除,同时删除目录下的文件与子目录rm
rmdir -rf test 或者 rm -rf test
rm -f flt_date201405.tsv
强行删除文件flt_date201405.tsv ,不给任何提示;
若文件flt_date201405.tsv不存在,直接忽略。rm
rm -r 文件名或目录名
删除文件或目录下的文件及子目录
rm -rf 文件名或目录
强行删除文件或目录下的文件及子目录(删除压缩文件tar等时可用)
rm -i 文件名
交互式的删除文件(删除前系统会逐一进行询问)
rm -ir 文件名
交互式删除文件夹及其下的文件,会逐一询问
删除test文件夹下的所有文件:
rm -r test/*
举例:删除example2文件夹
说明,笔者在example1文件夹下又有一个example1文件夹(说明可以有同名的子文件夹,但不能有同名的同一目录下的文件夹),在example1之下有一个名为example2的文件夹,在此文件夹下有test文件。现在要删掉example2文件夹以及test文件:
第一句使用rm删除文件夹example2,发现提示说不能删除,因为example2是文件夹。所以第二条命令用rmdir删除,提示说此文件夹不是空的,因为其下有test文件,所以不能删除。接着第三条命令使用-r即连环删除命令,将test一并删除。最后一条ls命令用来展示发现文件都被删除了。
rm -i test(删除test文件,有提醒是否删除,是则y,否则n)
删除文件夹下的所有文件
rm ./* #表示删除当前文件夹下的所有文件,如果有文件夹,可以rm -r ./*
rm -r myfolder/* #删除myfolder下的所有文件
上面一定要注意,不要写成 rm /*, 这表示删除家目录下所有文件,即什么都没有了!!!所以不要这样做!!!
由于本人已经将rm命令改为mv移动到垃圾站,所以我用这个命令的时候是移动到回收站。(这内容见第二部分将rm改为mv)
将文件flt_date201405.tsv重命名为flt_date201406.tsv
mv flt_date201405.tsv flt_date201406.tsv
将文件转移到目录/etl/app/TEMP/ff下
mv flt_date201405.tsv /etl/app/TEMP/ff
移动文件夹下的所有文件
mv LSPE/* . #移动LSPE文件夹下的所有文件到当前文件(*表示所有文件,. 表示当前文件夹)
可以用cp --help 查看帮助
cp file1 file2 将file1复制为file2
cp -a dir1 dir2 复制一个目录
cp -a /tmp/dir1 .
复制一个目录到当前工作目录(.代表当前目录)
cp flt_date201405.tsv flt_date201406.tsv
将文件复制成为 flt_date201406.tsv
cp flt_date201405.tsv /etl/app/TEMP/ff
将文件flt_date201405.tsv复制到目录/etl/app/TEMP/ff下
cp /etl/app/TEMP/abc/flt_date201405.tsv .(注意有空格和点)
将目录etl/app/TEMP/abc下的flt_date201405.tsv文件复制到当前的目录下,文件名保持不变
. 当前目录
… 上级目录
~ 用户家目录
- 前一个目录
cp /home/wudl/test.txt file1
将test.txt文件拷贝到当前目录下一个名为file1的文件夹
cp /etl/app/TEMP/abc/flt_date201405.tsv flt_date201406.tsv
将目录etl/app/TEMP/abc下的flt_date201405.tsv文件复制到当前的目录下,文件名改为flt_date201406.tsv
cp -r /etl/app/TEMP /etl/app/TEMP/abc
将目录/etl/app/TEMP下的所以文件及子目录复制到目录/etl/app/TEMP/abc下
复制一个文件夹test下的所有文件:
cp -r test/* test1 *表示所有文件(但不包括隐藏文件,即.开头)
cp -r test/. test1 .表示复制所有文件到test1,包括隐藏文件
scp的主要目的是用于linux之间的文件复制,其中scp是seure copy的缩写,顾名思义,是ssh登录后安全拷贝命令。基本用法是
scp [参数] 文件 目标地址
参数有很多可以选择,我这里不一一说明了,仅仅举常用的例子。
本地文件传送到远程
将local_file这个文件传递到远程sanlang目录下
scp local_file sanlang@192.168.xxx:/home/sanlang #(如果连接有:22这个数字,不要将:22放进来)
如果传的是文件夹,则要加-r这个参数(然后输入远程计算机的密码)
scp -r local_file sanlang@192.168.xxx:/home/sanlang
如将test.txt传到sanlang家目录下:
scp test.txt sanlang@192.xxx:~/
另外笔者亲试了也可以不用加sanlang@这几个字样即(不建议如此,因为有时候会出问题)
scp local_file 192.xxxx:~/ #~表示家目录
远程文件传送到本地
比如我现在有A和B两台linux,我在A上工作,但是文件放在了B上(远程),如果记得B的地址,可以如下:将B上的文件test拷贝到当前目录
scp -r sanlang@192.168.xxx:/home/sanlang/test .
#.表示当前目录,也可以接其他路径
输入B的密码即可。(同理,-r表示递归,即拷贝的是文件夹,如果是文件则不需要-r)
参考:https://www.cnblogs.com/bignode/articles/9241333.html
需要注意的一个问题是:这样是跟网速有关的,如果网速太慢的话,能有其他办法拷贝还是优先使用拷贝吧
可能出现的问题:
wudl@wudl:~$ ssh-keygen -f "/home/wudl/.ssh/known_hosts" -R xxx #xxx是远程的电脑的ip,如192.168.xxx
diff /etl/app etl/app/TEMP
比较目录/etl/app与目录etl/app/TEMP下的文件列表是否相同(不比较文件的实际内容),会展示出结果
diff flt_date201405.tsv flt_date201406.tsv
比较文件flt_date201405.tsv与文件flt_date201406.tsv的实际内容是否相同(文本文件列出不同处,二进制的文件只显示是否相同),会展示出文件内容
主要用到find和grep命令(参考http://www.cnblogs.com/huninglei/p/5824205.html)也可以参考笔者写的另一个简短的介绍grep和find
区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
find –name ‘flt_date201406.tsv
在当前的目录下查找文件名为flt_date201406.tsv的文件
find ! -name airline_booking_class.dsql
在当前的目录下查找出文件名不为flt_date201406.tsv的所有文件
find / -name file1 从 ‘/’ 开始进入根文件系统查找文件和目录
find / -user user1 查找属于用户 ‘user1’ 的文件和目录
find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的文件
find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
locate *.ps 寻找以 ‘.ps’ 结尾的文件,先运行 ‘updatedb’ 命令
find -name ‘*.[ch]’ | xargs grep -E ‘expr’ 在当前目录及其子目录所有.c和.h文件中查找 ‘expr’
find -type f -print0 | xargs -r0 grep -F ‘expr’ 在当前目录及其子目录的常规文件中查找 ‘expr’
find -maxdepth 1 -type f | xargs grep -F ‘expr’ 在当前目录中查找 'expr’grep
A.find命令
基本格式:find path expression
(1)find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf #在/etc目录下文件httpd.conf
(3)find /etc -name ‘srm’ #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(4)find . -name ‘srm*’ #表示当前目录下查找文件名开头是字符串‘srm’的文件
(1)find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2 # 查找在系统中最后48小时访问的文件
(3)find / -empty # 查找在系统中为空的文件或者文件夹
(4)find / -group cat # 查找在系统中属于 group为cat的文件
(5)find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1 #查找在系统中最后24小时里修改过的文件
(7)find / -user fred #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小于1000KB的文件
参数有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
(2)find / -user fred -or -user george #在/目录下查找用户是fred或者george的文件文件
(3)find /tmp ! -user panda #在/tmp目录中查找所有不属于panda用户的文件
B.grep命令
基本格式:find expression
[options]主要参数:
-c:只输出匹配行的计数。
-i:不区分大小写
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的单个字符。
* :有字符,长度可以为0。
(1)grep ‘test’ d* #显示所有以d开头的文件中包含 test的行
(2)grep ‘test’ aa bb cc #显示在aa,bb,cc文件中包含test的行
(3)grep ‘[a-z]{5}’ aa #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
(4)grep magic /usr/src #显示/usr/src目录下的文件(不含子目录)包含magic的行
(5)grep -r magic /usr/src #显示/usr/src目录下的文件(包含子目录)包含magic的行
(6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’)
(7)grep -si "Ranges" * 显示包含Ranges的所有文件,不包含大小写(在进入文件后可以再/module Ranges查看)
wc -l flt_date201406.tsv
查看文件flt_date201406.tsv有多少行
wc -c flt_date201406.tsv
查看文件flt_date201406.tsv有多少字节
更新:
1,查看文件的大小:
ls -lh
注意,上面查看的文件夹的大小指的只是文件夹本身,是不包含里面的内容的。比如我有PySM_public这个文件夹,我压缩成上面图片.tar的形式,我们可以看出ls -lh查看的结果是,文件只有4k,而压缩之后有1.7G。所以这里查看的是文件夹本身的大小。
2 查看当前目录下文件的大小
这个方法很常用。
du -h --max-depth=0 *
可以看到,这个时候是包括文件夹及其下面文件一起的,所以PySM_public有1.7G。
3 查看当前目录下的文件及其子文件
du -h --max-depth=1 *
du -sh 目录/文件
cat fastload.pl 查看文件所有内容
head -2 file1 查看一个文件的前两行
more file1 查看一个长文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
tail -3 file1 查看一个文件的最后三行
---- vim ljt.txt 需要新建的文件名ljt.txt
-----vim test/name.doc 在test文件夹下建立文件名为name的Word文档
----点击键盘 ‘i’键,然后编写文件内容 (其中需要输入中文时,选择 编码 Unicode(UTF-8))
----修改完毕后,点击键盘 Esc,然后按 Shift 和 :
输入 wq 保持修改的内容(放弃修改时输入 q)
---- vim ljt.txt 需要修改的已存在的文件名ljt.txt
----点击键盘 ‘i’键,然后编写文件内容 (其中需要输入中文时,选择 编码 Unicode(UTF-8))
----修改完毕后,点击键盘 Esc,然后按 Shift 和 :
输入 wq 保持修改的内容(放弃修改时输入 q)
补充:vim/vi是一种流行的编辑器,在Linux中被广泛使用,深受欢迎的编辑器还有Emacs, python下默认编辑器为IDLE。vim/vi有三种基本模式:命令模式(command mode)、插入模式(Insert mode)、底行模式(last line mode)。各种模式功能如下:
在建立文件如输入vim test,此时进入的即是命令模式,可以连续按两下d键删除行,u可以取消操作。此模式下更多命令如下:
h 左移光标一个字符
l 右移光标一个字符
k 光标上移一行
j 光标下移一行
^ 光标移动至行首
0 数字“0”,光标移至行的开头
shift+0光标移至文章的最后
gg光标移到文章开头
$ 光标移动至行尾
Ctrl+f 向前翻屏
Ctrl+b 向后翻屏
Ctrl+d 向前翻半屏
Ctrl+u 向后翻半屏
i 在光标位置前插入字符
a 在光标所在位置的后一个字符开始增加
o 插入新的一行,从行首开始输入
ESC 从输入状态退至命令状态
dl删除光标所在的一个字
x 删除光标后面的字符
#x 删除光标后的#个字符
X (大写X),删除光标前面的字符
#X 删除光标前面的#个字符
dd 删除光标所在的行
#dd 删除从光标所在行数的#行
yw 复制光标所在位置的一个字
#yw 复制光标所在位置的#个字
yy 复制光标所在位置的一行
#yy 复制从光标所在行数的#行
p 粘贴
u 取消操作
cw 更改光标所在位置的一个字
#cw 更改光标所在位置的#个字
在建立文件后要进入插入模式编写、修改和删除文件时需要按“i”(或者大写“I”)键。此时看到底下有提示–INSETR–,代表进入插入模式。在此情况写即可对文档做改动。在退出插入模式进入命令模式时需要按Esc键。
保存文件或者退出vim编辑。
要进入命令模式才能进行底行模式。在编辑文档结束后从插入模式按Esc进入底行模式,此时按「:」冒号(注意要按shift才能输入冒号)进入底行模式,在冒号后有如下操作:(注意,需要键盘在英文输入模式下进行)
:w test(w表示write,表示将文档以test为文件名保存),回车后发现文件名改为test,但并没有退出编辑,要退出见下
:q或者q!(注意有感叹号)q代表quit,加感叹号是强行退出,此种退出方法不保存修改的文档,类似于Word文档中退出而不保存
:wq,即write and quit,此种退出方法=保存并退出。
当要查看文档时可用cat命令,如cat test。当要再次编辑文档时,vi test或vim test即可进入。
(注:上文来自钮甲跳,文章链接为:http://www.cnblogs.com/runner-ljt/p/4551568.html补充部分来自于EmanLee的博客网址为:http://www.cnblogs.com/emanlee/archive/2011/11/10/2243930.html有改动)
注意:当使用vim或者vi非正常关闭时(断电或者非常规退出,如Ctrl+zz),会生成.swp交换文件。实际上在vi或者vim创建文件时系统会自动带有.swp文件以防不测,当正常关闭时.swp文件消失,否则一直存在.在非正常关闭下出现.swp文件,以test2为例,则为.test2.swp(第一个点表示此为隐藏文件,用ls命令看不到此文件,可以用ls -al命令查看全部文件,见第二部分第三小节)。此时用vi test2进入则有提示如下:
文中说是:找到一个swp文件,出现的原因是(1)其他程序正在编程此文件…(2)此文件的编辑程序崩溃。可以使用recover或者vim -r 来恢复…
我们只需要输入“r”或者“R”来恢复此文件即可,在输入之后文件已经恢复,此时可以删除不需要的swp文件(命令为rm .test2.swp,否则会一直提示,但是要确保已经不需要此文件,不然删除了接着你很快就会伤心的)然后vi test2即可进入此文件。
tar常用命令:
A压缩文件 -cvf命令
1)处于当前工作路径下,打包当前路径下的文件并放在当前路径
((-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数))
tar -cvf archive.tar file1 把file1打包成 archive.tar
tar -cvf archive.tar file1 dir1 把 file1,dir1 打包成 archive.tar
(当前处在test文件下,将其下的test1文件夹压缩为test1.tar)
2)处在当前工作路径下,打包文件到指定目录
tar -cvf 指定目录 目标文件
如tar -cvf /home/wudl/intel/test1.tar test1(将当前文件夹下的test1文件打包到intel文件夹下,并取名为test1.tar
(路径可以红pwd查找,-C是临时切换工作目录)
3)将其他文件打包到当前工作路径
tar -cvf +压缩的文件名.tar +目标文件目录
如:tar -cvf test1.tar /home/wudl/test/test1(将test文件夹下的test1文件压缩到当前目录,并命名为test1.tar)
B解压文件 -xvf 命令
1)处于当前工作路径下,解压当前路径下的文件并放在当前路径
唉,有待补充,以上以下都有错
2)处在当前文件下
举例:tar -xvf archive.tar -C +目标目录 把压缩包释放到目标目录下
如:tar -xvf file.tar -C /home/wudl/test 把文件file.tar解压到test目录下(并保留原压缩文件)
bzip2 file1 压缩 file1
bunzip2 file1.bz2 解压 file1.bz2
gzip file1 压缩 file1
gzip -9 file1 最大程度压缩 file1
gunzip file1.gz 解压 file1.gz
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C +目标目录 把压缩包释放到目标目录下
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 dir1 把文件和目录压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式的压缩包到当前目录
unzip test.zip -d /tmp/ 解压一个zip格式的压缩包到 /tmp 目录
对tar详解:
语法:tar [主选项+辅选项] 文件或者目录
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
压缩
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、.tar.gz和.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
(1)mkdir 文件名(如:mkdir test,则建立了一个test的文件夹)
说明:mkdir 是make directory(创建目录)的简写,如果当前目录存在test文件夹,则不能在此目录建立test文件夹(即不能在一个目录下建立两个同名的文件夹),但可以在test目录下建文件夹名为test的子文件夹。
(2)mkdir home/test在home目录下建立test文件夹
(3)mkdir home1 home2 home3建立三个文件夹,名字分别为home1、home2、home3
(4)mkdir -p /tmp/dir1/dir2 创建一个目录树
同隐藏文件一样,在Linux中在文件名前加“.”表示此文件或文件夹为隐藏文件。
mkdir .name 创建名为name的隐藏文件夹
vim .test.doc 创建名为test.doc的隐藏文件,并打开
touch .test.doc 创建名为test.doc的隐藏文件,但不打开。touch的详细作用见7
ls -a(或者ls -al) 查看所有文件,包括隐藏文件,以行展示(以列的形式展示,同时显示详细信息,从左到右分别表示:【权限】【连接(到此节点i-node的文件数)】【所有者】【用户组】【文件容量】【修改日期】【文件名】)
ls -d .*只展示隐藏文件(即前头有“.”的文件)(注意,s和d后都有一个空格)
l.(此为网上部分网友的说法,在xshell下亲试无效)
修改文件权限有两种方法,分别是数字类型修改法和符号类型修改法
(1)数字类型修改法
文件权限有rwx,即read,write,execute三种,从数字上来讲,对应方式为:r—4,w----2,x—1
改变权限使用chmod(change mode)命令,chmod命令用法如下:
chmod 数字 文件或文件名。
数字改变举例如下:
要使得自己对文件test有读写可执行三种,所属用户组及其他组都只有可读可执行而不能修改的权限,则相当于给自己权限的值为4+3+1=7,其他两个组都是4+1=5,则执行命令如下
chmod 755 test
(2)符号类型法
举例如下:
chmod u=rwx,go=rx test
以上表示用户自己u(user)具有rwx三种权限,所属组group,以及其他组人员others只有rx两种权限。注意:中间那一块没有空格隔开。
如果不知道test的权限如何,也不想知道,而只是想在其上对所有人都增加w或减少r的权限,则可以用“+”或者“-”来执行命令。如:
对所有人增加w的权限:
对所有人减少r的权限:
如有一个test文件,内容为下载某个文件
现在要把test变成可执行文件
sudo 是superuser do的简写,它的含义是以超级用户的权限运行,普通用户无法执行许多命令,比如说安装程序
使用ln命令(link),格式为:ln [参数] [源文件或目录] [目标文件或目录]
命令参数有:
必要参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
选择参数:
-S “-S<字尾备份字符串> ”或 “–suffix=<字尾备份字符串>”
-V “-V<备份方式>”或“–version-control=<备份方式>”
–help 显示帮助信息
–version 显示版本信息
举例:笔者首先在/home/wudl/test1/name文件夹下建立一个名为ln的文件,文件里的内容为:
this is a link file
现在进入另一个文件夹,路径为(pwd查看路径)/home/wudl/test1/test1/,笔者现在要在此路径下链接上面提到的ln文件,代码如下:
ln -s /home/wudl/test1/name/ln /home/wudl/test1/test1/link(注意有空格)#link是不存在的文件,此处为新建了一个名为link的用以连接ln文件的目标文件
即:ln -s [源文件] [目标文件](注意有空格,使用的是软链接soft)
cat 用于查看文件,此时可以看到新增加了一个叫做link的文件,并且里面的内容跟ln文件的内容一致。
ln -s /home/wudl/test file
将文件test链接到当前目录下的file文件(当前文件夹下不存在file文件,此文件则新建)
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename…filename :打开多个文件,依次进行编辑
格式:touch [-acfm][-d <日期时间>][-r <参考文件或目录>][-t <日期时间>][–help] [–version][文件或目录…] 或 touch [-acfm][–help][–version][日期时间][文件或目录…]
(touch [-acfm][-r reference-file] [–file=reference-file][-t MMDDhhmm[[CC]YY][.ss]][-d time] [–date=time][–time={atime,access,use,mtime,modify}][–no-create][–help] [–version]file1 [file2 …])
touch fileA,如果fileA存在,使用touch命令可更改这个文件或目录的日期时间,包括存取时间和更改时间;如果fileA不存在,touch命令会在当前目录下新建一个空白文件fileA。
注:使用touch指令可更改文件或目录的日期和时间,包括存取时间和更改时间。文件的时间属性包括文件的最后访问时间,最后修改时间以及最后在磁盘上修改的时间,命令stat显示结果显示了三个时间属性。
四、touch命令选项说明
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。[[CC]YY]MMDDhhmm[.SS],CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则linux中touch命令参数将把年数CCYY限定在1969–2068之内.MM为月数,DD为天将把年数CCYY限定在1969–2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0–61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时间.由于系统的限制,早于1970年1月1日的时间是错误的.
–no-create 不会建立新档案。
–help 列出指令格式。
–version 列出版本讯息。
例一:更新file1.txt的存取和修改时间。
touch file1.txt
例二:如果file1.txt不存在,则创建文件
touch -c file1.txt
例三:更新file1.txt的时间戳和ref+file相同
touch -r ref+file file1.txt
例四:设置文件的时间戳为2011年5月18日9点45分10秒
ls -l file1.txt
touch -t 1105190945.10 file1.txt
考虑到rm经常会误删一些文件,导致无法恢复,因此笔者已经在自己电脑将rm改为mv命令
这里参考了这个博文。
1,首先在进入家/主界面
cd ~ #进主页面
在这个界面建立一个用来回收删除的文件的文件夹,命名为trash,由于习惯,我们经常将它弄成隐藏文件,所以要加点,即.trash
mkdir .trash
2, 打开.bashrc文件(这是隐藏文件,需要ls -al或者ls -a才能看到)
vim .bashrc
在里面的适当位置(如最后)加入如下代码
# change command rm--> mv (move files to /home/wudl/.trash)
alias rm='trash' //给rm创建了一个别名trash
alias r='trash' //这一条没啥用
alias rl='ls ~/.trash' //ls命令可以显示trash中的文件
alias ur='undelfile' //ur命令可以找回垃圾箱中的文件
undelfile()
{
mv -i ~/.trash/\$@ ./ //我电脑上执行ur不成功。。。
}
trash() //上面rm已经有了别名trash,所以进行rm命令时执行的是这个函数
{
mv $@ ~/.trash
}
复制完上面的代码之后要source才能使用
source .bashrc
这样就可以使用了,举例如下(马赛克是为了保护个人隐私,不影响观看)
以上几点说明:
这部分直接查看笔者原文吧:终端下载文件,我就不再写一遍了
抱歉这个东西现在才讲,应该在一开始的时候讲的,只是现在才想起来这块内容。
要登录某个服务器,知道ip之后,ssh进入即可
ssh ip # 如ssh 192.168.xxx
然后输入密码即可进入