linux 命令

一、查看某个端口号被占用  命令

lsof -i :9999 | grep "(LISTEN)"

ps -aux | grep tomcat  查看tomcat进程

二、添加用户 和修改用户密码并且给该用户分配操作某个文件

 useradd –d /usr/sam -m sam 

-d 表示创建目录   -m 表示如果没有该目录自动创建     sam  是创建的用户

passwd  修改用户的密码

userdel sam 删除用户

三、修改文件所属组

使用chown命令可以修改文件或目录所属的用户:

       命令:chown 用户 目录或文件名

       例如:chown qq /home/qq  (把home目录下的qq目录的拥有者改为qq用户) 

使用chgrp命令可以修改文件或目录所属的组:

       命令:chgrp 组 目录或文件名

       例如:chgrp qq /home/qq  (把home目录下的qq目录的所属组改为qq组)

四、开关防火墙

1、重启后生效  (永久性生效,重启后不会复原)

 开启 chkconfig iptables on 

关闭  chkconfig iptables off

2、 即时生效,重启后失效

开启: service iptables start 
关闭: service iptables stop

3、查看防火墙状态

service iptables status或chkconfig iptables --list

五、重启网络

service network restart

六、查看主机名

hostname  

改主机名  vi /etc/sysconfig/network

七、文件处理命令

命令:ls(list)

权限:所有用户(此后如不显示,则为所有用户)

描述:显示文件目录

语法:ls 选项 [-al] [文件或目录]

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

l: 显示详细信息

命令:touch

语法:touch [文件名]

描述:创建一个空文件

命令:mkdir

语法: mkdir [-p选项表示递归创建文件夹] [文件夹名称]

描述:创建一个文件夹

命令:cp (copy)

语法:cp  [源文件] [目标文件] 

           cp -r [源目录] [目标目录]

描述:复制文件或目录

命令:rm(remove)

语法:rm -f [文件]

           rm -r [目录]

           rm -rf [目录,包含目录下内容]

描述:删除文件或目录

命令:cat

语法:cat [文件名称]

描述:查看文件内容(内如过多,显示内容可能不全)

命令:more

语法:more [文件名称]

描述:查看文件内容,可完全显示

用法:使用空格进行翻页,回车显示下一行,q退出(或者ctrl+c)

命令:head

语法:head -number [文件名]

描述:查看文件的前多少行

命令:tail

语法:tail -number [文件名]

描述:查看文件的后多少行

mv 1 修改文件名称的功能 : mv [源文件名称] [新文件名称]

         2  移动文件位置  : mv [源文件名称] [新文件位置+ 新文件名称]

命令:ln(link)

语法:ln -s [源文件] [目标文件] (硬链接则不需要-s选项)

描述:创建软链接文件

软链接特点:权限是所有人都可以访问,并且软连接文件指向源文件。

软链接就像windows系统中的快捷方式一样,特点也都类似。

硬链接:类似copy,硬链接大小和源文件一样,并且是同步更新的。

另外:硬链接不能跨文件系统分区,而软连接可以。

8、权限命令

命令:chmod

语法:chmod [{ugo}{+-=}{rwx}] [文件或目录]     u表示user  , g表示group ,o表示other

           chmod [mode=421] [文件目录]   4表示r 2表示w 1表示x      777表示user group other都有rwx的权限

描述:改变文件或目录的权限

形如:chmod g+w filename   表示给group加w权限   

chmod ugo+rwx filename   表示给user group other 加读写执行权限

chmod ugo-rwx filename   表示给user group other 减读写执行权限

形如:chmod 761 filename  7表示user有rwx权限  , 6表示group有rw权限 ,1表示other有x权限

命令:chown

语法:chown user 文件

描述:改变文件的所有者

示例:chown newuser t1.sh

useradd username 添加用户

passwd  username 为用户设置密码

命令:chgrp

语法:chgrp group 文件

描述:改变文件的所属组

示例:chgrp adm t1.sh

9、文件搜索命令

命令:find

语法:find [搜索范围路径] -name 【文件名称】(根据文件名查找)  

如 find /etc -name init  查找etc目录下的init文件

如 find /etc -name *init  查找etc目录下以init结尾的文件

如find /etc -name ?init   占位符   查找etc目录下从第二个单词是init的文件  如ainit

 find [搜索范围路径] -size [(+-)文件大小] (根据文件大小查找,大于+ 小于-)

如  find /etc -size -30   表示查找etc目录下小于30的文件   (+30表示找大于30的文件)

 find [搜索范围路径] -user(文件的所有者)

find /etc -user root

find [时间查找] [以天为单位]

 天: ctime、atime、mtime

 分钟:cmin、amin、mmin

c表示:change 改变文件属性的意思(比如所有者、所属组、权限变更)。

a表示:access 表示被访问过的意思(比如被查看过等)。

