关闭

linux常用的命令

148人阅读 评论(0) 收藏 举报

1 linux shell bash 比较操作:

整数比较

-eq 等于,如:if [ "$a" -eq "$b" ]

-ne 不等于,如:if [ "$a" -ne "$b" ]

-gt 大于,如:if [ "$a" -gt "$b" ]

-ge 大于等于,如:if [ "$a" -ge "$b" ]

-lt 小于,如:if [ "$a" -lt "$b" ]

-le 小于等于,如:if [ "$a" -le "$b" ]

 < 小于(需要双括号),如:(("$a" < "$b"))

<= 小于等于(需要双括号),如:(("$a"<= "$b"))

> 大于(需要双括号),如:(("$a"> "$b"))

>= 大于等于(需要双括号),如:(("$a">= "$b"))

 字符串比较

 = 等于,如:if ["$a" = "$b" ]

== 等于,如:if [ "$a" == "$b" ],与=等价

2 linux 使用中括号进行条件判断

“#”代表空格,不可缺少

[# param1#op# param2 #]

这种带比较操作符的形式,op左右必须使用空格隔开.

如 [# “3”==”2” #]  这种缺少空格的写法会得到结果“true”,当然实际应为”false”.

变量的引用应使用双引号括起来 [#-z “$name” #].

*******************

name="Jim"

[ $name == "Jack" ]   #将会变成 [ Jim == "Jack" ], 也就出现错误了.

*********************

常量应该使用双引号或单引号括起来[# ‘1’#==#’10’ #].

 更好的书写方式:

****************************

a. 中括号内的每一个组件都用空格隔开(可谓釜底抽薪)

b. 变量都以双引号括起来

****************************

 参数

-b file                若文件存在且是一个块特殊文件,则为真

-c file                若文件存在且是一个字符特殊文件,则为真

-d file                若文件存在且是一个目录,则为真

-e file                若文件存在,则为真

-f file                若文件存在且是一个规则文件,则为真

-g file                若文件存在且设置了SGID位的值,则为真

-h file                若文件存在且为一个符合链接,则为真

-k file                若文件存在且设置了"sticky"位的值

-p file                若文件存在且为一已命名管道,则为真

-r file                若文件存在且可读,则为真

-s file                若文件存在且其大小大于零,则为真

-u file                若文件存在且设置了SUID位,则为真

-w file                若文件存在且可写,则为真

-x file                若文件存在且可执行,则为真

-o file                若文件存在且被有效用户ID所拥有,则为真

-z string              string长度为0,则为真

-n string              string长度不为0,则为真

string1 = string2      若两个字符串相等,则为真

string1 != string2     若两个字符串不相等,则为真

**********************************************************

参与比较的数字必须能够转化为整数,话说那里有这个语法的manual?

int1 -eq int2          若int1等于int2,则为真

int1 -ne int2          若int1不等于int2,则为真

int1 -lt int2          若int1小于int2,则为真

int1 -le int2          若int1小于等于int2,则为真

int1 -gt int2          若int1大于int2,则为真

int1 -ge int2          若int1大于等于int2,则为真

**********************************************************

! expr                  若expr为假则复合表达式为真。expr可以是任何有效的测试表达式

expr1 -a expr2         若expr1和expr2都为真则整式为真

expr1 -o expr2         若expr1和expr2有一个为真则整式为真

3 创建和删除文件、文件夹

创建文件夹(文件夹也是目录) : mkdir:mkdir [选项] DirName ->>   mkdir 桌面/demo

  给权限为123。mkdir  123  桌面/demo

删除文件夹 ,删除档案及目录。rm:rm [选项] DirName。选项当中的-r 将目录及以下之档案亦逐一删除。将Finished 子目录及子目录中所有档案删除。   rm -r Finished

 

创建文件vi:  vifilename :打开或新建文件,并将光标置于第一行首

创建文件a.txt。 vi a.txt

  Hello everyone!

:wq //在退出时,直接输入:wq会发现退不出去,退出方法是:编辑完成后按ESC,然后输入:q就是退出;还有:wq是保存后退出,加感叹号是表示强制

  

修改档案时间【touch】

 

   一、touch命令使用权限

 

    所有用户都可以在终端使用 touch命令。

 

    二、touch命令使用格式

 

    格式:touch [-acfm][-d <日期时间>][-r <参考文件或目录>][-t <日期时间>][--help] [--version][文件或目录...] 或 touch[-acfm][--help][--version][日期时间][文件或目录...]

 

    (touch [-acfm][-r reference-file][--file=reference-file][-t MMDDhhmm[[CC]YY][.ss]][-d time][--date=time][--time={atime,access,use,mtime,modify}][--no-create][--help][--version]file1 [file2 ...])

 

  

小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时间.由于系统的限制,早于1970年1月1日的时间是错误的.

 

  --no-create 不会建立新档案。

 

  --help 列出指令格式。

 

  --version 列出版本讯息。

 

    五、touch命令使用举例

 

    例一:更新file1.txt的存取和修改时间。

 

  touch file1.txt

 

  例二:如果file1.txt不存在,不创建文件

 

  touch -cfile1.txt

 

  例三:更新file1.txt的时间戳和ref+file相同

 

  touch -rref+file file1.txt

 

  例四:设置文件的时间戳为2011年5月18日9点45分10秒

 

  ls -l file1.txt

 

  touch -t1105190945.10 file1.txt

 

 

在新建文件时用touch命令可以建立一个空文件,而vi命令则可以直接编辑文件的内容并保存。touch命令在linux中很少用到,我个人还是比较喜欢vi命令,可以直接对文档进行编辑。

4  wc(Word Count)命令

Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

wc [选项]文件...

 选项:-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。    -help 显示帮助信息

ex: wc test.txt   

用来统计当前目录下的文件数

命令:

ls -l | wc –l

5   cut命令

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。

语法:cut  [-bn][file] 或 cut [-c] [file] 或  cut [-df][file]

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f  :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。

-f表示取第一个字段的值。

如:echo "a/b/c" |cut -d '/' -f 1,执行结果是a。执行过程:先按/分段,分段后结果是:第一个字段是a,第2个字段是b,第3个字段是c,-f就是表示取第几个字段。

 

 

6   du 命令

统计目录中的文件的大小并以列表显示,即显示每个文件和目录的磁盘使用空间。
du [Path]
-a  全部文件 包括隐藏的。
-h  以M 为单位显示文件大小结果。
-s  统计此目录中所有文件大小总和。

显示home文件夹的总大小    du -sh ./home

du -s ./home

7 grep命令

grep的使用:grep基本是以行为单位处理文本的;而awk可以做更细分的处理,通过指定分隔符将一行(一条记录)划分为多个字段,以字段为单位处理文本。

一、grep一般格式:

        grep  [选项]  基本正则表达式  [文件]

linux使用GNU版本的grep。它功能更强,可以通过-E、-F命令行选项来使用egrep和fgrep的功能。grep –E =egrep

      这里的正则表达式可以为字符串。在grep命令中输入字符串参数时,最好将其用双引号括起来。调用变量时也可以使用双引号。在调用模式匹配事,应使用单引号。

 二、grep常用选项:

      -c   只输出匹配行的计数。

      -i   不区分大小写(只用于单字符)。

      -h   查询多文件时不显示文件名。

      -l   查询多文件时只输出包含匹配字符的文件名。

       -n   显示匹配行及行号。

      -s   不显示不存在或无匹配文本的错误信息。

       -v   显示不包含匹配文本的所有行。

 三、常用选项的使用:

1、 查询多个文件:

   grep  “hello”  *.doc

  num.doc:hello

  sum.doc:hello world

  说明在num.doc 和sum.doc中有字符串“hello“。

 

2、 行匹配:  

  $grep -c “123” *.doc

  num.doc:2

  sum.doc:2

   说明在num.doc 和sum.doc中有字符串“123“各为两行。

3、 显示满足匹配模式的所有行数:

  $grep –n “123” *.doc

  num.doc:1:hao 123

  num.doc:2:hao 123

  sum.doc:2:hao 123

  sum.doc:4:hao 1234

4、 显示所有不包含“123“的行:

  $grep  -v“123” *.doc

  num.doc:hello

  num.doc:world

  sum.doc:hello world

  sum.doc:sui yue

5、 精确匹配:

   如第三点,匹配“123”时,结果返回了“1234”的其它字符串。

  $grep -n “123\>” *.doc

  num.doc:1:hao 123

  num.doc:2:hao 123

  sum.doc:2:hao 123  

四、grep和正则表达式

1、模式范围:

   $grep   ‘48[34]’  mydata.doc

   此命令在mydata.doc中匹配字符串“483”和“484”。

2、 不匹配行首:

   $grep  ‘^[^48]’ mydata.doc

   此命令在mydata.doc中匹配除4或者8开头的行。

3、 设置大小写:

   $grep  ‘[Ss]ept’  mydata.doc

   此命令在mydata.doc中匹配字符串“Sept”和“sept”。

4、匹配任意字符:

   $grep  ‘a…z’ mydata.doc

   此命令在mydata.doc中匹配字符串以字符a开头和字符z结尾,中间为任意三个字符。

 --------------------------------------------------------------------------------

8 Awk命令

一、awk的调用格式:

awk的调用格式有三种:

第一种:awk [-Ffield-separator] ‘commands’ input-file

[-F]域分隔符,是可选的,awk使用空格作为缺省的域分隔符。

第二种方法是将awk命令插入到一个文件,并使awk程序可以执行,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。

第三种方法是将所有的awk命令插入一个单独文件,然后调用:

awk –f awk-script-file input-file

三、域和记录

      awk执行时,其浏览域标记为$1,$2 ….$n.。这种方法称为域标识。

    1、保存awk输出

第一种方法:

awk ‘{print $0}’ mydata.txt >newfile.txt

显示屏上不会输出结果。

 

第二种方法:

$awk ‘{print $0}’ mydata.txt | teenewfile.txt

输出到文件中,同时显示在显示器上。

 

2、使用标准输入

第一种方法:使用awk脚本输入文件格式

$myawk.awk inputfile.txt

第二种方法:使用重定向

$myawk.awk < inputfile.txt

第三种方法:使用管道

$inputfile.txt | myawk.awk

 

3、打印所有记录

awk ‘{print $0}’ myfile.txt

由于没有模式部分,只有动作部分,动作必须用花括号括起来。

9 sed命令

sed的使用:

一、sed调用格式

sed调用格式有三种:

第一种命令行方式:

sed [option] ‘command’ inputfile

command要加单引号,也允许加双引号。

第二种使用sed脚本文件:

sed [option]  –f  sed-script-file inputfile

第三种使用第一行具有sed命令解释器的sed脚本文件:

sed-script-file [option] inputfile

 

二、sed选项:

n 不打印:sed不写编辑行到标准输出,缺省为打印所有行。P命令可以用来打印编辑行。

c 下一命令是编辑命令。使用多项编辑时加入选项。

f 如果正在调用sed脚本文件,使用此选项。此选项通知sed脚本文件支持所有的sed命令。

 

1、 保存sed 输出

$ sed ‘command’ inputfile > outfile

 

2、 sed在文件中查找文本的方式

sed浏览文件时,默认从第一行开始,有两种方法定位文本:

第一种:使用行号,可以用简单数字或是一个行号范围。

第二种:使用正则表达式。

 

Sed定位文本的一些方式,如下:

x x表示行号。

x,y 表示行号范围从x到y。

/pattern/ 查找包含模式的行。

x,/pattern 通过行号和模式查询匹配行。

x,y! 查找不包含指定行号x到y的行。

 

 

 

3、 sed编辑命令

p 打印匹配行

= 显示文件行号

a\ 在定位行号后附加拳文本信息

i\ 在定位行号后插入拳文本信息

d 删除定位行

c\ 用拳文本替换定位文本

s 使用替换模式替换相应模式

r 从另一个文件中读文本

w 写文本到一个文件

q 第一个模式匹配完成后推出或立即推出

l 显示与八进制ASCII代码造价的控制字符

{} 在定位行执行的命令组

n 从另一个文件中读文本下一行,并附加在下一行

g 将模式2粘贴到/pattern n/

y 传送字符

n 延续到下一输入行;允许跨行的模式匹配语句。

 

 

4、 使用p显示行

$sed -n ‘2p’ myfile.txt

Hello world!

-n选项,显示打印定位行。

 

5、 打印范围

$sed -n ‘1,3p’ myfile.txt

Hao 123

Hello world!

Ni hao ma?

打印1到3行。

 

6、 打印模式

$sed -n ‘/123/’p myfile.txt

Hao 123

匹配

 

7、 在指定行号匹配模式

$sed -n ‘5,/Hao/’p myfile.txt

Hao ma?

更多 0

10 read命令

1. Read的一些选项

 Read可以带有-a, -d, -e, -n, -p, -r, -t, 和 -s八个选项。

-a :将内容读入到数值中

echo -n "Input muliple values into an array:"

read -a array

echo "get ${#array[@]} values inarray"

-d :表示delimiter,即定界符,一般情况下是以IFS为参数的间隔,但是通过-d,我们可以定义一直读到出现执行的字符位置。例如read –d madfds value,读到有m的字符的时候就不在继续向后读,例如输入为 hello m,有效值为“hello”,请注意m前面的空格等会被删除。这种方式可以输入多个字符串,例如定义“.”作为结符号等等。

-e :只用于互相交互的脚本,它将readline用于收集输入行。读到这几句话不太明白什么意思,先跳过。

-n :用于限定最多可以有多少字符可以作为有效读入。例如echo –n 4 value1 value2,如果我们试图输入12 34,则只有前面有效的12 3,作为输入,实际上在你输入第4个字符‘3’后,就自动结束输入。这里结果是value为12,value2为3。

-p :用于给出提示符,在前面的例子中我们使用了echo –n “…“来给出提示符,可以使用read –p ‘… my promt?’value的方式只需一个语句来表示。

-r :在参数输入中,我们可以使用’/’表示没有输入完,换行继续输入,如果我们需要行最后的’/’作为有效的字符,可以通过-r来进行。此外在输入字符中,我们希望/n这类特殊字符生效,也应采用-r选项。

-s :对于一些特殊的符号,例如箭头号,不将他们在terminal上打印,例如read –s key,我们按光标,在回车之后,如果我们要求显示,即echo,光标向上,如果不使用-s,在输入的时候,输入处显示^[[A,即在terminal上 打印,之后如果要求echo,光标会上移。

-t :用于表示等待输入的时间,单位为秒,等待时间超过,将继续执行后面的脚本,注意不作为null输入,参数将保留原有的值

2. Read的相关实例

a. 拼接文件

#将afile文件中的前三行与bfile中的前四行拼接在一起

while read -u3 i && read -u4 j;do

echo $i $j

done 3<afile 4<bfile

b. 输入不在终端显示

read -p "Input passwd:" -s Passwd

echo $Passwd

c. 限时输入,否则退出

#延迟五秒,没有输入将自动退出

read -p "Input a number:" -t 5Number

d. 读取限定字符

#从输入中取5个字符

read -p "Input a word:" -n 5 Word

e. 等待输出q退出

#输入,直到输入q,将自动退出

read -dp -p "Input some words end withq:" word

 

#####################################

http://blog.sina.com.cn/s/blog_4077692e0100r7ct.html

 read命令 -n(不换行) -p(提示语句) -n(字符个数) -t(等待时间) -s(不回显)

 

 

1、基本读取

read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中。下面是read命令

的最简单形式::

#!/bin/bash

echo -n "Enter your name:"   //参数-n的作用是不换行,echo默认是换行

read name                   //从键盘输入

echo "hello $name,welcome to myprogram"     //显示信息

exit 0                       //退出shell程序。

//********************************

由于read命令提供了-p参数,允许在read命令行中直接指定一个提示。

所以上面的脚本可以简写成下面的脚本::

#!/bin/bash

read -p "Enter your name:" name

echo "hello $name, welcome to my program"

exit 0

在上面read后面的变量只有name一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给第一个变量。如果太少输入不会结束。

//*****************************************

在read命令行中也可以不指定变量.如果不指定变量,那么read命令会将接收到的数据放置在环境变量REPLY中。

例如::

read -p "Enter a number"

环境变量REPLY中包含输入的所有数据,可以像使用其他变量一样在shell脚本中使用环境变量REPLY.

2、计时输入.

使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。

-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;

#!/bin/bash

if read -t 5 -p "please enter yourname:" name

then

   echo "hello $name ,welcome to my script"

else

   echo "sorry,too slow"

fi

exit 0

除了输入时间计时,还可以设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。

#!/bin/bash

read -n1 -p "Do you want to continue[Y/N]?" answer

case $answer in

Y | y)

     echo "fine ,continue";;

N | n)

      echo "ok,good bye";;

*)

    echo "error choice";;

esac

exit 0

该例子使用了-n选项,后接数值1,指示read命令只要接受到一个字符就退出。只要按下一个字符进行回答,read命令立即

接受输入并将其传给变量。无需按回车键。

 

3、默读(输入不显示在监视器上)

有时会需要脚本用户输入,但不希望输入的数据显示在监视器上。典型的例子就是输入密码,当然还有很多其他需要隐藏的数据。

-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色)。

#!/bin/bash

read -s  -p "Enter yourpassword:" pass

echo "your password is $pass"

exit 0

4、读文件

最后,还可以使用read命令读取Linux系统上的文件。

每次调用read命令都会读取文件中的"一行"文本。当文件没有可读的行时,read命令将以非零状态退出。

读取文件的关键是如何将文本中的数据传送给read命令。

最常用的方法是对文件使用cat命令并通过管道将结果直接传送给包含read命令的while命令

例子::

#!/bin/bash

count=1   //赋值语句,不加空格

cat test | while read line        //cat 命令的输出作为read命令的输入,read读到的值放在line中

do

  echo "Line $count:$line"

  count=$[ $count + 1 ]          //注意中括号中的空格。

done

echo "finish"

exit 0

11  let命令

在let命令里面“直接输入参数值,不用加上$符号

let(1) – 计算 (bash shell 內建指令) let arg [arg ...]

说明:

let 是 bash 內建的整数运算。arg 代表运算式。

ex:

#!/bin/bash

let a=5+4 b=9-3

echo $a $b

#!/bin/bash

let "t1 = ((a = 5 + 3, b = 7 - 1, c =15 - 4))"

echo "t1 = $t1, a = $a, b = $b"

12  wget命令(curl命令也可表示下载)

1.命令格式:

wget  [参数]  [URL地址]

-p 代表存储到某一路径下

2.命令功能:

用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录。wget虽然功能强大,但是使用起来还是比较简单:

实例1:使用wget下载单个文件

Wget  http://www.minjieren.com/wordpress-3.1-zh_CN.zip

url=http://c1.cr173.com/soft1/baozoumanhuabiaoqing.zip

dir= ~/lx

wget  $dir  $url

说明:该例子是从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

实例2:使用wget -O下载并以不同的文件名保存

wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。

错误:下面的例子会下载一个文件并以名称download.aspx?id=1080保存

wget http://www.minjieren.com/download?id=1

即使下载的文件是zip格式,它仍然以download.php?id=1080命令。

正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名:

wget -O wordpress.ziphttp://www.minjieren.com/download.aspx?id=1080

实例3:使用wget –limit -rate限速下载

命令:

wget --limit-rate=300khttp://www.minjieren.com/wordpress-3.1-zh_CN.zip

说明:当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

实例4:使用wget -c断点续传

命令:wget -chttp://www.minjieren.com/wordpress-3.1-zh_CN.zip

说明:使用wget -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

更多用法可以详查。。。

13 screen命令

系统管理员经常需要远程登录服务器

    然后在服务器上跑一些程序, 有个时候 得跑很长时间(超过12小时)。这是如果程序没结束就退出远程管理终端远程跑的程序很有可能就此当掉,使用screen能解决这个问题。做法:

1.   敲入命令screen, 会创建一个跑着shell的单一窗口,在这里面 你可以跑你所需要的程序 然后Ctrl+a +d退出刚创建的窗口(回到进入screen前的环境)。

2.   然后再敲入命令screen创建新的终端窗口,就这样,你可以建立多个有shell的窗口(这些窗口里都可以跑你自己的应用)    这样就是你退出远程管理窗口(进入screen的环境), 你的screen窗间的窗口都不会关闭, 里面跑得应用自然也不会当掉。

    用screen -ls可以看所有的screen sessions

    用screen -r sessionid可以进sessionid指定的特定的screen session

最后 screen session不再使用的时候,screen -r sessionid进去。 exit退出即可 。

14  tar命令

可以用来压缩打包单文件、多个文件、单个目录、多个目录。

Linux打包命令_tar

常用格式:

单个文件压缩打包    tar czvf    my.tar.gz    file1

多个文件压缩打包     tar   czvf my.tar.gz    file1     file2,...file*)(也可以给file*文件mv 目录在压缩)

单个目录压缩打包    tar    czvf my.tar.gz    dir1

多个目录压缩打包   tar    czvf my.tar.gz     dir1    dir2

15 Split 文件切割命令

Split:按指定的行数截断文件

格式: split [-n]file [name]

默认的是以行进行分割,l是缺省值

Split –l  1000  my.file  newname

参数说明:

-n: 指定截断的每一文件的长度,不指定缺省为1000行

file: 要截断的文件

name: 截断后产生的文件的文件名的开头字母,不指定缺省为x,即截断后产生的文件的文件名为xaa,xab….直到xzz

例:

 

split -200 myfile prefix_

 

 

将文件myfile依次截断到名为prefix_aa, prefix_ab, prefix_ac…..的文件中,每一文件的长度为200行

 

 

功能说明:分割文件。

 

Split:按指定的行数截断文件

格式: split [-n]file [name]

参数说明:

-n: 指定截断的每一文件的长度,不指定缺省为1000行

file: 要截断的文件

name: 截断后产生的文件的文件名的开头字母,不指定,缺省为x,即截断后产生的文件的文件名为xaa,xab....直到xzz

例一:

split -55 myfile ff

将文件myfile依次截断到名为ffaa,ffab,ffac.....的文件中,每一文件的长度为55行

16  sz rz命令

在linux中rz 和 sz 命令允许开发板与主机通过串口进行传递文件了,下面我们就来简单的介绍一下rz 和 sz 命令的例子。

sz:将选定的文件从服务器上发送(send)到本地机器

rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器

17 mysql命令

1.linux下启动mysql的命令:

mysqladmin start

注意要直接以root用户来执行下面的命令,若不是,将会显示权限不足

/ect/init.d/mysqlstart (前面为mysql的安装路径)

2.linux下重启mysql的命令:

mysqladmin restart

/ect/init.d/mysql restart (前面为mysql的安装路径)

 

3.linux下关闭mysql的命令:

mysqladmin shutdown

/ect/init.d/mysql shutdown (前面为mysql的安装路径)

4.连接本机上的mysql:

进入目录mysql\bin,再键入命令mysql -uroot -p回车后提示输入密码。

退出mysql命令:exit(回车)

5.修改mysql密码:

mysqladmin -u用户名 -p旧密码password 新密码

或进入mysql命令行SET PASSWORD FORroot=PASSWORD("root");

6.增加新用户。(注意:mysql环境中的命令后面都带一个分号作为命令结束符)

grant select on 数据库.* to 用户名@登录主机 identified by"密码"

如增加一个用户test密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:

grant select,insert,update,delete on *.* to" Identified by "123";

有关mysql数据库方面的操作命令,可man mysql或者上网查询

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”

 

18 rpm命令

rpm是执行安装包的命令。二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

常用命令组合:

 

 

 

ivh:安装显示安装进度--install--verbose—hash

Ex:rpm  -ivh  jdk-7u40-linux-x64.rpm

-Uvh:升级软件包--Update;

-qpl:列出RPM软件包内的文件信息[Query Package list];

-qpi:列出RPM软件包的描述信息[Query Package install package(s)];

-qf:查找指定文件属于哪个RPM软件包[Query File];

-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];

