原创

linux常用命令

一、通用命令

命令

说明

ls -a

显示所有文件,包括隐藏文件

ls -h

人性化显示文件的大小

mkdir -p /data/a

递归创建

rmdir /data/a

删除空目录

rm -rf /data/a

删除目录或文件

cp -r a b

复制目录

mv a b

剪切

ln -s /u/java /bin/java

软连接

whereis nginx

搜索系统命令所在位置

find * |grep "readme"

查找符合条件的文件

grep -v “grep”

排除指定字符串

man java

帮助命令

zip me.zip me

压缩目录

unzip a.war -d ROOT

解压目录

tar zcvf me.tar.gz me

压缩目录 -c打包 -v显示过程-f指定打包后的文件名

tar -zxvf me.tar.gz

解压目录

w

查看登录用户信息

last

查看当前登录和过去登录的用户信息

tailf a.log

从文件最后动态输出

head -n 66 a.log

取a的前66行

tail -n 66 a.log

取a的后66行

date "+%Y-%m-%d %H:%M:%S"

按格式查看时间

date -s "2012-05-18 04:53:00"

修改服务器时间

cat a|sort|uniq -c|sort -nr

去重排序

cal

日历

cal 2017

2017的日历

df -h

显示已经挂载的分区列表

groupadd ${UserName}

新加组

useradd -d /home/${UserName} -g ${UserName} ${UserName}

新加用户

groupdel group_name

删除一个用户组

userdel a

删除一个用户

chown -R game.game /home/game/*

给文件夹赋权限

wget http://www.game.cn/1

下载文件

yum install -y mysql

安装

yum install lrzsz

安装上传下载命令

rz

上传

sz

下载

ifconfig

查看本机网络

curl ifconfig.me

查看外网ip

netstat -lnp

查看开放端口

du -h --max-depth=1

找到占用较大的文件

echo `expr 77 + 66`

计算

grep "^aaa"

aaa开头

grep "bbb$"

bbb结尾

ll |grep "sh$"

以sh结尾的

sed -n '5,10p' a.log

查看文件的第5行到第10行

crontab -l

查看定时任务

crontab -e

编辑定时任务

awk 'BEGIN{printf "%.2f%\n",(6666/66)*100}'

取小数点后两位

find * |grep "log.log" |xargs rm

xrags执行命令

top

服务器信息

ps -aux

查看进程

history

查看历史命令

free -h

显示当前系统中内存的使用量信息

uptime

查看系统的负载信息

uname -a

查看系统详细版本和内核

版本

sed -i "s/aaa/bbb/g" test.txt

将test.txt文件里面的aaa换成


find /var -name test.file       查找某个文件是否存在

shell比较运算
if [ 1 -ne 1 ];then
...
fi
-eq:等于
-ne:不等于
-le:小于等于
-ge:大于等于
-lt:小于
-gt:大于
输出处制表位
echo -e "我是中文\t呵呵呵呵,安静点上课了敬爱个来\n"

读取读文件

while read line
do
Msg=${Msg}${line}"<br>"
done <${file}
cat ${file}|while read line
do
echo ${line}
done


二、脚本使用mysql

#!/bin/sh
ShellPath=$(cd "$(dirname "$0")"; pwd)
tmp=${ShellPath}/tmp
HOSTNAME="127.0.0.1"
PORT="3306"
USERNAME="name"
PASSWORD="password"
DBNAME="mydb"
sql1="select distinct id from test_table;"
#执行mysql
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${sql1}" >${tmp}
#取第一行
top1=cat ${tmp} |awk -F\| '{if (NR>2){print $0}}'|shuf -n1

三、脚本使用redis

注:线上环境脚本一般操作不能操作10万以上的操作,如果是几千还是可以,如果再多考虑使用python或者java使用连接池

REDIS_HOST=localhost

REDIS_PORT=6379

key_liveTime=`redis-cli -h $REDIS_HOST -p $REDIS_PORT TTL $key`

四、清空linux的history记录

linux 清空history以及记录原理
1、当前session执行的命令,放置缓存中,执行exit时,把缓存信息写入~/.bash_history
2、当session直接被kill时,缓存中的历史命令不会写入~/.bash_history
3、正确清空当前用户的history的方法

history -c #清空当前缓存中的命令
exit #关闭shell连接,可以避免写入~/.bash_history
#执行exit,会把该命令记录到~/.bash_history文件去


五、通过网络时间更新自己linux服务器时间脚本:

#!/bin/bash
ShellPath=$(cd "$(dirname "$0")"; pwd)
wget -q http://time.tianqi.com/beijing
time_ch=$(cat ${ShellPath}/beijing |grep "id=\"clock" |awk -F "[<>]" '{print $3}' )
echo ${time_ch}
year=$(echo $time_ch |awk -F "年" '{print $1}' )
month=$(echo $time_ch |awk -F "年" '{print $2}' |awk -F "月" '{print $1}' )
day=$(echo $time_ch |awk -F "月" '{print $2}'|awk -F "日" '{print $1}')
time_now=$(echo $time_ch |awk '{print $3}')
time_a=$(echo "$year-$month-$day $time_now")
date -s "$time_a"
rm -rf ${ShellPath}/beijing










正文到此结束
本文目录