1125使用的命令行

rz sz ssh crontab grep tree scp cp

工做的第一天就是服务器上的各类命令行使用状况,本身感受还不很熟悉。操做起来比较缓慢,不熟悉。使用比较多的就是vim编辑器,由于在服务器上直接操做比较多。html

先从简单的提及吧,我的感受Linux各类命令的使用必须得很是的熟练才行。这样才会在工做中才会可以更快的解决问题,提升编程的效率!java

首先来一个理论概念:linux

软连接也叫符号连接,对符号文件进行读或写操做的时候,系统会自动把该操做转换为对源文件的操做,但删除连接文件时,系统仅仅删除连接文件,而不删除源文件自己。

1.rzweb

Receive Zmodem 接收文件传输协议,从本地上传文件到服务器。正则表达式

2.szshell

Send Zmodem 发送文件传输协议,从服务器发送文件到本地express

3.sshapache

在1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登陆信息所有加密,成为互联网安全的一个基本解决方案,迅速在全世界得到推广。SSH是一种网络协议,用于计算机之间的加密登陆。若是一个用户从本地计算机,使用SSH协议登陆另外一台远程计算机,咱们就能够认为,这种登陆是安全的,即便被中途截获,密码也不会泄露。SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。
编程

用户名:uservim

远程主机:host

(1)ssh远程登陆

 

ssh user@host

 

(2)若是本地用户名与远程用户名一致,登陆时能够省略用户名

ssh host

(3)ssh的默认端口是22,也就是说,登陆请求会送进远程主机的22端口。使用p参数,能够修改这个端口。

ssh -p 80 user@host

(4)ssh可以保证安全,缘由在于它采用了公钥加密,具体过程以下

a.远程主机收到用户的登陆请求,把本身的公钥发给用户。

b.用户使用这个公钥,将登陆密码加密后,发送回来。

c.远程主机用本身的私钥,解密登陆密码,若是密码正确,就赞成用户登陆。

不过,这个过程存在一个风险:中间人攻击,这里再也不详述。感兴趣本身谷歌。

4.crontab

百度百科:经常使用于Linux,Unix和类Unix的操做系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供以后读取和执行。crontab储存的指令被守护进程激活, crond经常在后台运行,每一分钟检查是否有预约的做业须要执行。这类做业通常称为cron jobs。crontab文件包含送交cron守护进程的一系列做业和指令。每一个用户能够拥有本身的crontab文件;同时,操做系统保存一个针对整个系统的crontab文件,该文件一般存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。

(1)crond简介,crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。crond进程每分钟会按期检查是否有要执行的任务,若是有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类:系统任务调度用户任务调度

系统任务调度:系统周期性所要执行的工做。好比写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

用户任务调度:用户按期要执行的工做,好比用户数据备份、定时邮件提醒等。用户可使用 crontab 工具来定制本身的计划任务。全部用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

使用者权限文件:

(1)cron.deny该文件中所列用户不容许使用crontab命令.

/etc/cron.deny

(2)cron.allow该文件中所列用户容许使用crontab命令.

/etc/cron.allow

(3)全部用户crontab文件存放的目录,以用户名命名.

/var/spool/cron/

(4)crontab文件的含义:

用户所创建的crontab文件中,每一行都表明一项任务,每行的每一个字段表明一项设置。

它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式以下:

minute hour day month week command

其中:
minute: 表示分钟,能够是从0到59之间的任何整数。
hour:表示小时,能够是从0到23之间的任何整数。
day:表示日期,能够是从1到31之间的任何整数。
month:表示月份,能够是从1到12之间的任何整数。
week:表示星期几,能够是从0到7之间的任何整数,这里的0或7表明星期日。
command:要执行的命令,能够是系统命令,也能够是本身编写的脚本文件。

以上各个字段中,还可使用如下特殊字符:

星号(*):表明全部可能的值,例如month字段若是是星号,则表示在知足其它字段的制约条件后每个月都执行该命令操做。
逗号(,):能够用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):能够用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):能够用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线能够和星号一块儿使用,例如*/10,若是用在minute字段,表示每十分钟执行一次。

(5)命令格式

crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]

功能:经过crontab 命令,咱们能够在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位能够是分钟、小时、日、月、周及以上的任意组合。这个命令很是适合周期性的日志分析或数据备份等工做。

参数:

1 -u user:用来设定某个用户的crontab服务,例如,“-u ricky”表示设定ricky用户的crontab服务,此参数通常有root用户来运行。
2 file:file是命令文件的名字,表示将file作为crontab的任务列表文件并载入crontab。若是在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
3 -e:编辑某个用户的crontab文件内容。若是不指定用户,则表示编辑当前用户的crontab文件。
4 -l:显示某个用户的crontab文件内容,若是不指定用户,则表示显示当前用户的crontab文件内容。
5 -r:从/var/spool/cron目录中删除某个用户的crontab文件,若是不指定用户,则默认删除当前用户的crontab文件。
6 -i:在删除用户的crontab文件时给确认提示。

在开始crontab的操做的时候,咱们首先要备份一下:

crontab -l > $HOME/mycron

一旦不当心误删了crontab文件,也可以迅速恢复。

恢复方法:

若是不当心误删了crontab文件,假设你在本身的$HOME目录下还有一个备份,那么能够将其拷贝到/var/spool/cron/<username>,其中<username>是用户名。若是因为权限问题没法完成拷贝,能够用:

 crontab <filename>

<filename>是在$HOME目录中副本的文件名。

在编辑crontab命令的时候,最好在crontab文件的每个条目之上加入一条注释,这样就能够知道它的功能、运行时间,更为重要的是,知道这是哪位用户的做业。

crontab -e命令添加、删除或编辑crontab文件中的条目
crontab -l命令列出crontab的所有信息
crontab -r命令删除crontab文件

前辈经验注意点:

有些crontab的变体有些怪异,因此在使用crontab命令时要格外当心。若是遗漏了任何选项,crontab可能会打开一个空文件,或者看起来像是个空文件。这时敲delete键退出,不要按<Ctrl-D>,不然你将丢失crontab文件。

(6)crontab使用注意事项:

a. 注意环境变量问题 

1)脚本中涉及文件路径时写全局路径;
2)脚本执行要用到java或其余环境变量时,经过source命令引入环境变量。

3)当手动执行脚本OK,可是crontab死活不执行时。这时必须大胆怀疑是环境变量惹的祸,并能够尝试在crontab中直接引入环境变量解决问题:

 0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh 

b.注意清理系统用户的邮件日志
每条任务调度执行完毕,系统都会将任务输出信息经过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会很是大,可能会影响系统的正常运行,所以,将每条任务进行重定向处理很是重要。

例如,能够在crontab文件中设置以下形式,忽略日志输出:
0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1/dev/null 2>&1”表示先将标准输出重定向到/dev/null,而后将标准错误重定向到标准输出,因为标准输出已经重定向到了/dev/null,所以标准错误也会重定向到/dev/null,这样日志输出问题就解决了。

c.系统级任务调度与用户级任务调度
系统级任务调度主要完成系统的一些维护操做,用户级任务调度主要完成用户自定义的一些任务,能够将用户级任务调度放到系统级任务调度来完成(不建议这么作),可是反过来却不行,root用户的任务调度操做能够经过“crontab –uroot –e”来设置,也能够将调度任务直接写入/etc/crontab文件,须要注意的是,若是要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件,即便在root用户下建立一个定时重启系统的任务也是无效的。

d.其余注意事项
新建立的cron job,不会立刻执行,至少要过2分钟才执行。若是重启cron则立刻执行。
当crontab忽然失效时,能够尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。
千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的全部crontab都没了。
在crontab中%是有特殊含义的,表示换行的意思。若是要用的话必须进行转义\%,如常常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’。

 crontab参考:http://www.jb51.net/LINUXjishu/151805.html

