linux常用命令.持续记录....

1.查找文件,比如在linux
find / -name “maven”

2.查找目录
find / -name “maven” -type d

1.删除所有包含gitlab文件:find / -name gitlab | xargs rm -rf

2.source命令执行完脚本在进入的目录,不会回到执行脚本的目录,./方式执行脚本执行完毕后回到执行脚本的目录。

3.ubuntu查看软件包是否安装:
dpkg -s 软件包名
如:dpkg -s ssh

CentOS查看软件包安装:
rpm -qa|grep 软件包名
如:rpm -qa|grep ssh
ps:查看安装目录在哪:rpm -ql xxx(前面使用rpm -qa列出的软件包名)

4.ubuntu查看所以服务:
service –status -all

5.压缩命令
压缩:
将test文件压缩为名为test.zip
zip -q -r test.zip test

解压:
unzip test.zip解压到当前目录
unzip test.zip -d /usr/local解压到指定目录/usr/local

5.crontab语法及应用

1:查看当前用户的定时任务

[oracle@localhost ~]$ crontab -l

          • /home/oracle/test.sh >/dev/null 2>&1

2:编辑当前用户的定时任务

可以在编辑状态修改、删除、新增一些定时任务。注释一般用#

[oracle@localhost ~]$ crontab -e

3:删除当前用户的定时任务

[root@localhost ~]# crontab -r

[root@localhost ~]# crontab -l

no crontab for root

下面列举几个例子供大家参考

1: 59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1

表示每天23点59分执行脚本/home/oracle/scripts/alert_log_archive.sh

2: /5 * * * /home/oracle/scripts/monitoring_alert_log.sh >/dev/null 2>&1

表示每5分钟执行一次脚本/home/oracle/scripts/monitoring_alert_log.sh

3: 0 20 * * 1-5 mail -s “****[email protected] < /tmp/maildata

周一到周五每天下午 20:00 寄一封信给 [email protected]

……………………………………….

关于 >/dev/null 2>&1 的解释:

0表示键盘输入

1表示标准输出

2表示错误输出.

我们首先创建test.sh脚本如下:

#! /bin/sh

echo "hello, everybody, now is " `date`

date >> test.txt

然后添加作业

          • /home/oracle/test.sh >/home/oracle/log.txt & 默认值为1,即和下面命令一致
          • /home/oracle/test.sh 1>/home/oracle/log.txt &
          • /home/oracle/test.sh 2>/home/oracle/log.txt &
          • /home/oracle/test.sh 2>/home/oracle/log.txt 2>&1 &

1,2将tesh.sh 命令输出重定向到log.txt, 即输出内容不打印到屏幕上,而是输出到log.txt文件中。如果你需要追加而不是覆盖,可以用 >>代替>

2>&1 是将错误输出重定向到标准输出。 然后将标准输入重定向到文件log.txt。

&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。

注意事项:

配置定时任务时,需要注意两个问题:

1: 在SHELL中设置了必要的环境变量;例如一个shell脚本手工执行OK,但是配置成后台作业执行时,获取不到ORACLE的环境变量,这是因为crontab环境变量问题,Crontab的环境默认情况下并不包含系统中当前用户的环境。所以,你需要在shell脚本中添加必要的环境变量的设置

2: 尽量所有的文件都采用完全路径方式,避免使用相对路径。

5.linux通过端口号查找程序执行路径
比如80端口

netstat -antlp|grep 80

结果如下:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1684/nginx          
tcp        0      0 172.16.78.165:6379      116.62.184.190:34180    ESTABLISHED 1560/redis-server 0 
tcp        0      0 172.16.78.165:34180     116.62.184.190:6379     ESTABLISHED 1558/java           
tcp        0      0 172.16.78.165:34042     140.205.140.205:80      ESTABLISHED 1476/AliYunDun  

6.查看文件权限和更改文件访问权限

ls -l或者ll如下:

drwxr-xr-x  6 root     root     4096 Jan 12 11:18 soft
-rwxrwxrwx  1 root     root      433 Jan 11 11:20 startAll.sh

