linux 常用命令

来源:互联网 发布:斯拉夫人知乎 编辑:程序博客网 时间:2024/06/13 06:10

(1)svn info ,svn revert ,svn diff
(2)svn switch --relocate http://192.168.12.35:548/svn/dfd/sdf/ http://192.168.3.65:45/svn/sdfsd/sdfd
(1)telnet 192.168.1.159 8026

(4)visudo,只有root用户才可以执行,其实编辑的是/etc/sudoers 文件 可以对其他用户授予root权限执行

test    ALL=(ALL)      /etc/init.d/httpd

然后就可以通过用户test启动apache了

启动方式如下:test登入系统,执行 sudo /etc/init.d/httpd restart  输入test的密码,就可以重启apache了。
(5)ls -1,ls -a,ll
(7) cd ..,cd data
(8) pwd  类似 cd -
(9) ps 显示当前系统中得该用户运行的进程列表
(10) vi options.cfg
     G,I,O,dd,q!,wq
(11) df 用来检查linux文件系统的磁盘空间占用情况
(12) free 查看linux 内存剩余情况
(13)sync 同步
(14)mv 表示将文件或目录改名或将文件由一个目录移入另一个目录中
(15)mv wdt data/ 表示将wdt文件移动到data目录下
(16)find a.txt
(17)mv wdt /mnt/mtdblock
(18)rm 删除一个目录中的一个或多个文件或目录 rm -rf pwp删除 pwp目录

(19)cp wdt data -rf

