最近一个项目上线了,在开发的过程中用到了一些linux知识,感觉收获不小,虽然自己对于linux命令也懂一些,但是真正用到项目中的这还是第一次,现在来总结一下。

1、date

两台服务器的时间不同步了,时间也不是正确的时间,用date来修改一下

   
   
   
   
  1. date -s "2011-03-31 10:18:25" 

这样时间就修改了,修改完后,记得输入:clock -w ,把系统时间写入CMOS。

2、ntpdate

国家授时中心服务器IP地址(210.72.145.44),在linux的shell界面下输入

   
   
   
   
  1. ntpdate 210.72.145.44 

这样时间就自动更新了。

3、crontab

这个是定时的东西,大家可以参照这篇文章

http://sucre.blog.51cto.com/1084905/531635

4、test

这个命令是用来判断某个文件是否存在的,具体命令如下:

   
   
   
   
  1. test 文件运算符 
  2. 利用这些运算符,您可以在程序中根据对文件类型的评估结果执行不同的操作: 
  3. -b file 如果文件为一个块特殊文件,则为真 
  4. -c file 如果文件为一个字符特殊文件,则为真 
  5. -d file 如果文件为一个目录,则为真 
  6. -e file 如果文件存在,则为真 
  7. -f file 如果文件为一个普通文件,则为真 
  8. -g file 如果设置了文件的 SGID 位,则为真 
  9. -G file 如果文件存在且归该组所有,则为真 
  10. -k file 如果设置了文件的粘着位,则为真 
  11. -O file 如果文件存在并且归该用户所有,则为真 
  12. -p file 如果文件为一个命名管道,则为真 
  13. -r file 如果文件可读,则为真 
  14. -s file 如果文件的长度不为零,则为真 
  15. -S file 如果文件为一个套接字特殊文件,则为真 
  16. -t fd 如果 fd 是一个与终端相连的打开的文件描述符(fd 默认为 1),则为真 
  17. -u file 如果设置了文件的 SUID 位,则为真 
  18. -w file 如果文件可写,则为真 
  19. -x file 如果文件可执行,则为真 

例如,判断本地文件是否存在

   
   
   
   
  1. test -e /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/meeting.txt&&echo true 

文件存在则会显示true

也可以判断远程服务器的文件是否存在

   
   
   
   
  1. ssh [email protected] "test -e /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/meeting.txt&&echo true" 

文件存在显示true

5、scp

这是一个复制命令,是基于ssh的复制命令,网络间安全的传输文件,具体命令如下:

   
   
   
   
  1. usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] 
  2.            [-l limit] [-o ssh_option] [-P port] [-S program] 
  3.            [[user@]host1:]file1 [...] [[user@]host2:]file2 

解释一下

   
   
   
   
  1. scp 源用户名@IP地址:文件名1 目标用户名@IP地址:文件名2  

  2. 可能有用的几个参数:  
  3. -v 和大多数linux命令中的-v意思一样,用来显示进度.可以用来查看连接,认证,或是配置错误.  
  4. -C 使能压缩选项.  
  5. -P 选择端口.注意-p已经被rcp使用.  
  6. -4 强行使用IPV4地址.  
  7. -6 强行使用IPV6地址.  

例如:

本地->远程

   
   
   
   
  1. scp /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/backup.sh [email protected]:/opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload 

远程->本地

刚好是一个反过程

   
   
   
   
  1. scp [email protected]:/opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/backup.sh /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload  

 如果要拷贝文件夹,scp -r 就行了其它都一样

6、ssh

可以参考这篇文章http://sucre.blog.51cto.com/1084905/531677

7、rsync

可以参考这篇文章http://os.51cto.com/art/200903/113682.htm

不过要注意了,这篇文章中有一处地方是错误的,在服务器端对rsyncd.scrt进行配置的时候,直接输入密码123456就可以了,配置客户端的时候要写成"用户名:密码"的形式。

同时要以参考这篇文章http://os.51cto.com/art/200911/165717.htm

8、sftp和rm

   
   
   
   
  1. sftp [email protected] 

 这样就连接上远程服务器了,由于先前配置过ssh了,所以不用输入密码,直接登陆即可,rm -rf删除本地的文件就不说了,说一下删除远程的文件

   
   
   
   
  1. ssh [email protected] rm -rf /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/meeting.txt 

具体说说stp

sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作。

举例,如远程主机的 IP 是 202.206.64.33或者是域名www.hebust.edu.cn,用户名是  fyt ,在命令行模式下:sftp [email protected]或者  [email protected]。回车提示输入密码。进入提示符

sftp>

如果登陆远程机器不是为了上传下载文件,而是要修改远程主机上的某些文件。可以

ssh  [email protected] (其实sftp就是ssh 的一个程式。)

sftp> get /var/www/fuyatao/index.php  /home/fuyatao/
这条语句将从远程主机的  /var/www/fuyatao/目录下将 index.php 下载到本地  /home/fuyatao/目录下。

sftp> put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/
这条语句将把本地 /home/fuyatao/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var/www/fuyatao/ 目录下。

你如果不知道远程主机的目录是什么样, pwd命令可以帮您查询远程主机的当前路径。查询本机当前工作目录 lpwd.

改变路径可以用cd ,改变本机路径可以用 lcd;

ls rm rmdir mkdir 这些命令都可以使用。同理调用本机都是加 l , 即 lls lrm.

要离开sftp,用exit 或quit、 bye 均可。详细情况可以查阅 man  sftp.

如果觉得在命令行模式下不太方便,可以 sudo apt-get install gftp。在图形界面下操作就简便多了。

有什么不明白的给我留言,等下回再与大家分享。