共10位。横线“-”表示是文件,“d”表示是目录或文件夹。后面3位一组,共9个字符。每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
权限字符用横线”-“代表空许可,r代表只读,w代表写,x代表可执行。
如上面代码所示每个字母位置代表2进制的数字:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
权限设置2种形式:
1.包含字母和操作符表达式的文字设定法;
2.包含数字的数字设定法。
推荐使用第一种,因为表示比较清楚,第二种对老手来说较方便。
权限设置对应:文件属主u,与文件属主同组用户g,其他用户o删除执行权限顺序设置。

6.1. 文字设定法:

 语法:
 chmod [who] [+ | - | =] [mode] 文件名
 chmod是命令名
 who值有:文件属主u,与文件属主同组用户g,其他用户o,所以用户a
 操作:+增加权限,-删除权限,=表示只有指定的权限
 mode值:r :读权限。w :写权限。 x :执行权限。- :删除权限。
 
 比如
 1.增加test.sh文件属主只读权限

chmod u+r test.sh

2.删除test.sh文件属主(所有者)只读权限

chmod u-r test.sh

3.test.sh文件属主只有只读权限

chmod u=r test.sh

其它组权限设置如上一样,只是把“u”换成“g”或“o”或”a”。可以多组设置,中间用逗号隔开如下:chmod u+r,g+x test.sh
是不是用包含字母和操作符表达式的文字设定法用起来比较清楚。

6.2数字设定法

语法:

chmod [mode] 文件名

r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
其顺序是(u)(g)(o)。
例如想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
数字与字符对应关系如下:
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
例如

chmod 751 file   

说明:
给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

7.chown更改某个文件或目录的所有者

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
1.命令格式:

    chown [选项]… [所有者][:[组]] 文件…

  2.命令功能:

    通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

  3.命令参数:

  必要参数:

    -c 显示更改的部分的信息

    -f 忽略错误信息

    -h 修复符号链接

    -R 处理指定目录以及其子目录下的所有文件

    -v 显示详细的处理信息

1.改变拥有者和群组

chown ssh:ssh log.log

2.只改变拥有者

chown chenyuan log.log

3.只改变群组

chown :ssh log.log

chmod与chown区别和联系。
chmod:ch是change缩写,mod是权限,作用是重新设定不同的访问权限
chown:ch同上,own是拥有者,作用是更改某个文件或目录的所有者
chgrp:ch同上,grp是group缩写,作用是更改某个文件或目录的用户组。

8.查看端口占用情况

netstat -tulnp

结果类似如下:

[root@izbp1hx8v6lzadot5plxh2z vsftpd]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      2211/redis-server 0 
tcp        0      0 127.0.0.1:8205          0.0.0.0:*               LISTEN      2226/java           
tcp        0      0 0.0.0.0:8109            0.0.0.0:*               LISTEN      2126/java           
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2195/nginx          
tcp        0      0 0.0.0.0:8209            0.0.0.0:*               LISTEN      2226/java           
tcp        0      0 127.0.0.1:8405          0.0.0.0:*               LISTEN      2255/java           
tcp        0      0 0.0.0.0:8181            0.0.0.0:*               LISTEN      2126/java           
tcp        0      0 0.0.0.0:8182            0.0.0.0:*               LISTEN      2226/java           
tcp        0      0 0.0.0.0:8184            0.0.0.0:*               LISTEN      2255/java           
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      1576/sshd           
tcp        0      0 0.0.0.0:8409            0.0.0.0:*               LISTEN      2255/java           
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      2195/nginx          
tcp        0      0 0.0.0.0:8188            0.0.0.0:*               LISTEN      2287/java           
tcp        0      0 127.0.0.1:8805          0.0.0.0:*               LISTEN      2287/java           
tcp        0      0 0.0.0.0:8809            0.0.0.0:*               LISTEN      2287/java           
tcp        0      0 127.0.0.1:8105          0.0.0.0:*               LISTEN      2126/java           
udp        0      0 0.0.0.0:68              0.0.0.0:*                           978/dhclient        
udp        0      0 172.16.78.165:123       0.0.0.0:*                           1186/ntpd           
udp        0      0 127.0.0.1:123           0.0.0.0:*                           1186/ntpd           
udp        0      0 0.0.0.0:123             0.0.0.0:*                           1186/ntpd           
udp        0      0 0.0.0.0:16836           0.0.0.0:*                           978/dhclient 

列出了系统所以被使用的端口及进程名,pid

猜你喜欢

转载自blog.csdn.net/achenyuan/article/details/78511714