\cp abc/*  /var/abc/  -rf 可以防止提示

其他\rm也是一样的。
(20)rm a.txt b.txt c.txt 删除多个文件
(21)gzip 对文件进行压缩(只能压缩单个文件,不能压缩目录)
   gzip[压缩的文件名]
(22)tar 对文件目录进行打包或解包
    tar [参数][打包后文件名][文件目录列表]...
    tar cvzf main.tgz 1.txt 2.txt 3.txt 4.txt 5.txt
(23)gunzip main.gz 解压 .gz文件
    tar xvzf main.gz
    tar xvzf main-tft35.tgz 解压.tgz/.tar.gz后缀文件
    tar xvjf res.bz2解压
(24)ifconfig 查看和配置网络接口的地址和参数
(25)tftp 允许用户利用tftp协议上传和下载文件
    tftp[参数][目标文件][参数][主机名称或ip地址]
  必须打开tftpd32.exe
  tftp -r E.tgz -p 192.168.1.105(下载到哪一台本地主机的地址) 将E.tgz下载到电脑
  tftp -r E.tgz -g 192.168.1.105(上传的文件主机地址) 将E.tgz上传到考勤机
(26)制作固件升级程序时,必须先把main文件压缩成gz格式的压缩包
   再用tar命令打包成tgz格式的压缩包
gzip main.c ->main.gz
tar cvzf main.tgz main.gz ->main.tgz
tar xvzf main.tgz  ->main.gz
gunzip main.gz ->main

(27)关闭看门狗可以防止机器自动重启,在程序出问题时便于操作
(28)vi命令用来编辑
  esc->  i 切换到插入模式,此时光标当于开始输入文件处
  esc->  a 切换到插入模式,并从当前光标所在位置的下个位置开始输入文字
  esc->dd
  esc->yy esc->p  
  esc->:w 将编辑的文件保存到磁盘中
       :q 强制退出vi(对修改过得文件不做保存)
       :wq 保存退出
       :w[file]另存一个名为file的文件
  /searchname ?searchname
tftp -r main_pwp -l main -g 192.168.1.159;
(29)创建文件Helloworld.c  vi Helloworld.c
(30)date显示日期
(31)cal显示万年历
(32)cat 文件名称,直接可以查看文件内容
(33)ftp://192.168.1.250/上传文件
(34)ftp 192.168.116.62
用户名:anonymous
密码:回车
get nginx
(35)chomd +x 文件名 修改权限 chomd 777 nginx 所有用户都可以访问
(36)find / -name httpd.conf 在当前目录及其子目录下查找文件httpd.conf
(37)ps -ef|grep python 查找带有python 的进程
(38)kill -9 进程序号
(39)1、gnome-terminal 开启另一个终端
(40)、设置环境变量
       a、export PATH=$PATH:/opt/..
                查看是否已经设好,可用命令export查看:
                  [root@localhost bin]# export
        b、修改profile文件: 所有用户(不安全)
             修 改/etc/profile(对所有用户都是有效的)
             #vi /etc/profile
             在里面加入:
             export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

         c. 修改.bashrc文件:
            # vi /~/.bashrc
            (单独用户)
            修改~/.bashrc文件。 htt(74)p://www.icwin.net/bbs http://www.wantso.com (每个用户目录下都有,ls -all)
          cd ~
          vi .bashrc
          在里面加入:
           export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

           后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:
          # echo $PATH
          看看输出里面是不是已经有了/my_new_path这个路径了。
(41)uname -a 查看linux版本
(41) 设置虚拟机自动获取IP
    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    把BOOTPROTO设置为dhcp
    /etc/init.d/network restart
(42)关闭防火墙
service iptables stop
(43)修改root密码
重启电脑-》按E键-》选择kerel->按e键->输入“空格 single"->enter->回到kerel界面-》按b键->等待加载->password root
(44)创建用户、设置密码、修改用户、删除用户:
useradd testuser   创建用户testuser
passwd testuser   给已创建的用户testuser设置密码
说明:新创建的用户会在/home下创建一个用户目录testuser
usermod --help   修改用户这个命令的相关参数
userdel testuser  删除用户testuser
rm -rf testuser   删除用户testuser所在目录
(45)cp覆盖
新做了服务器,cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,这在大量cp覆盖操作的时候是不能忍受的。
把a目录下的文件复制到b目录
以下是代码片段:
cp –r a/* b
执行上面的命令时,b存在的每个文件都会提示是否覆盖;
以下是代码片段:
cp –r –f a/* b
执行上面的命令时,b存在的每个文件都不再会提示;
这是我们希望的理想状态,但是有时加了-f了,怎么还会有提示呢?原来一些服务器会默认增加别名 alias cp='cp -i',当你执行cp时,其实执行的是cp –i。
在终端执行alias就可以看出来了。
以下是代码片段:
[root@devdb ~]# alias
alias cp='cp -i'
可以这样解决
以下是代码片段:
[root@devdb ~]# vi ~/.bashrc
在alias cp='cp -i'前加上"#"注释掉这行,:wq!保存推出,然后重新登陆就可以了。
cp -rfu mnt/hgfs/trunk/* /opt/zkeco/

统计所有以json结尾的文件的大小
du -chs *.json
du -h --max-depth=0 dir_name


(46)bash
在Vim中解决这个问题,很简单,在Vim中利用替换功能就可以将“^M”都干掉,键入如下替换命令行:

  1)vi -b setup.sh

  2)在命令编辑行<就是: 按ESC键 然后shift+:冒号>输入:%s/^M//g

  注意:上述命令行中的“^M”符,不是“^”再加上“M”,而是由“Ctrl+v”、“Ctrl+M”键生成的。

  这样替换掉以后,保存就可以执行了。当然还有其他的替换方式比如:

  a.一些linux版本有 dos2unix 程序,可以用来祛除^M。

  b.cat filename1 | tr -d "\r" > newfile 去掉^M生成一个新文件,还有sed命令等,凡是可以替换的命令都是可以用来新生成一个文件的。


(47)service network restart
(48)netstats apn |grep 80 查找80端口是否被占用
(49)vi /etc/exports 设置被别人挂接
  opt/zkeco 10.0.36.*(rw,sync,no_root_squash)
  当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
  [共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

(50)当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。

    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
    du可以查看文件及文件夹的大小。

    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。

    下面分别简要介绍

    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:

以下是代码片段:

[yayug@yayu ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             3.9G  300M  3.4G   8% /
/dev/sda7             100G  188M   95G   1% /data0
/dev/sdb1             133G   80G   47G  64% /data1
/dev/sda6             7.8G  218M  7.2G   3% /var
/dev/sda5             7.8G  166M  7.2G   3% /tmp
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
tmpfs                 2.0G     0  2.0G   0% /dev/shm

    参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。

    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

    du:查询文件或文件夹的磁盘使用空间

    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.

    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。

以下是代码片段:

[root@bsso yayu]# du -h --max-depth=1 work/testing
27M     work/testing/logs
35M     work/testing

[root@bsso yayu]# du -h --max-depth=1 work/testing/*
8.0K    work/testing/func.php
27M     work/testing/logs
8.1M    work/testing/nohup.out
8.0K    work/testing/testing_c.php
12K     work/testing/testing_func_reg.php
8.0K    work/testing/testing_get.php
8.0K    work/testing/testing_g.php
8.0K    work/testing/var.php

[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
27M     work/testing/logs/

[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
24K     work/testing/logs/errdate.log_show.log
8.0K    work/testing/logs/pertime_show.log
27M     work/testing/logs/show.log

    值得注意的是,看见一个针对du和df命令异同的文章:《du df 差异导致文件系统误报解决》。

    du 统计文件大小相加
    df  统计数据块使用情况

    如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。

    如此一来在定期删除 /var/spool/clientmqueue下面的文件时,如果没有杀掉其进程,那么空间一直没有释放。

    使用下面的命令杀掉进程之后,系统恢复。
    fuser -u /var/spool/clientmqueue

(51)删除自定目录下面的文件
find /opt/release_zkeco/upzkeco/trunk/ -iname "*" -type f|xargs rm -rf
(52)more 或者 cat查看文件内容
(53)iostat -t 1 10
(54)ps -eo pid,lstart,etime 查看进程运行时间
    查看进程启动时创建的文件,来查看进程运行的时间,ls -ld /proc/YOUR-PROCESS-PID

(55)grep -a  -e "2013-06-10 .* phone .* connect"  server1_pv-2013-06-10.log|grep "phone .* connect" -a -o|sort|uniq|wc -l

(56)iptables 设置 /etc/sysconfig/iptables
    完了后,root权限重启
    sudo /etc/init.d/iptables restart
(57)redhat查看版本 cat /etc/redhat-release
    uname  -a
(58)socket相关
    a、文件句柄设置ulimit
        ulimit  -n 查看当前一个socket可以开的句柄数目
        设置大小:
        临时会话设置:
        ulimit -n 10000
        永久设置:
        vi /etc/security/limits.conf
        在末尾加入,这样就设置成10000了,默认系统是1024个
        *      hard     nofile     10000
        
        退出重新登入
    b、系统参数优化
        vi /etc/sysctl.conf 在后面添加
        net.core.rmem_max = 33554432
        net.core.wmem_max = 33554432
        net.ipv4.tcp_rmem = 4096 87380 16777216
        net.ipv4.tcp_wmem = 4096 65536 16777216
        net.core.netdev_max_backlog = 3000
        net.ipv4.tcp_tw_recycle = 1
        net.ipv4.tcp_tw_reuse  = 1
        net.ipv4.tcp_fin_timeout = 30
        net.ipv4.tcp_keepalive_time  = 60
        net.ipv4.tcp_max_syn_backlog = 8192
        
        net.ipv4.tcp_orphan_retries = 4
        net.ipv4.tcp_max_orphans = 8192
        net.ipv4.tcp_sack = 1
        net.ipv4.tcp_fack = 1
        net.ipv4.tcp_dsack = 1
        net.ipv4.tcp_keepalive_intvl = 15
        net.ipv4.tcp_keepalive_probes = 5
    
        然后执行以下命令使其生效:
        /sbin/sysctl -A
        或则
        /sbin/sysctl -p /etc/sysctl.conf
        
(59)查看文件的状态
    a、查看文件的状态
        stat a.txt
        stat /path/dir/*
        
    b、查找某段时间更改过的文件(2013-06-03 17:09:29~2013-06-03 17:09:32)
        使用touch在/tmp目录下,更改两个文件的时间,然后通过其他文件与其比较来查找出
        想要的文件
        touch --date "2013-06-03 17:09:29" /tmp/start
        touch --date "2013-06-03 17:09:32" /tmp/end
         find ./ -type f -iname "*.py" -newer /tmp/start -not -newer /tmp/end
(60)service iptables restart
(61)AliasMatch ^/[^/]*/iptv/.*//static/(.*) /var/www/area_dx_zhongyou_fujian/static/$1
(62)查看进程占用资源情况:
    top -d 1 -p 21718
    ps -aux|grep server.py
    pmap 21718
    cat /proc/21718/status