m表示:modify 更改内容的意思。

在时间前面添加:-表示之内,+表示之外

如 find /etc -mmin -120  表示查找120分钟以内被修改过的文件

find应用的连接符:

 -a (and的意思,逻辑与)

 -o(or的意思,逻辑或)

如 find /etc -mmin -120 -a  find /etc -name *init 表示查找120分钟以内被修改过的文件并且文件名字是以init结尾的文件

find查找:根据文件类型进行查找:-type

其中:f表示二进制文件,l表示软连接文件 d表示目录

如 find /etc -type f 表示查找etc目录下的二进制文件

命令:which

语法:which [命令名称]  如which rm  查看rm命令所在的文件位置

描述:查看命令所在的目录位置

在linux里面一般只有两种命令,第一种是所有用户都可以使用,第二种则是只允许管理员使用,还有一个命令叫whereis,和which使用类似

find的连接执行符号: 

find ... -exec [执行命令] {} \; 

表示查找出结果并执行后面的命令把结果进行操作

如find /usr/local/test/ -name aa.aa -exec rm -rf {} \;  表示找道到aa.aa并执行rm -rf命令删除aa.aa

find ... -ok [执行命令] {} \;

如find /usr/local/test/ -name aa.aa -ok rm -rf {} \;  表示找道到aa.aa并执行rm -rf命令删除aa.aa 但是要输入y或n 确认是否执行此命令

ok和exec的区别就是ok有询问确认的意思

find -inum [i节点标号]

如find -inum 15        

根据i节点查找文件 ls -i可以查看i节点,在linux系统中,所有的文件都有一个唯一的标识,方便linux内核去调用,这就是i节点

命令:locate

语法:locate [文件名称]  如locate aa.aa   一般先执行updatedb命令在执行locate aa.aa

描述:查找文件,根据linux数据库内部的索引(updatedb命令,可以手工更新updatedb数据库,一般和locate配合使用)

10、帮助命令  告诉命令怎么使用

命令:man

语法:man [命令或者配置文件],  如man ls

命令:whatis

语法:whatis [命令]

描述:查看命令的描述。

命令:--help

语法:[命令] --help 

描述: 查看命令的选项用法。

11、压缩解压缩命令

命令:gzip

语法:gzip [文件名称] 如gzip aa

描述:压缩的时候不保留原文件,并且只能压缩文件不能压缩目录

命令:gunzip

语法:gunzip [已压缩的文件] 如gunzip aa.gz

描述:解压缩文件,不保留源文件

命令:tar

语法:tar [zcvf]  [zxvf] [打包文件名.tar.gz] [源文件]

           -c 产生tar打包文件(必选)

           -x 产生的解压缩文件(必选)

           -v 显示详细信息

           -f 指定压缩后的文件名

           -z 打包同时压缩

最后配置加-C 表示文件解压后存放的路径 tar -zxvf aa.tar.gz  -C /usr/local  把文件解压到usr/local目录下

如 tar -zxvf aa.tar.gz  解压         -zcvf表示压缩

file命令可以查看任何文件的类型

命令:zip

语法:zip 选项[-r] [压缩后文件名称] [源文件]

描述:zip的格式是windows和linux通用的格式,可以压缩文件和目录,压缩目录时需要选项-r。

命令:unzip

语法:unzip [解压缩的文件]

描述:进行解压缩

最后配置加-d 表示文件解压后存放的路径

12、过滤:grep,可以将指定内容进行过滤然后输出。

将一个命令的输出传送给另一个命令,作为另外一个命令的输入。

ls -l /etc | more (表示将ls -l /etc的输出,当做more命令的输入,即more命令浏览的内容为前面命令的输出结果)

ls -l /etc | grep init(表示将ls -l /etc的输出结果进行过滤,显示为init的结果)

ls -l /etc | grep init | wc -l (最后进行统计显示的个数)

逻辑与(&&)

形如:ls && pwd(第一个命令如果执行成功。第二个命令才会执行)

逻辑或(||)

形如:ls || pwd (第一个命令执行成功,则第二个不执行,第一个命令执行失败,则执行第二个)

13、输入输出重定向:

0 (stdin) 标准输入      1 (stdout)标准输出       2 (stderr)标准错误输出

输出重定向:就是把输出的结果显示到一个文件上 (>表示输出重定向  ,>>进行结果的追加  ,2>错误重定向一般是把程序执行的错误日志信息存放到指定的log日志中去)

14、切换用户

su - username

15、vi 编辑

插入时

  i表示在当前位置   o表示下一行开始   a表示当前光标的第二个位置   A表示在当前光标第一行末尾  I表示在当前光标开头插入 O 表示在光标上行插入

set nu  设置行号  set nonu取消行号

查找

在插入的时候输入\  后面跟要查找的内容   如\a  表示查找a字母

删除