-e:删除包

19  xargs命令

 1. 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,

例如:find /sbin-perm +700 |ls -l       这个命令是错误的

find /sbin -perm +700 |xargs ls -l  这样才是正确的

xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments 。 因为是以空白字元作为分隔,所以,如果有一些档名或者是其他意义的名词内含有空白字元的时候,xargs 可能就会误判了~他的用法其实也还满简单的!

2. 选项解释

-0      当sdtin含有特殊字元时候,将其当成一般字符,想/'空格等

例如:root@localhost:~/test#echo"//"|xargs  echo

                             root@localhost:~/test#echo"//"|xargs -0 echo

      /

-a file      从文件中读入作为sdtin,(看例一)

-e flag         ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。(例二)

-p           当每次执行一个argument的时候询问一次用户。(例三)

-n num        后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。(例四)

-t                  表示先打印命令,然后再执行。(例五)

-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替。(例六)

-r               no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。(例七)

-s num         命令行的最好字符数,指的是xargs后面那个命令的最大命令行字符数。(例八)

 

-L             num Use at most max-lines nonblank input lines per command line.-s是含有空格的。

-l              同-L

-d delim    分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符(例九)

-x         exit      的意思,主要是配合-s使用。

-P         修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。

3. 应用举例

例一:

root@localhost:~/test#cat test