(63)跟踪查看日志(过滤包含 192.168.0.3 字符串)
    tail -f /var/log/httpd/abc-access_log|grep 192.168.0.3
(64)mount -o username=Administrator,password=123456 //192.168.7.130/floder /mnt/lym
(65)rpm -ivh **.rpm
    rpm -qa|grp **.rpm
    rpm -e **.rpm
(66)虚拟机挂载宿主机的iso
    在虚拟机的菜单栏里,选择:虚拟机->设置,会打开virtual machine settings窗口,在该窗口双击CD/DVD,在右侧选择“使用ISO镜像”,
    点击浏览输入镜像所在路径。
    进入Linux系统即可发现,镜像已被挂载
   首先在你的VMware的setting里面设置CD是选到指定的ISO文件中,然后切换到虚拟机中,敲以下几个命令就OK。
    先看看你的光驱:  ls -l /dev/cdrom |grep cd
    mkdir /mnt/cdrom              ;先是建立一个挂载文件夹出来
    mount /dev/cdrom /mnt/cdrom      ;将ISO所在的/dev/cdrom里面的文件挂载到指定/mnt/cdrom里面,完成挂载.

(67)gcc 或则其他sz ,rz 命令没有的情况
直接到光驱iso所在目录Server中找相应的rpm

(68)rpm -ivh gcc-4.4.4-13.el6.x86_64.rpm
    cloog-ppl >= 0.15 is needed by gcc-4.4.4-13.el6.x86_64
    cpp = 4.4.4-13.el6 is needed by gcc-4.4.4-13.el6.x86_64
    解决办法,先安装以下两个包:
    rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
    rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm

    嗯……确定是一个,因为那时候就是用这个光盘的东西装的系统。
    后来解决了,不用yum,只是缺了两个包而已。
    之前报这个依赖
            libmpfr.so.1 is needed by cpp-4.4.4-13.el6.i686
            libppl.so.7 is needed by cloog-ppl-0.15.7-1.2.el6.i686
            libppl_c.so.2 is needed by cloog-ppl-0.15.7-1.2.el6.i686

    是缺了这两个包……
            mpfr-2.4.1-6.el6.x86_64.rpm
            ppl-0.10.2-11.el6.x86_64.rpm