x表示删除光标位置的字符

nx表示删除光标所在的n个后的字符

dd表示删除所在的行

dG删除光标所在行值尾行内容

:n1,n2d 表示删除指定范围行数

复制粘贴

yy 或Y复制当前行  

nyy 或nY复制当前以下几行

dd剪切

ndd剪切当前以下几行

p粘贴  在当前所在下行  P 粘贴当前所在上行

替换

%s/old/new/g   如%s/ad/55/g  表示把ad换成55

:n1,n2s/old/new/g 在一定范围内替换指定字符串

16、ps 查看进程

-l 表示长格式显示

-a表示查看所有用户的进程

-e 表示所有进程

140351_4lNQ_2995717.png

stat:当前进程状态 S表示休眠 R   表示运行状态 D表示不可中断的休眠状态 Z僵死状态 T停止状态

uid 表示当前启动进程的用户

pid 表示进程号

ppid 表示父进程号

tty 进程启动的终端

in 进程的优先级

time 进程启动以来占用的实际时间

cmd 进程的命令

ps -el 查看所有进程 

ps -aux查看当前进程占用cpu和内存百分比

17、nohup

语法 nohup program &  表示使用进程在用户退出登录后仍继续执行

18、top 查看linux情况

19、定时任务

at 表示多长时间后执行    ctrl+d 保存 定时任务

绝对时间 at HH:MM YYYY-MM-DD

160822_qXFR_2995717.png

相对时间 at now +n minutes  或  at now +n hours 或  at now +n days

160322_AvvG_2995717.png

crontab

crontab {-l|-r|-e}

-l 表示当前的crontab

-r表示删除当前的crontab

-e表示编辑当前的crontab

164417_hviX_2995717.png

如果crontab程序没有启动 则需要手工启动 

查看crontab是否启动命令 ps -el | grep crond

启动crontab  /etc/rc.d/init.d/crond start

crontab文件建立好以后可以在/var/spool/cron目录下找到

crontab -e  新建一个crontab

164956_aIuC_2995717.png

20、shell编程

变量 

本地变量 var_name=值   如  A=1 本地变量:只属于某一个bash的变量。

局部变量 local var_name =值  如 local A=1   作用域:当前代码段

环境变量  export 名字=值  如 export java_home="/usr/local/jdk"  作用域:当前的shell和其子shell

位置变量  用于 脚本执行的参数,$1 表示第一个参数,以此类推  $1,$2….

特殊变量  $? :上一个命令的执行状态返回值   $# 传递到脚本的参数个数   $* 传递到脚本的参数,与位置变量不同,此选项参数可超过9个

撤销变量

unset  变量名

程序有两类返回值

 执行结果

 执行状态,$? : 0:表示正确,1-255:错误

输出重定向:

>覆盖重定向

>> 追加重定向

2> 错误覆盖重定向

2>>错误追加重定向

1>>标准追加重定向

1> 标准覆盖重定向

&> 全部重定向

引用变量:${变量名},一般可以省略{}

先定义一个变量A=1

单引号:强引用,不作变量替换    echo '$A'  输出 $A

双引号:弱引用,做变量替换   echo "$A"  输出1  

如果想在变量前后加字符  可以 用{}  如 echo “aa${A}bb” 输出 aa1bb

反引号:``命令替换  echo `pwd`  输出 /root

第一个shell编写

第一行一定要写   #!/bin/bash

写脚本的时候  exit   跟个数字   数字0表示脚本还会执行  非0表示脚本退出不会继续执行

vi adduser.sh

#!/bin/bash
#添加用户  $1 表示执行sh脚本时传递的第一个参数
useradd $1
#设置密码    将标记输出的第一个参数 作为(新密码)标准输入的值   并且把修改密码的信息输入到null里
echo $1 | passwd --stdin  $1 &>/dev/null
#打印成功信息
echo “user  add  success”

条件判断:

条件表达式:

 [  expression  ] 或   test expression

    整数比较:

           -eq :  比如:[ $A –eq  $B ]

           -ne , -gt ,-lt,-ge,-le

      在linux 中 命令执行状态:0 为真,其他为假

      逻辑与: &&

     逻辑或: ||

      逻辑非: !

#!/bin/bash

#用户存在  就打印用户存在   并且退出脚本执行 exit 后的数字非零表示退出不执行   零表示执行
id $1 &> /dev/null && echo "$1 用户已经存在" && exit 2

#用户不存在  就添加用户
id $1 &> /dev/null || useradd $1

#用户不存在就给用户设置密码
id $1 &> /dev/null && echo $1 | passwd --stdin $1 &>/dev/null && echo "$1 用户添加成功!!"

if  elif else fi

当if和then 不在一行的时候  ;分号可以省略

      if  条件 ;then

               语句

      elif  条件 ; then

          语句

      else

               语句

          fi