#!/bin/sh

echo "hello world/n"

root@localhost:~/test#xargs -a test echo

#!/bin/sh echo hello world/n

root@localhost:~/test#

例二:

root@localhost:~/test#cat txt

/bin tao shou kun

root@localhost:~/test#cat txt|xargs -E'shou' echo

/bin tao

root@localhost:~/test#

例三:

root@localhost:~/test#cat txt|xargs -p echo

echo /bin tao shou kun ff ?...y

/bin tao shou kun ff

例四:

root@localhost:~/test#cat txt|xargs -n1echo

/bin

tao

shou

kun

root@localhost:~/test3#cat txt|xargs  echo

/bin tao shou kun

例五:

root@localhost:~/test#cat txt|xargs -t echo

echo /bin tao shou kun

/bin tao shou kun

例六:

$ ls | xargs -t -i mv {} {}.bak

例七:

root@localhost:~/test#echo""|xargs -t mv

mv

mv: missing file operand

Try `mv --help' for more information.

root@localhost:~/test#echo""|xargs -t -r  mv

root@localhost:~/test#

(直接退出)

例八:

root@localhost:~/test#cat test |xargs -i-x  -s 14 echo "{}"

exp1

exp5

file

xargs: argument line too long

linux-2

root@localhost:~/test#

例九:

root@localhost:~/test#cat txt |xargs -i -pecho {}

echo /bin tao shou kun ?...y

root@localhost:~/test#cat txt |xargs -i -p-d " " echo {}

echo /bin ?...y

echo tao ?.../bin

y

echo shou ?...tao

再如:

root@localhost:~/test#cat test |xargs -i -p-d " " echo {}

echo exp1

exp5

file

linux-2

ngis_post

tao

test

txt

xen-3

 ?...y

root@localhost:~/test#cat test |xargs -i -pecho {}

echo exp1 ?...y

echo exp5 ?...exp1

y

echo file ?...exp5

y

20   find 命令

利用find批量删除空文件及空文件夹方法, linux下批量删除空文件(大小等于0的文件)的方法

find . -name "*" -type f -size 0c| xargs -n 1 rm -f

用这个还可以删除指定大小的文件,只要修改对应的 -size 参数就行,例如:

find . -name "*" -type f -size1024c | xargs -n 1 rm -f

就是删除1k大小的文件。(但注意不要用 -size 1k,这个得到的是占用空间1k,不是文件大小1k的)。

查询出所有的空文件夹        find -type d -empty

删除文件

列出搜索到的文件              find . -name"shuaige.txt" -exec ls {} ; 

批量删除搜索到的文件       find . -name "shuaige.txt"-exec rm -f {} ; 

 删除前有提示                find . -name"shuaige.txt" -ok rm -rf {} ; 

 删除当前目录下面所有 test 文件夹下面的文件    find . -name"test" -type d -exec rm -rf {} ;

//删除文件夹下面的所有的.svn文件

find . -name '.svn' -exec rm -rf {} ;

注:  1.{}和之间有一个空格

2.find . -name 之间也有空格

3.exec 是一个后续的命令,{}内的内容代表前面查找出来的文件

20   diff命令

用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。

用法:

比较两个文件 :diff log2014.log log2013.log

比较两个文件不同,并生产补丁 :diff -ruN log2013.loglog2014.log >patch.log

第一个result减号表示第一个文件比第二个文件在这个位置少内容

第二个加号代表第二个文件比第一个文件在该位置多出一部分内容。

打补丁给不同的那个选项:patch  log2013.log()  patch.log

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2242次
    • 积分:69
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    文章存档