(69)得到系统的位数
    getconf LONG_BIT

(70)修改系统时间:
    date -s 10/9/13         修改为2013-09-10
    date -s 13:12:00        修改时间为:13:12:00
    
    
(71)sftp -oPort=6013 winside@211.144.119.65

(72)ftp
    lcd 调整本地目录
    get 获取ftp服务器上面的收到当前登入的目录
    put 想ftp服务器上面放东西
    cd 到ftp服务的某个目录
    bye 退出当前会话
    
(73) 将当前目录下的所有jad文件中的 192.168.20.222  替换成   192.168.0.4
    find ./ -type f -name "*.jad" -print -exec sed -i "s/192.168.20.222/192.168.0.4/g" {} \;


(74)crontab -l 查看定时任务
      crontab -e 编辑
    
    # ftp bills
    */5 * * * * /var/www/ss/scripts/dd.py
    
    注意,dd.py必须有可执行权限
    
充值的时候,需要再下面文件
C:\WINDOWS\system32\drivers\etc\hosts
加入:
127.0.0.1       localhost
119.44.223.44    mx.suning.com
119.44.223.44    zsj.suning.com
119.44.223.42    mxpays.suning.com


(75)sudo rpm -ivh policycoreutils-python-2.0.83-19.30.el6.x86_64.rpm
 semanage包

semanage port -a -t http_port_t -p tcp 8210

(76)vi /etc/selinux/config
    更改 SELINUX=disabled
    :wq
    然后dos中执行
    setenforce 0
原创粉丝点击