• 常用Linux命令、包括vi 、svn


    /etc/init.d/network restart
    //===========================================
    更新脚本
    cd /www/scripts
    更新站点
    ./staging_deploy.sh -d web
    更新resource
    ./staging_deploy.sh -r resource
    ./staging_deploy.sh -n webplus

    //31上手动获包
    cd /www/staging/svn/php
    rm -rf
    wget http://i.fx-func.com/svn/juxiang/php/webplus.tar.gz --user=connect --password=20110609
    //===============
    /usr/local/nginx/conf/vhosts.enabled

    //sed修改文件
    sed -e 查看
    sed -i '/newbuddy/s/9072/9010/g' /www/wwwroot/website/system/config.php
    ==============================================
    192.168.200.5 svn代码库
    /home/www/jenkins/jobs/website-package-online/workspace/Application

    cd /www/tar/Resource
    /www/tar
    svn st Resource/
    svn ci Resource/ -m "manual"
    cd Resource/
    svn st pc/
    pwd
    svn revert -R /www/tar/Resource/pc
    svn up
    cd ..
    svn st Resource/
    svn ci -m "manual"
    svn info Resource/
    cd Resource/
    svn info

    SVN 基本操作

      检出checkout(co)
      svn co ${url}

      更新update(up)
      svn up

      提交commit(ci)
      svn ci -m " 修改xxx 问题"

      查看当前目录最近5 次提交记录
      svn log -l 5

      查看当前工作拷贝信息
      svn info

      查看当前未提交的文件status(st)
      svn st
      这个命令输出每个添加、修改、删除过的目录和文件,前面的C 表示冲突,要特别注意。linux 下也可以用svn st | grep ^C 来查看冲突项。

      查看当前修改内容
      svn diff

      撤销当前修改,覆盖为资源库最新版本
      svn revert path/filename

      递归撤销当前目录修改,覆盖为资源库最新版本。注意新加的文件不会被删除,这时也可以删除工作拷贝,重新checkout
      svn revert . --recursive

    合并

      SVN merge

    递归向版本增文件: svn add * --force
    find GameSite/system/ -maxdepth 100 -name .svn
    =============================
    /etc/init.d/php-fpm restart
    /etc/init.d/nginx reload | restart
    scp /www/run/fdfsclient/picture.php root@10.10.208.83:/www/temp

    find ./ -mtime 0:返回最近24小时内修改过的文件

    find /home/user -cmin -60 文件夹下最近一个小时内修改过的文件

    vi编辑器
    :50,100s/new//gn 出现的次数

    :%s/a/b/g 全部替换 或者 :s/a/b/ 如果不加/g则指替换第一行
    或者用 : set nu

    :10,20s/a/b/g 替换10--20行的a

    ll | grep .php 列出都是php的文件
    ll viso* 列出包含viso关键字的文件夹
    ls [P-X]* -d 列出p到x开头的文件

    :%s//images/http://static.kunlun.com/web/kl/images/g全部替换

    http://static.kunlun.com/web/sg/images/input_bg1.jpg

    unzip test.zip

    sudo -i 权限

    rsync -aqC /data/app/www/cms1.kunlun.com/mf/* /data/app/www/www.mffy.renren.com/

    cp -arf /data/app/www/www.mffy.renren.com/login.php /data/app/www/cms1.kunlun.com/mf/

    /usr/sbin/nginx -t -c /data/app/conf/nginx.conf

    常用命令
    touch 生成空文件 /bin/touch
    cd - 回到上次访问的目录
    cd !$
    cp -a 拷贝目录
    cp -f强制拷贝
    cp -p 拷贝保留原文件的日期
    cat 不管文件多长一次都读取出来
    统计出现的行数
    cat xxx.txt |grep "xxx" |wc -l
    如果统计出现的次数
    awk '{s+=gsub(/目标字符串/,"&")}END{print s}' 目标文件名
    awk '{s+=gsub(/w/,"&")}END{print s}' aa.txt

    more 分屏读取文件 f或空格显示下一页 回车键显示下一行 q退出
    less 分屏查看文件 pageup上一屏 pagedown 下一屏 home回到开头 end回到结尾
    head -n查看文件的前n行
    tail -n查看文件的最后n行
    find ./ -name .metadata |xargs ls -lt //按时间查看文件

    ln -s [源文件] [目标文件] 注意:源文件和目标文件一定要使用绝对路径,硬链接不能跨设备(df -T)
    mkdir -p 建子目录 /a/b/c/d
    whereis 显示系统命令和帮助手册的命令

    find [搜索路径] [搜索关键字] [文件或目录] find /etc/ -name 'f*'
    locate httpd.conf 整个文件搜索【updatedb重新更新索引文件,便于查到】
    grep root passwd在文件里查找匹配的内容 grep -v "#" /etc/passwd 排除带#的行

    压缩文件
    只能压缩文件,不保留原文件
    gzip GUN zip
    gzip -1 file 表示快速压缩
    gzip -9 file nine nice 最佳状态压缩
    gunzip file.gz 解压缩
    gzip -d file.gz

    压缩 gzip route.php
    解压 gunzip route.gz

    压缩目录
    tar 打包
    tar -c 产生一个.tar文件
    tar -v 观看压缩过程
    tar -f 指定压缩后的文件名
    tar cvf 可以省略- tar cvf testdir.tar testdir
    tar xvf 解压缩
    解压到指定目录 tar zxf testdir.tar.gz -C web
    tar zcvf 最佳压缩 tar zcvf testdir.tar.gz testdir[目录名]
    tar zxvf 解压缩

    tar -tf 查看打包的内容

    通信命令
    write 发送消息 write yuejide sfdsf
    wall 给所有用户发消息 wall fdfdf
    mesg y接受消息
    mesg n屏蔽消息
    mail 收信
    h查看列表
    r回信
    q退出
    mail 收件人 发信

    init 0 关机
    init 6 重启
    shutdown -h now
    reboot

    导出 sz test.txt
    导入 rz

    Linux 网络命令
    write 给用户发信息 ctrl+D 保存结束
    write linzhilin
    xiang he ni chifan ctrl+D 保存退出
    ping 测试网络连通性
    ping 192.168.0.1
    ifconfig 查看和设置网卡信息
    ifconfig eth0 192.168.0.2
    mail 查看系统发送的文件
    输入序列号直接查看
    h 查看列表
    d 序列号 删除邮件
    q 退出
    last 显示计算机所有用户登录的时间信息
    lastlog 命令查看所有用户登录信息
    last -u uid 查看某个用户登录信息
    traceroute 显示数据包到主机间的路径
    netstat 【选项】 显示网络相关信息
    -t 查看TCP协议的信息
    -u 查看UDP协议的信息
    -l 监听
    -r 路由
    -n 显示IP地址和端口号
    netstat -tlun 查看本机监听的端口
    netstat -an 查看本机所有的网络连接 netstat -an | grep -v "10.10.208.84" | grep ESTABLISHED 查看当前和本机连接的用户
    netstat -rn 查看本机路由表

    setup 配置网络、
    mount 挂载
    创建挂载点 mkdir /mnt/cdrom
    mount /dev/src0[设备名称] /mnt/cdrom
    umount /dev/src0 卸载挂载点

    strace 跟踪进程的命令 strace -p 10747
    #已易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小
    du -sh [dirname|filename]
    如:
    当前目录的大小:
    du -sh .
    当前目录下个文件或目录的大小:
    du -sh *
    显示前10个占用空间最大的文件或目录:
    du -s * | sort -nr | head

    vi编辑
    i a o
    ctrl+f 下一页
    ctrl+b 上一页
    ctrl+d 下一屏
    ctrl+u 上一屏
    G 最后一行
    gg 第一行

    i 光标所在处插入
    I 光标定位到行首插入

    a 光标所在的字符后插入
    A 光标所在的行末尾插入

    o 插入定位到下一行
    O 插入定位到上一行

    0 定位到某行的开头
    $ 定位到某行的末尾

    R 从光标所在处开始替换字符

    n 向下查找
    N 向上查找

    :/1067,1060s/logs/PHP/g n1行---n2行全部替换

    x向后删除
    X向前删除
    dd删除一行
    ndd删除n行
    dG删除光标所在行到最后一行的所有数据
    d1G删除光标所在行到第一行的所有数据
    d$删除光标所在行到该行的最后一个字符
    d0删除光标所在行到该行的最前面一个字符
    p复制光标所在的向下n列
    P复制光标所在的向上N列
    u撤销操作

    :r /etc/issue 导入到光标所在的位置 :r +文件名
    :r !date 导入命令结果到当前文件

    :map 快捷键 触发命令
    :map ^P(ctrl+v+p) I#<ESC>
    :map ^B 0x
    :map ^M yuejide@163.com<ESC>

    注释多行
    :4,8s/^/#/g
    取消注释
    :4,8s/^#//g
    :4,8s/^////g

    :ab mymail yuejide@163.com 只要输入mymail则就显示邮箱地址

    创建保存快捷vim命令
    vi /root/.vimrc root用户
    vi /home/yuejide/.vimrc 普通用户
    set nu
    map ^P I#<ESC>

    一次性安排计划任务命令 at
    某个时间点执行某个程序(命令),一定要使用命令的全路径
    at 17:40
    >/bin/cp /www/test/* /www/xsphp/
    ctrl+d退出
    at -l或者atq 查看任务执行情况
    at -d 或者atrm 任务号
    at 17:30 月/日/年
    at -f 文件 时间点
    at < one.txt 时间点
    at配置文件
    /etc/at.allow 文件中列出的用户都能使用此命令
    /etc/at.deny 文件中列出的用户都不能使用此命令
    两个文件都不存在,只有root用户才能使用此命令,都存在且都为空则所有用户都能使用此命令

    周期性安排计划任务crontab
    service crond status //查看状态
    ps aux | grep crond
    启动 /sbin/service crond start
    停止 /sbin/service crond stop
    * * * * * /www/test/btest.sh
    分 时 日 月 周
    crontab -l 列表
    crontab -e 编辑
    crontab -r 删除
    /etc/cron.allow 如果这个文件存在,文件中包含的用户名可以使用crontab。
    /etc/cron.deny 如果这个文件存在,文件中包含的用户名不能使用crontab。
    */5 * * * * /usr/local/php/bin/php /www/faetest/yuejide/tt.php //5分钟往数据库添加下记录

    查看进程
    ps -el
    ps -aux
    S 休眠 D不可中断的休眠 R运行 Z僵死状态 T停止状态
    杀死进程
    killall httpd 杀死所有和httpd相关的进程
    kill 进程号
    kill -9 杀死僵死进程
    日期 date +%Y-%m-%d

    Linux用户
    1、超级用户root 具有操作系统的一切权限uid为0
    2、普通用户 具有操作系统有限的权限 uid 500 -- 6000
    3、伪用户 是为了方便系统管理,满足相应的系统进程文件属主的要求,不能登录 uid 1 -- 499
    passwd /etc/passwd 通过这个文件管理用户,只定义账号不定义口令

    账号名称:root
    用户密码:x
    用户标识(用户ID):0
    用户标识(用户组ID):0
    用户相关信息:root
    用户家目录:用户自己的目录
    用户环境:/bin/bash

    useradd 创建用户
    -u -g -G -d -s -c -e -k -m -M -r
    userdel 删除用户
    tail -5 /etc/passwd 用户信息
    tail -5 /etc/shadow 密码
    -r 删除用户家目录及所有信息
    更改用户名
    usermod -l thisueser myuser
    usermode -L thisuser 锁定用户
    usermode -U thisuser 解锁用户

    passwd -l
    passwd -u
    passwd -s 解锁
    Linux用户组
    /etc/group
    1、组名
    2、组口令
    3、GID
    4、组内用户列表(属于该组的所有用户名表)

    useradd -g mygroup myuser1 添加用户到所属组
    userdel -r myuser1 删除用户
    groupadd 添加
    groupmod 修改
    groupdel 删除
    gpasswd -a redhat newgroup 修改用户所属组
    gpasswd -d redhat newgroup 删除所属用户组

    id 查看一个用户的uid和gid
    id[选项] 用户名
    id -g yuejide
    id -G yuejide
    finger 查看用户的相关信息,包括的用户的组目录启动shell
    finger yuejide

    chmod -R 权限 文件
    chown 改变文件或者目录的所有人
    chown -R 包括子目录
    chown -R www:www /www/run 同时修改所有者和所属组
    chgrp 改变文件或者目录的所属组
    find views/ -maxdepth 100 -type d -name .svn | xargs chown -R www:www
    find / -iname *?//不区分大小写,精准搜索用?
    find / -size +204800 大于100M的文件
    find / -size -204800 小于100M的文件
    find /home -user www//根据所有者来查找
    find /home -group www//所属组
    find /home -cmin -5 5分钟内修改过属性的文件和目录
    -amin//访问过的
    -cmin//改变属性
    -mmin//修改内容
    -type d目录
    f文件
    find /etc -name initab -exec ls -l {} ;查到后把文件属性列出来

    查找目录下的所有文件中是否含有某个字符串
    find .|xargs grep -ri "IBM"
    查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
    find .|xargs grep -ri "IBM" -l

    shell编程
    查看历史指令 history列出所有 !99 执行第99条指令 !str 离最近的一条命令
    history -c 清楚所有指令
    输入输出 ls > test.txt 写入到test.txt文件中,输出重定向 >>追加输出重定向
    多少行 ll | wc -l

    set查看系统里所有变量 unset删除变量
    env全局变量
    export把局部变量变成全局变量
    重启后不让环境变量失效
    vi /etc/profile

    运算
    expr $aa * $bb 乘法,中间必须要有空格

    $# 命令中位置参数的个数
    $* 所有位置参数的内容
    $? 上一条命令执行后返回的状态,当前返回状态0时表示正常,非0值时表示异常或者出错
    $$当前所在进程的进程号
    $!后台运行的最后一个进程号
    $0当前执行的进程/程序名

    -d是否为目录文件directory
    -e文件是否存在exist
    -f是否为文件file
    -r是否有读的权限read
    -w是否有写的权限write
    -x是否有执行权限excute
    -L是否为符号连接文件Link

    -eq:等于equal
    -nq:不等于no equal
    -gt:大于greater than
    -lt:小于lesser than
    -le:小于或等于lesser or equal
    -ge:大于或等于greater or equal
    字符串比较
    = 字符串内容相同
    != 字符串内容不相同
    -z 字符串内容为空
    &&与
    ||或
    !取反

    语句
    if ;then
    elif ;then
    else
    fi

    for 变量名 in 取值列表
    do
    命令序列
    done

    while[ true ]
    do
    命令序列
    done

    case $i in
    start)
    echo "start......"
    ;;
    stop)
    echo "stop......."
    ;;
    restart)
    echo "restart......"
    ;;
    esac

    rpm
    rpm -qa|grep yum|xargs rpm -e --nodeps
    rpm -e --nodeps卸载

  • 相关阅读:
    .NET中常用获取程序根目录的方法
    多态的实现
    9个优秀网上免费标签云生成工具
    Asp.Net自定义错误页心得介绍
    C# string.Format 格式化使用说明
    接口编程,反射创建对象
    DllImport使用的一点整理
    System.Data.ConstraintException: 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
    C# OleDb读取Excel文件 避免出现 科学计数法 的列
    C++翻译C#
  • 原文地址:https://www.cnblogs.com/gide/p/4460729.html
Copyright © 2020-2023  润新知