`

linux shell常用命令总结

阅读更多
1.uname -a 查看服务器位数
2.ifconfig linux 查看ip windows下 是ipconfig

3.ps -aux 中STAT的含义

D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
S+说明程序在后台运行,位于后台的进程组
4.shell wget php fopen

5.
sar -u 2 10                  -- 即每隔2秒检察一次,共执行20次。
du -h --max-depth=1  
du -sh /root 只显示目录大小总和
6.改变目录权限 chown auto_analtmp_user:auto_analtmp_user ./project


7.rz sz  命令上传下载文件 freebsd 是lrz lsz


8./usr/local/sbin/proftpd  不同类型ftp重启不一样

9.vipw 更改ftp账号目录,freebsd不能用这个方法

10.sort
sort |uniq -c | sort -nr|head -20

gzip 1.txt 压缩文件
gzip -c filename >filename.gz
gunzip 1.gz 解压文
gunzip –c filename.gz > filename

tar 可以把很多文件和目录打包
tar -czf all.tar.gz *.jpg
tar -zcf games.tgz /deal/getAndroidInfo/resultDir/games 将目录压缩打包
tar -xzf games.tgz
11.四则运算
index=`expr ${index} + 1`

sinaAllPV=$(($sinaAllPV+$DPV))

12.获取本地ip
LOCAL_IP=`ifconfig | awk '/inet/{print $2;exit}'`
13.
find
find ./ -type f | xargs ls |wc -l  不会出现 bash: /bin/ls: Argument list too long
find ./ -name "*" | xargs cat | awk -F'\t' '{if($3~/^http:\/\/live.video.sina.com.cn\/room\/nba/){print substr($1,1,10)}}' | sort | uniq -c
find ./auto_newshome/  -name "clickstream.20120212*" -type f |xargs mv --target-directory=/data4/etl_tmp_bak/${domainName};
删除历史文件:find ${workDir}/* -mtime +15 -type f -exec rm -rf {} \;

find /download/logs/  -name "*.gz" -mtime +15 -type f -exec rm -rf {} \;
find /usr/local/website/ky_transfer_hotsearch_word/files/statistic/  -name "*.txt" -mtime +15 -type f -exec mv {} /download/bak/jiangfeng_result/ \;

14.ftp 账号要注意跟文件的权限问题

15.cat -A 能看到文件全部
16.dos2unix 1.txt 将文件转化成unix格式
vi 看到文件里的^M,可以用tr -d "\015"
17.符号链接ln
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
-f 建立时,将同档案名删除.
ln -s abc cde 建立abc 的软连接
ln abc cde 建立abc的硬连接
18.while do
        while [ ${PSNUM} -gt 6 ]
        do
                sleep 10
                PSNUM=`ps axuw|grep sort_singer_uvuip.sh | grep -v "grep" | wc -l`
        done

19.:%s/old/new/g vi 替换命令
20.lp 是打印的意思
21.shell 选项传参示例
while getopts :UCDPAh:u:p:r:l:b:t:f: OPTION
do
case ${OPTION} in
h)
  REMOTE_IP=${OPTARG}
  ;;
u)
  USER=${OPTARG}
  ;;
p)
  PSWD=${OPTARG}
  ;;
r)
  REMOTE_DIR=${OPTARG}
  ;;
l)
  LOCAL_DIR=${OPTARG}
  ;;
b)
  BACKUP_DIR=${OPTARG}
  ;;
t)
  FILE_TYPE=${OPTARG}
  ;;
f)
  FILE_LIST=${OPTARG}
  ;;
U)
  METHOD="upload"
  ;;
D)
  METHOD="download"
  ;;
P)
  CONN_MODE="passive on"
  ;;
A)
  TRAN_MODE="ascii"
  ;;
C)
  CLEAN="true"
  ;;
\?)#show usage
  error "${PS_FULLNAME} -[U(pload) D(ownload)] -[C(lean)] -[P(assive)] -[A(scii)] -[h host] -[u user] -[p password] -[r remote path] -[l local path] -[b backup path] -[t filetype] -[f file list]."
  ;;
esac
done
22.grep -v 是匹配不包含的所有行,-i不区分大小写搜索。

23.shell export 是变量输出,可以在子进程中使用该变量,既系统变量,export a=1,declare声明变量数据类型,例如declare -i x是将x声明成整形数,declare -a x将x声明成数组类型,declare -x a 是将a设置成环境变量,source Filename,也称为点命令 ,在当前bash环境下读取并执行Filename命令
24.unset 可以销毁变量
25.type 显示指定命令的类型,-a显示所有可能的类型,-p只返回外部命令,相当于which
26.&&命令表示顺序执行由它连接的命令,但是只有它之前的命令成功执行完成了之后才可以继续执行它后面的命令
27.seq 1 10 产生1到10的递增数
28.for ((i=1;i<=10;i++));do echo $i done
   for i in {1..10}
   do
   echo $i
   done
29.linux 怎么手动清空缓存?
30。新建组和新建用户 groupadd hadoop
     useradd -d /home/hadoop -m hadoop -g hadoop
     修改用户密码 passwd liping
31.shell 中的and 和or
if [ 条件判断一 ] && (||) [ 条件判断二 ]; then
32.判断之前一条语句是否执行成功
if [[ "$?" -eq 0 ]] ; then
    echo "$1 succeful!"
    exit 0;
fi
33.yum install sendmail

34.hostname localhost 手动设置hostname
35.rsync比scp靠谱的多
rsync -vzrtopg --progress --ignore-errors "-e ssh -p 22222" root@116.213.213.38:/download1/newlog/2013/05/07/access_log-20130507.tar.gz .
36.ifdown eth0 关闭网卡接口
37.vi 文本替换 :%s/old/new/g
38.iptraf -g 查看linux实时下载情况
http://blog.chinaunix.net/uid-272339-id-28464.html
39.vi /var/log/maillog查看服务运行日志
40.sudo用法
sudo -u hadoop ${hadoopBinDir}/hadoop fs -mkdir -p /input/selfLog/${dir}
sudo 在定时任务里不好用,su - hadoop -c "${hadoopBinDir}/hadoop fs -mkdir -p /input/selfLog/${dir}"在定时任务里好用。

41.修改开机启动项
vi /etc/rc.local
42.uniq -c 排重
43.同步时间
59 * * * * /usr/sbin/ntpdate time.windows.com > /dev/null 2 > &1
60.linux 查看用户登录时间表,last |head
61.shell记日志
   fileName=`basename $0`
   log(){
        echo -e `date +"%Y-%m-%d %H:%M:%S"`"\t"$1"\t"$2>>${logDir}/$fileName".log"
   }
62.if else if else
if [ "$1" = "hello" ] ; then
echo "hello!"
elif [ "$1" = ""  ]; then
echo " no parameter"
else
echo "only hello "
fi
63.lzop 压缩文件的时候不用加-9 -2 什么的,加了文件压缩率没有什么提高,但是慢了很多。

64.service iptables status 如果防火墙关闭,会显示关闭,不关闭会显示三张表的配置状态。
65.shell 某日期多少天前日期,aWeekAgo_date=`date -d "20110228 -7 days" "+%Y%m%d"`
66.secucrt 设置长连接的方法。
http://hi.baidu.com/tonidfrank/item/1249fdc3d3a11ac7994aa04f
“终端”->“发送协议”
67.用u盘直接从linux服务器拷贝数据:
用fdisk -l 来查看盘的情况
如果是fat格式的U盘,挂载命令:mount  -t  vfat  /dev/sdb1  /mnt/udisk
如果是ntfs格式的U盘,挂载命令:mount  -t  ntfs-3g  /dev/sdb1  /mnt/udisk

如果没有/mnt/udisk文件夹,可以创建一个mkdir /mnt/udisk
但是注意,ntfs格式要挂载的话,需要下载一个ntfs-3g-2011.4.12-5.el5.i386.rpm包,安装一下
umount /mnt/udisk
68.fsck 系统修复工具
69.ubuntu中sudo apt-get install ** 如果提示  未发现软件包,
需要执行sudo apt-get update
70.shutdown -h now  立刻关机(root用户使用)
shutdown -h 10 10分钟后自动关机
poweroff
init 0为关机﹐init 1为重启

71./etc/fstab 下是分区信息
72。解决excel打开utf8中文乱码
iconv -f utf8 -t unicode -c  2013-06-24_安装统计明细表_android_test_iconvert.xls >  2013-06-24_安装统计明细表_android_test_iconvert_new.xls
-c 是忽略不识别的字符。
73.清空系统内存cache
echo 3 > /proc/sys/vm/drop_caches
查看内存情况
74.查看端口情况
netstat -nat | grep 10000
查看端口占用进程
netstat -anp|grep LISTEN|grep "10001"
75.设置ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0


DEVICE=eth0
BOOTPROTO=none
NETMASK=255.255.255.0
TYPE=Ethernet
HWADDR=00:22:19:54:da:cc
IPADDR=192.168.1.99
GATEWAY=192.168.1.1
DNS1=211.157.15.189
IPV6INIT=no
ONBOOT=yes
USERCTL=no
76.
8.8.8.8是google的公用dns解析服务。
4.4.4.4
114.114.114.114
77.nohup退出客户端后程序继续在后台运行
  &退出客户端后程序就停止了
78.sendmail 开始不能使用,第二天自己可以用了。
79.ssh 执行远程命令
ssh -p 22 root@192.168.110.99 '/bin/sh /home/chaobo/selfLog/bin/statSelfLog_everyday.sh'
80.shell中数组的应用
#!/bin/sh
ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")
for ip in ${ip_array
  • }
  • do
            echo $ip
    done
    81.在命令行中用php得到周信息
    a=`php -r "date_default_timezone_set('PRC');echo  date('W',strtotime('2013-06-23'));"`
    82.iconv -f utf8 -t unicode 比较好用 -t gbk有时不好用。
    83.gbk是gb2312的子集。
    84.gzip -c 1.txt>1.gz
    85.修改hostname
    vi /etc/sysconfig/network
    86.磁盘块大小跟文件块大小是两回事。
    87.磁盘容量单位
    K,M,G,T,P,E,Z
    88.POSIX可移植操作系统界面
    89.通过使用hadoop的Fuse-DFS功能模块,任意一个hadoop文件系统(不过一般为HDFS)
    均可以作为一个标准的文件系统进行挂载。随后便可以使用Unix工具(如ls和cat)与该文件系统进行交互。
    还可以通过任意一种编程语言调用POSIX库来访问文件系统。
    90.RAID是廉价磁盘冗余阵列,Redundant Array of Inexpensive Disks的缩写。
    91.Linux的bg和fg命令
    http://hi.baidu.com/dashi6174/item/e85dcc321336c9c12f8ec21c
    92.history 可以查看历史执行过的命令。
    93.getopts
    94.等号两边不能带空格,带空格会当成命令来执行。
    95.shell中if后边的then不能写成大写,大写会报错。
    96.ls按文件大小排序
    ll -S | grep '^[^d]'
    97.crontab
    http://www.cnblogs.com/jiafan/articles/1153066.html
    98.ubuntu下安装应用
    sudo apt-get install node
    99.用awk获取mysql中邮件列表的方法(小数据量的计算尽量在内存中,而不要写到磁盘中,速度的差别太大了)
    SQL="select status,email from d_kystt_connect_info_copy where status!=-1 and programme='ky_pc'"
    res=`${MYSQLEXE} -h ${DBHOST} ${DBNAME} -N -e "${SQL}"`
    allEmails=`echo $res|awk '{split($0,arr," ");for(i=1;i<=length(arr);i++){if(i%2==1){if(arr[i]==0){str=str" -c "arr[i+1];}else if(arr[i]==1){toEmail=arr[i+1];}}}}END{print str"==="toEmail}'`
    receiver=`echo -e $allEmails|awk -F"===" '{print $2}'`
    copyToEmails=`echo -e $allEmails|awk -F"===" '{print $1}'`
    echo $copyToEmails
    echo $receiver
    title='test'
    echo '此附件为服务器自动发送'|mutt  ${receiver} -s ${title} -a ${endResultDir}/${yesterday_formate}_${chinesename}.xls ${copyToEmails}
    100.shell执行过程中接受用户输入
    #!/bin/sh
    # test
    echo -n "are you sure to delete these files?"
    read ANS
    case $ANS in
    y|Y|yes|Yes)
            rm a.txt
             ;;
    n|N|no|No)
            exit 0
             ;;
    esac
    101.
    sed 取文件某行
    sed -n '3P' /home/chaobo/ip/stt_ip_dist_new.txt|awk -F'\t' '{for(i=1;i<=NF;i++){print i":"$i}}'
    102.与CRTL+Z有关
    http://hi.baidu.com/cznanjibing/item/efd1eeac8b0f863e020a4ddb
    jobs -l
    kill %1
    103.shell 整除运算
    if [ $(($year%100)) -eq 0 ]
    104.shell中月中日的处理(闰年、月)
    if [ $month = '01' ] || [ $month = '03' ] || [ $month = '05' ] || [ $month = '07' ] || [ $month = '08' ] || [ $month = '10' ] || [ $month = '12' ]
    then
            endDay='31'
    elif [ $month = '02' ]
    then
            if [ $(($year%100)) -eq 0 ]
            then
                    if [ $(($year%400)) -eq 0 ]
                    then
                            endDay='29'
                    else
                            endDay='28'
                    fi
            else
                    if [ $(($year%4)) -eq 0 ]
                    then
                            endDay='29'
                    else
                            endDay='28'
                    fi
            fi

    else
            endDay='30'
    fi
    echo 'endDay:'${endDay}

    for day in `awk -v endDay=${endDay} 'BEGIN{for(i=1;i<=endDay;i++){if(i<=9){i="0"i}str = str""i" "}print str}'`
    105.vi使用
    D删除光标到行尾的字符
    dG删除光标到文件尾
    106.tail -f 可用于监控另一个进程正在写入文件的增长。
    107.shell执行mysql

    MYSQLEXE="/usr/bin/mysql -uroot -p123456"
    confDir='/home/chaobo/selfLog/conf'
    dbConf="${confDir}/dbConf/d_stat_platform_131"
    DBNAME=`cat ${dbConf}|awk -F'===' '{split($4,arr,":");print arr[2]}'`
    echo $DBNAME
    DBHOST=`cat ${dbConf}|awk -F'===' '{split($1,arr,":");print arr[2]}'`
    echo $DBHOST
    DBUSER=`cat ${dbConf}|awk -F'===' '{split($2,arr,":");print arr[2]}'`
    echo $DBUSER
    DBPWD=`cat ${dbConf}|awk -F'===' '{split($3,arr,":");print arr[2]}'`
    echo $DBPWD
    MYSQLEXE="/usr/bin/mysql -u${DBUSER} -p${DBPWD}"


    SQL="select status,email from d_kystt_connect_info where status!=-1 and programme='ky_pc' and indexName='bubble' or status=1"
    allReceivers=`${MYSQLEXE} -h ${DBHOST} ${DBNAME} -N -e "${SQL}"|awk -F'\t' 'BEGIN{str=""}{if($1==0){str=str" -c "$2}}{if($1==1){receiver=$2}}END{print receiver"|"str}'`
    receiver=`echo $allReceivers|awk -F'|' '{print $1}'`
    copyToEmails=`echo $allReceivers|awk -F'|' '{print $2}'`
    echo -e "气泡点击到URL次数:${num}\n\n此附件为服务器自动发送"|mutt  ${receiver} -s ${title} ${copyToEmails}


    DBNAME="kystt"
    DBHOST="192.168.110.191"
    MYSQLEXE="/usr/bin/mysql -uroot -p123456"
    SQL="select * from d_kystt_connect_info limit 10"
    ${MYSQLEXE} -h ${DBHOST} ${DBNAME} -N -e "${SQL}" >/home/chaobo/test/test.txt
    108.curl 用get方式的话,&符得转义。
    109.while read
    110.查看端口占用进程
    lsof -i:10001
    111.lsof(list open file)
    112.获取本地出口ip
    curl http://iframe.ip138.com/ic.asp
    113.chkconfig 设置防火墙,重启也不会失效。
    114.rpm -ivhU lzo-2.04-1.el5.rf.i386.rpm 更新安装
    115.rpm
    http://hi.baidu.com/bluejack/item/bf74c317ead71424f6625c83

    116.yum
    yum remove 卸载
    0
    6
    分享到:
    评论

    相关推荐

      linux shell的常用命令

      linux,shell的常用命令,课件很不错总结很详细

      Linux运维常用shell命令汇总.pdf

      Linux运维常用shell命令汇总

      shell常用命令总汇(UNXI LINUX命令集)

      shell常用命令汇总汇(UNXI LINUX命令集)

      Linux shell 及常用命令介绍.txt Linux shell 及常用命令介绍.txt

      #### 四、Shell常用命令详解 1. **更改账号密码** - **命令**: `passwd` - **用法**: - 输入旧密码。 - 输入新密码两次确认。 - **示例**: ```bash $ passwd Changing password for user your_username. ...

      Linux虚拟机以及shell常用命令总结

      ### Linux虚拟机及Shell常用命令知识点总结 #### 一、Linux简介与特点 - **操作系统定义**:Linux是一款开源的操作系统,它具有免费、开源、安全、高效、稳定等特点。 - **并发处理能力**:Linux在处理高并发场景...

      Linux常用shell命令大全.pdf

      ### Linux常用Shell命令详解 #### 一、基本命令 **1. 重启与关机** - **立即重启:** - `shutdown -r now` - `reboot` - **立即关机:** - `shutdown -h now` - `poweroff` - **定时重启(2分钟后):** -...

      linux中常用的shell命令实验

      Linux 中常用的 shell 命令实验 Linux 操作系统中,shell 命令是最基本也是最重要的命令之一。掌握这些命令可以帮助用户更好地使用 Linux 系统。在这篇文章中,我们将讨论 Linux 中常用的 shell 命令,并通过实验来...

      centos (linux) shell常用命令实例手册

      centos (linux) shell常用命令实例手册大全,包括:常用shell命令、语法、环境配置、实例、mysql、jdk、hadoop、hdfs、keepalive、文件操作、软件安装、系统、权限、服务、网络、磁盘管理 等各个方面的shell实例

      linux Shell 常用命令 编程入门_实例讲解详解.doc

      以上仅是Linux Shell常用命令的一部分,实际上还有更多高级和专业的命令等待探索和学习。熟练掌握这些命令将有助于提升Linux系统的管理和使用效率。对于shell编程,可以通过编写脚本自动化执行日常任务,进一步提高...

      Linux Shell常用技巧

      ### Linux Shell 常用技巧详解 在 Linux 系统中,Shell 是用户与操作系统交互的主要方式之一。本文将深入探讨几个常用的 Shell 技巧及其应用场景。 #### 1. 使用 `/dev/null` 和 `/dev/tty` 在 Linux 系统中,`/...

      linux的常用命令及shell编程

      Linux操作系统以其开源、稳定和强大的特性受到广大用户的喜爱。...总的来说,掌握Linux的常用命令和Shell编程是高效使用Linux系统的关键,它能帮助用户深入理解系统的运作机制,并实现个性化的系统管理和自动化任务。

      linux常用命令以及shell脚本

      linux常用命令以及shell脚本,常用技巧的使用

      Linux常用命令,shell 编程命令整理

      掌握Linux的常用命令以及shell编程技巧对于提升工作效率至关重要。下面将详细讲解标题和描述中提到的知识点,并结合标签内容进行扩展。 1. **Linux常用命令**: - **vim**:全称Visual Editor Improved,是一个...

      Linux部署常用命令

      linux、shell下部署web项目常用命令,linux、shell下部署web项目常用命令

      Linux教程+ shell学习笔记 + Shell脚本常用命令+shell脚本100例资源合集

      本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...

      linux60个常用命令总结

      Linux 60个常用命令总结 Linux 命令是 Linux 系统的核心组件之一,掌握这些命令可以让用户更好地使用 Linux 系统。本文将详细介绍 Linux 的 60 个常用命令,这些命令可以分为六个部分:安装和登录命令、文件处理...

      C实现Linux中Shell部分命令.zip

      本项目旨在用C语言实现一些基本的Shell命令,如ls、rm和echo,这些都是日常操作中最常用的。 1. **ls命令**:用于列出当前目录中的文件和目录。在C实现中,这通常涉及到调用`opendir()`函数打开目录,然后使用`...

      常用shell命令总结精华版

      以下是对标题“常用shell命令总结精华版”中提及的各个命令的详细知识点介绍: 1. ls命令:这是Linux中用于列出目录内容的基础命令。其常见用法包括: - ls:列出当前目录下的所有文件和文件夹。 - ls -l 或 ls-...

      Linux主要shell命令、sed、awk使用详解

      Linux 中的 shell 有多种类型,其中最常用的几种是 Bourne shell(sh)、C shell(csh)和 Korn shell(ksh)。三种 shell 各有优缺点。Bourne shell 是 UNIX 最初使用的 shell,并且在每种 UNIX 上都可以使用。...

    Global site tag (gtag.js) - Google Analytics