linux常用命令

1.在线帮助

mkdir --help

2.文件和目录操作命令

ls     查看当前目录下的文件
ls -l
tree   查看当前目录下的文件,以树形结构输出
pwd 显示当前路径
mkdir/rmdir 创建/删除文件夹
mkdir -p /home/test/test1/test2/test3  创建多层目录
cp a.txt /home/test/a.txt 拷贝文件
mv a.txt /home/test/a.txt 移动文件
mv a.txt b.txt c.txt -t /home/test 批量移动文件
rm a.txt 删除文件
vi a.txt 创建文件 (I进入编辑模式,Esc+:wq保存并推出)
ln ??

scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest     #复制本地/opt/soft/目录下的文件nginx-0.5.38.tar.gz到远程机器10.10.10.10的opt/soft/scptest目录
scp -r root@10.10.10.10:/opt/soft/mongodb /opt/soft/              #从10.10.10.10机器上的/opt/soft/中下载mongodb目录到本地的/opt/soft/目录来

 3.文件内容操作命令

cat a.txt b.txt>file.txt  合并两个文件的内容到file.txt,如果没有file文件则新生成一个
cat a.txt b.txt 在屏幕上显示文件内容
more +3 test.log 从第三行显示文件内容,more会以一页一页的显示方便使用者逐页阅读
more +/liu test.log 文件中查找第一个出现,"liu"字符串的行,并从该处前两行开始显示输出

head -5 /etc/passwd  查看文件的前五行
tail -10 /etc/passwd 查看文件的后十行
sed -n '5,10p' /etc/passwd  查看文件的第五到十行

cat /etc/passwd | cut -b1-3 #取每行的第1-3字字节
cat /etc/passwd | cut -d : -f 3 #以:分割,取第三段

split -b 10k date.file       #将date.file文件分割成大小为10KB的小文件
split -b 10k date.file -d -a 3  #-d表示文件名使用数字后缀-a length来为文件名指定后缀的长度
split -b 10k date.file -d -a 3 split_file  #split_file来指定文件名的前缀
split -l 10 date.file        #-l选项根据文件的行数来分割文件,本例表示按照每10行分割

paste file1 file2 > result #两个文件按列拼接
paste -d':' file1 file2       #拼接时使用指定符号(本例为冒号)隔开各个文件的内容
paste file1 -s            #删除所有换行,拼接成为一行
paste file1 -s -d:          #删除所有换行,拼接成为一行,并用特殊符号分割
paste file1 file2 -s         #两个文件删除所有换行,拼接成为一行

sort -u seq.txt            #在输出行中去除重复行
sort seq.txt             #以每行为单位,按照ASCII码进行排序
sort -n number.txt          #以每行为单位,按照数字大小进行升序排列
sort -n -r number.tx         #以每行为单位,按照数字大小进行降序排列

sort file.txt | uniq -c      #统计各行在文件中出现的次数
sort file.txt | uniq -d      #在文件中找出重复的行

wc -c a.txt              #统计文件的字节数
wc -l a.txt              #统计文件的行数

diff /usr/li test.txt        #显示出两个文件的差异

grep match_pattern file_name    #在文件中搜索字符串
grep match_pattern file1 file2   #在多个文件中搜索字符串
grep -E "[1-9]+"            #正则表达式匹配搜索
grep -c "text" file_name       #统计文本中包含匹配字符串的行数

 4.文件压缩解压缩

tar -zcvf log.tar.gz log2012.log     #打包后,以 gzip 压缩 
tar -zxvf /opt/soft/test/log.tar.gz  #解压缩
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log    #解压部分文件

zip -q -r html.zip /home/Blinux/html  #将/home/Blinux/html/这个目录下所有文件和文件夹打包成zip格式
unzip test.zip               #在当前目录下解压
unzip -o test.zip -d tmp/         #将压缩文件test.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件

5.信息显示命令

uptime  #现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。

du scf       #查看指定目录(scf目录)所占用的空间
du log2012.log   #查看指定文件所占用的空间

free -m        #当前系统未使用的和已使用的内存数目

date +"%Y-%m-%d"                   #按某种格式显示现在的日期
date -d "1 day ago" +"%Y-%m-%d"          #按某种格式显示昨天的日期
date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"    #按某种格式转换时间
date -d "+1 day" +%Y%m%d       //显示前一天的日期
date -d "-1 day" +%Y%m%d       //显示后一天的日期
date -d "-1 month" +%Y%m%d     //显示上一月的日期
date -d "+1 month" +%Y%m%d     //显示下一月的日期
date -d "-1 year" +%Y%m%d      //显示前一年的日期
date -d "+1 year" +%Y%m%d      //显示下一年的日期

cal                #显示出日历
cal -j              #显示出日历,第几天

6.搜索文件命令

find /home -name "*.txt"        #在/home目录及子目录下查找以.txt结尾的文件名
find . -type f -size +10k    #搜索大于10KB的文件
find /home ! -name "*.txt"    #找出/home下不是以.txt结尾的文件

 

echo回显

sh脚本:
#!/bin/sh
 #对变量赋值:
a=”hello world” COUNT=5
# 现在打印变量a的内容:
echo “A is:”
echo $a echo ${COUNT}911  shell脚本第一行必须以 #!开头,它表示该脚本使用后面的解释器解释执行。
vi run.sh  进入编辑模式
esc+:+w+q  保存并且退出
chmod 777 run.sh  echo COUNT时加{}以免歧义,输出5911 

 

通配符

* : 匹配0个或多个任意字符

? : 匹配一个任意字符

[若干字符] : 匹配方括号中任意一个字符的一次出现

单引号和双引号

单引号:用于保持引号内所有字符的字面值,而双引号:如果字符串中有特殊字符需要处理时就用双引号

#!/bin/bash
echo '\\'
echo "\\"
echo '`date`'
echo "`date`"

注意:echo '`date`'中内层单引号为esc下面的按键
输出分别为\\  \  date和当前日期

 

for循环

sh脚本
echo "for循环例子1";
for((i=1;i<=10;i++)); do
    echo $i;
done;

 

if/else判断语句

sh脚本 #!/bin/sh
a=2
b=2
if [ $a==$b ]
then 
    echo "a and b is equal"
else
    echo "a and b is not equal"
fi

注意:if后面有空格,中括号前后有空格

 

移动/拷贝/删除文件夹

sh脚本
#!/bin/sh
>a.txt
echo This is a.txt > a.txt
cp /home/test/a.txt /home/version/a.txt
echo /home/version/a.txt

>b.txt
echo This is b.txt > b.txt
mv /home/test/b.txt /home/version/b.txt 
echo /home/version/b.txt

>c.txt
echo This is c.txt > c.txt
rm c.txt

 

函数调用

sh脚本
function hello() {
    echo "Hello!";
}

function hello_param() {
    echo "Hello $1 !";
}

echo "无参函数调用";
hello;

echo "函数传参调用";
hello_param ben;

 

posted @ 2017-07-14 10:19  laislabonita  阅读(515)  评论(0编辑  收藏  举报