#!/bin/bash
count=`wc -l /etc/inittab | awk '{print $1}'`
if [ $count -gt 28 ] ; then
  echo '好大文件'
elif [ $count -gt 25 ]
 then echo '11小文件'
else
  echo '小文件'
fi

-a : 逻辑与,并且  -o :或者 :  if  [ $# -gt 1 –a  $# -lt 3 –o $#  -eq 2 ] ; then

bash –x shell 文件 :debug 执行文件  如  bash -x test4.sh

Shell 中如何算术运算

 let  算术运算表达式

let  C=$A + $B

如 A=1  B=1

let  C=$A + $B

echo $C

$[算术表达式]

  C  = $[$A+$B]

如 A=1  B=2

C=$[$A+$B]

echo $C

文件测试: [ ]  需要中括号

-e  FILE :测试文件是否存在

-f  FILE :测试文件是否为普通文件

-d FILE :测试文件是否为目录

-r  FILE  该文件是否有读权限

-w  FILE  该文件是否有写权限

-x FILE  该文件是否要偶执行权限

如[ -e usr ]

特殊变量:

$#  $@

字符串测试:

== 等号两端需要空格

!=

-n   string : 判断字符串是否为空

-s  string : 判断字符串是否不空

for循环

for  变量  in 列表 ; do

语句

done

如#!/bin/bash
for i in 1 2 3 4 5 ; do
echo $i
done

计算 100以内能被三整除的和

#!/bin/bash
count=0
for i in {1..100} ; do
 if [ $[$i%3] -eq 0 ] ; then
    count=$[$i+$count]
 fi
done
 echo $count
 

生成列表:

      1、{1..100}

      2、seq  [起始数]   [跨度数]  结束数  seq 20表示从1到20  或 seq 5 20  表示从5到20   seq 5 5 20 表示 5 10 15 20      注意要把  seq 20放在反引号里`seq 20`

     3、ls  /etc 文件列表   把ls /etc 的执行结果当中列表   `ls /etc` 也要放在反引号里

While 循环

格式一

while 条件;do

语句

[break]

done

格式二 死循环

while true

do

    语句

done

格式三 死循环

while :

do

    语句

done

格式四 死循环

while [ 1 ]

do

    语句

done

格式五 死循环

while [ 0 ]

do

    语句

done

case 语句

case  变量  in value1)

语句 ;;

value2)

  语句 ;;

*)

  语句

;;

esac

如 #!/bin/bash
case $1 in 1)
echo 1 ;;
2)
echo 2 ;;
3)
echo 3 ;;
*)
echo "other" ;;
esac

select

select 变量 in 列表

do

语句

done

#!/bin/sh
# select var in [params] do ... done
select var in "java" "c++" "php" "linux" "python" "ruby" "c#" 
do 
    break
done
echo "you selected $var"

21、一台机器的多个tomcat部署

如果想在多个ip上操作tomcat   要配置多个ip之间的ssh免登陆

#!/bin/sh
if [ $1 == rescenter ];then
  cd  /root/workspace/tomcatspace/t2/bin/
 ./shutdown.sh
 rm -rf  /root/workspace/tomcatspace/t2/webapps/rescenter*
 cp  /root/workspace/tomcatspace/t1/webapps/rescenter.war  /root/workspace/tomcatspace/t2/webapps/
 cd  /root/workspace/tomcatspace/t2/bin/
 ./startup.sh
echo "rescenter  finish"
fi

if [ $2 == restask ];then
  cd  /root/workspace/tomcatspace/t2/bin/
 ./shutdown.sh
 rm -rf  /root/workspace/tomcatspace/t2/webapps/restask*
 cp  /root/workspace/tomcatspace/t1/webapps/restask.war  /root/workspace/tomcatspace/t2/webapps/
 cd  /root/workspace/tomcatspace/t2/bin/
 ./startup.sh
echo "restask finish"
fi

if [ $3 == resintf ];then
  cd  /root/workspace/tomcatspace/t4/bin/
 ./shutdown.sh
  cd  /root/workspace/tomcatspace/t5/bin/
 ./shutdown.sh
 rm -rf  /root/workspace/tomcatspace/t4/webapps/resintf*
 rm -rf  /root/workspace/tomcatspace/t5/webapps/resintf*
 cp  /root/workspace/tomcatspace/t3/webapps/resintf.war  /root/workspace/tomcatspace/t4/webapps/
 cp  /root/workspace/tomcatspace/t3/webapps/resintf.war  /root/workspace/tomcatspace/t5/webapps/
 cd  /root/workspace/tomcatspace/t4/bin/
 ./startup.sh
 cd  /root/workspace/tomcatspace/t5/bin/
 ./startup.sh
echo  "resintf finish"
fi
 

转载于:https://my.oschina.net/xiaozhou18/blog/913660

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值