linux 常用命令

本文汇总了Linux系统中常用的命令,包括文件管理、进程管理、网络配置等实用技巧,适用于日常开发与系统维护。


(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  ttt 删除 ttt目录

(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 test@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
   

(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

(76) 批量杀死进程

1、ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9

说明:
“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。
“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

2、使用pgrep:
grep!pgrep的p表明了这个命令是专门用于进程查询的grep。
查看火狐的PID
$ pgrep firefox
1827

$kill -s 9 1827

3、使用pkill
pkill=pgrep+kill
# pkill -9 firefox
说明:"-9" 即发送的信号是9,pkill与kill在这点的差别是:pkill无须 “s”,终止信号等级直接跟在 “-“ 后面。之前我一直以为是 "-s 9",结果每次运行都无法终止进程。

ps -ef | grep WebLogic | grep -v grep | awk '{print $2}' | xargs kill -s 9 :杀死所有WebLogic进程

 

源码地址: https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
《基于STM32微控制器集成温湿度监测与显示功能的系统实现方案》 本方案提供了一套完整的嵌入式系统设计参考,实现了环境参数的实时采集、可视化呈现与异常状态提示。系统核心采用意法半导体公司生产的STM32系列32位微控制器作为主控单元,负责协调各外设模块的工作流程。 系统通过数字式温湿度复合传感器周期性获取环境参数,该传感器采用单总线通信协议,具有响应迅速、数据可靠的特点。采集到的数值信息通过两种途径进行处理:首先,数据被传输至有机发光二极管显示屏进行实时图形化显示,该显示屏支持高对比度输出,能够在不同光照条件下清晰呈现当前温度与湿度数值;其次,所有采集数据同时通过通用异步收发传输接口输出,可供上位机软件进行记录与分析。 当监测参数超出预设安全范围时,系统会启动声学警示装置,该装置可发出不同频率的提示音,以区分温度异常或湿度异常状态。所有功能模块的驱动代码均采用模块化设计原则编写,包含完整的硬件抽象层接口定义、传感器数据解析算法、显示缓冲区管理机制以及串口通信协议实现。 本参考实现重点阐述了多外设协同工作的时序控制策略、低功耗数据采集模式的应用方法,以及确保系统稳定性的错误处理机制。代码库中包含了详细的初始化配置流程、中断服务程序设计和各功能模块的应用程序接口说明,为嵌入式环境监测系统的开发提供了可靠的技术实现范例。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值