5.grep

grepGlobal Regular Expression Print》(global search regular expression and print out the line)全面搜索正则表达式并把行打印出来,

是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不一样。

经常使用用法:

grep [options] “搜索的字符串” filename
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的全部行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:全部的单个字符。
* :有字符,长度能够为0。

(1)将/etc/passwd,有出现 root 的行取出来.

grep root /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
2 operator:x:11:0:operator:/root:/sbin/nologin

或者

cat /etc/passwd | grep root 
1 root:x:0:0:root:/root:/bin/bash
2 operator:x:11:0:operator:/root:/sbin/nologin

感兴趣能够本身谷歌更多grep案例。

6.tree

语法:

tree(选项)(参数)

选项:

 

-a:显示全部文件和目录; 
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;
-C:在文件和目录清单加上色彩,便于区分各类类型; 
-d:先是目录名称而非内容; 
-D:列出文件或目录的更改时间; 
-f:在每一个文件或目录以前,显示完整的相对路径名称; 
-F:在执行文件,目录,Socket,符号链接,管道名称名称,各自加上"*""/""@""|"号; 
-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码; 
-i:不以阶梯状列出文件和目录名称; 
-l:<范本样式> 不显示符号范本样式的文件或目录名称; 
-l:如遇到性质为符号链接的目录,直接列出该链接所指向的原始目录; 
-n:不在文件和目录清单加上色彩; 
-N:直接列出文件和目录名称,包括控制字符; 
-p:列出权限标示; 
-P:<范本样式> 只显示符合范本样式的文件和目录名称; 
-q:用“?”号取代控制字符,列出文件和目录名称; 
-s:列出文件和目录大小; 
-t:用文件和目录的更改时间排序; 
-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码; 
-x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另外一个文件系统上,则将该目录予以排除在寻找范围外。

 

7.scp cp

Linux中cp和scp命令的使用方法:

Linux为咱们提供了两个用于文件copy的命令,一个是cp,一个是scp,可是他们略有不一样。

cp --- 主要是用于在同一台电脑上,在不一样的目录之间来回copy文件
scp --- 主要是在不一样的Linux系统之间来回copy文件 

cp的具体用法:

命令基本格式:

cp [OPTIONS] SOURCE DEST --- 从源路径copy文件到目的路径
cp [OPTIONS] SOURCE... DIRECTORY --- 将多个源文件copy到指定的目录(多个源文件用空格分隔)
OPTIONS:
-a same as -dpR 尽量将源文件状态、权限等资料都照原装予以复制,而且是递归copy;
-r 表示递归copy,若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地;
-f 表示force,若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制; 

具体案例多多谷歌。

scp的具体用法:

scp是有Security的文件copy,基于ssh登陆。

scp是有Security的文件copy,基于ssh登陆。

命令基本格式:

scp [OPTIONS] file_source file_target
OPTIONS:
-v 和大多数 linux 命令中的 -v 意思同样 , 用来显示进度 . 能够用来查看链接、认证、 或是配置错误
-C 使能压缩选项
-P 选择端口 
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .

从本地复制到远程

scp local_file remote_username@remote_ip:remote_folder 
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root 

而后会提示你输入另外那台172.19.2.75主机的root用户的登陆密码,接着就开始copy了,复制目录加参数 -r 便可。

从远程复制到本地

scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/ 
scp root@172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

注意两点

1.若是远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视状况而定,命令格式以下:
scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具备可读取远程服务器相应文件的权限。 

cp scp 参考:http://www.jb51.net/LINUXjishu/70474.html

暂时写着么多辣。:)

tree命令以树状图列出目录的内容

来自: http://man.linuxde.net/tree
tree命令以树状图列出目录的内容。

来自: http://man.linuxde.net/tree tree命令以树状图列出目录的内容。
相关文章
相关标签/搜索