Linux.常用命令介绍

yum 安装各类软件

CentOs下的软件安装一般可直接用yum命令完成,这是个非常简单易用的命令,通常就是一句话安装完成,例如我们安装nginx,就是

** yum install nginx **

  • yum 安装软件
yum install <package_name>
  • yum 查看已安装软件
yum list installed
  • yum 删除软件
yum remove <package_name>

rsync 文件同步

rsync是个非常快速的文件同步工具,会在两个目录选择有变化的文件然后只传送变化的问题

  • 同步word-press:
rsync -avz --exclude "wp-config.php" /mnt/ddd/ 192.168.100.10:/vhost/ddd/

这命令就是将本地 /mnt/ddd目录下的文件同步到 192.168.100.10机器的/vhost/ddd目录下
--exclude "wp-config.php" 表示排除这个文件,这个文件存储了数据库参数等配置信息。

  • 同步jsp文件
rsync -av --exclude ".svn" src/WebContent/jsp/ /mnt/disk1/huinong/webapp/shh/jsp/
rsync -av --exclude ".svn" src/WebContent/static/ /mnt/disk1/huinong/webapp/shh/static/

这个例子的关键点在于要同步过去的文件是从svn中获取的,所以有.svn的目录,在同步时,要排除所有目录下的.svn目录

  • 注意事项
    rsync是使用ssh通道同步文件的,所以执行时,必须可以ssh到远程服务器,
    同时必须能将操作者的key发送到远程服务器,所以在SecureCRT中在高级选项中要启用OpenSSH代理程序转发

  • -e参数
    可通过-e参数修改ssh的参数,例如 我们用ssh时,用的是huinong的用户

rsync -avz -e "ssh -l huinong" /mnt/ddd/ 192.168.100.10:/vhost/ddd/

如此类推,如果远程机器的ssh端口不是22,也可通过类似方法解决

  • 同步到正式服务器的例子
rsync -avz -e "ssh -l huinong -p 2233" src/build/dist/war/ web1:/mnt/disk1/huinong/uploadFromDev/shh/uploaded/

Web项目build脚本例子

updateFormGit.sh

#!/bin/sh

echo "从git中更新文件"
cd src
git pull
cd ..

verFile=src/build/dist/war/WEB-INF/install/version.txt

echo "生成版本 文件:"$verFile
echo "-------------------------------------"
echo 'SVN版本:' > $verFile

svn up src >> $verFile

datestr=`date '+%Y-%m-%d %H %T'`
echo '更新时间e:'$datestr >> $verFile

cat $verFile

version文件最终记录了svn版本号以及build的时间,方便查询以及从svn还原当时的代码

screen介绍

当我们登录远程服务器时,如果发生了断线的情况,终端向本次登录时运行的所有程序发送终止的信号,这会导致我们的程序无故退出。常见解决办法是将程序扔后台后,立刻正常登出一次。更换的办法是用screen。
screen的作用就是开一个需要的终端,该终端因为是虚拟的,所以不会发送异常断线的情况,而且还可以保留所有的屏幕场景,例如我们程序中如果用了system.out或者ex.printStackTrace() 之类的代码时,这些内容是输出到运行程序的终端,如果终端退出了,我们就看不到了,但如果是在screen的虚拟终端运行程序,所有的输入都在。

  • 典型用法:创建一个虚拟终端

    ```
    screen -S 终端名字</p></li>
    </ul>

    <pre class="line-numbers prism-highlight" data-start="1"><code class="language-null"><br />+ 查询已有的虚拟终端

    ```
    screen -list

    • 重新连接虚拟终端

      ```
      screen -r 名字


    + 虚拟终端内的常用快捷键 Crtl-A D 将终端挂起 # 其他命令 + df : 查看硬盘空间的使用情况 -h的参数就是显示空间时,用K M 这类大家熟悉的单位 ```sh [huinong@devserver ~]df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_devserver-lv_root 50G 6.6G 41G 15% / tmpfs 6.9G 2.5G 4.4G 37% /dev/shm /dev/sda1 485M 39M 421M 9% /boot /dev/mapper/vg_devserver-lv_home 860G 55G 762G 7% /home``` + free : 查看内存使用情况 ```sh [huinong@devserver ~]free -m total used free shared buffers cached Mem: 13929 13062 866 0 312 9269 -/+ buffers/cache: 3480 10448 Swap: 12135 64 12071
    Mem是物理内存,Swap是硬盘上的内存交互区
    横向的 total就是合计, 但used并不是内存实际使用量,而是连系统的内存缓存后的合计数,所以实际使用量是 used-cached,必须扣除缓存占据的空间
    
    • top 查看经常使用情况
      这个命令是执行后,需要用ctrl-c退出,可以通过按键修改一些参数,例如 先按s,表示要修改刷新的频率,在按1,表示1秒刷新一次。按h可以看到所有的命令

    • sudo 命令 : 用root的身份执行某个命令

    • pstree :将所有在运行的进程用树形结构显示出来
    • cat 文件名 : 查看一个文件
    • tail [参数] 文件名 : 看一个文件最后的几行,常用参数有 -f 持续看这个文件,不退出; -n100 看最后的100行
    • sudo iptables --list : 查看防火墙设置,这个命令需要用root权限执行,所以需要在前面加sudo
    • sudo netstat -nlp : 查看有什么进程在什么端口监听
    • kill -9 进程号 : 强行杀掉某个进程,注意,我们一般不用这个命令。
    • kill 进程号 : 通知某个进程退出,真的我们的java程序,如果用这个命令杀进程,spring中有@PreDestroyd注解的方法会被执行,如果使用-9的参数,则不会执行,这个是我们常用的杀进程命令。
    • alias 缩写=全命令 : 我们总有些常用的命令,我们嫌每次都敲这么长太烦,所以我们会将这些常用的命令定义为简短的字符,在内网开发服务器上执行alias可看到我们定义了那些
    • cp : copy
    • mv: move
    • ll : ls -l 的缩写,如果加-a参数,表示也查看隐藏的文件。

    系统关键文件

    • /etc/profile 登录时默认会自动运行脚本,你们会有些路径设置
    • /etc/bashrc 登录时,如果的是bash,系统默认的执行的脚本,但不是直接调用,系统是调用用户目录下的.bashrc脚本,在该脚本中调用/etc/bashrc,但有如果用户目录下不存在.bashrc这个文件,/etc/bashrc也不会被执行。

    systemctl

    • 查看所有安装的服务 systemctl list-unit-files -all
Sidebar