分类 默认分类 下的文章

停止指定端口进程

netstat -nlp|grep 28082|awk '{print $7}'|awk -F '[/]' '{print "kill -9",$1}'|sh

lsof -i :28082|grep -v "PID"|awk '{print "kill -9",$2}'|sh

Linux后台启动并将错误输出到标准输出当中

nohup /config/frp/frps >/dev/null 2>$1 &

查找文件及文件夹并修改属性

find / -name "*~" -print -exec rm -f {} \; Linux清空目录下后缀为~的临时文件
find . -type d -exec chmod 755 {} \; 这个是把当前目录下及子目录的属性改成755
find . -type f -exec chmod 644 {} \; 这个是把当前目录及子目录中的文件属性改成644

挂载交换分区

新建:

dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 0600 /swapfile
/sbin/mkswap /swapfile
/sbin/swapon /swapfile
echo "/swapfile swap swap defaults 0 0" >>/etc/fstab

卸载:

/sbin/swapoff swapfile

删除/etc/fstab中交换分区的配置

rm -rf /swapfile

Linux刻录镜像到U盘

sudo dd if=WIN7-RTM_7600.16385_X86-64_CN-EN_DV5.iso of=/dev/sdc

Maven打包编译跳过测试命令
clean package -B -e -U -Dmaven.test.skip=true -P test

-U:该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很多。

-e:如果构建出现异常,该参数能让Maven打印完整的stack trace,以方便分析错误原因。

-B:该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。

推送本地
mvn install:install-file "-Dfile=<yourJarFileName>.jar" "-DgroupId=<yourGroupID>" "-DartifactId=<yourArtifactId>" "-Dversion=<yourVersion>" "-Dpackaging=jar"
推送本地RELEASES版
mvn install:install-file "-Dfile=<yourJarFileName>.jar" "-DgroupId=<yourGroupID>" "-DartifactId=<yourArtifactId>" "-Dversion=<yourVersion>-RELEASES" "-Dpackaging=jar"
推送本地SNAPSHOT版
mvn install:install-file "-Dfile=<yourJarFileName>.jar" "-DgroupId=<yourGroupID>" "-DartifactId=<yourArtifactId>" "-Dversion=<yourVersion>-SNAPSHOT" "-Dpackaging=jar"
示例:
mvn install:install-file "-Dfile=activemq-client-5.14.1.jar" "-DgroupId=com.asiainfo" "-DartifactId=activemq-client" "-Dversion=1.0" "-Dpackaging=jar"
推送到远程

因为nexus是需要登陆操作,在settings.xml的

<server>   
<id>nexus</id>   
<username>admin</username>
<password>admin123</password>   
</server>

推送的参数为"-DrepositoryId=nexus",其中nexus为server的id属性

推送远程RELEASES版
mvn deploy:deploy-file "-Dfile=<yourJarFileName>.jar" "-DgroupId=<yourGroupID>" "-DartifactId=<yourArtifactId>" "-Dversion=<yourVersion>" "-Dpackaging=jar" "-Durl=http://localhost:8081/repository/maven-releases/" "-DrepositoryId=nexus"

推送远程SNAPSHOT版

mvn deploy:deploy-file "-Dfile=<yourJarFileName>.jar" "-DgroupId=<yourGroupID>" "-DartifactId=<yourArtifactId>" "-Dversion=<yourVersion>" "-Dpackaging=jar" "-Durl=http://localhost:8081/repository/maven-snapshots/" "-DrepositoryId=nexus"
示例:
mvn deploy:deploy-file "-Dfile=activemq-client-5.14.1.jar" "-DgroupId=com.asiainfo" "-DartifactId=activemq-client" "-Dversion=1.0" "-Dpackaging=jar" "-Durl=http://localhost:8081/repository/maven-releases/"  "-DrepositoryId=nexus"
推送到Maven中央仓库
地址:

https://issues.sonatype.org/secure/Dashboard.jspa
https://oss.sonatype.org

中央仓库搜索网站:

https://central.sonatype.com/

发布命令
mvn clean deploy -P release -Dgpg.passphrase=password

Linux中除了常见的读(r)、写(w)、执行(x)权限以外,还有3个特殊的权限,分别是setuid、setgid和stick bit

1、setuid、setgid

先看个实例,查看你的/usr/bin/passwd 与/etc/passwd文件的权限

ls -l /usr/bin/passwd /etc/passwd
-rw-r--r-- 1 root root  2262  4月 10 09:20 /etc/passwd
-rwsr-xr-x 1 root root 47032  2月 17  2014 /usr/bin/passwd

众所周知,/etc/passwd文件存放的各个用户的账号与密码信息,/usr/bin/passwd是执行修改和查看此文件的程序,但从权限上看,/etc/passwd仅有root权限的写(w)权,可实际上每个用户都可以通过/usr/bin/passwd命令去修改这个文件,于是这里就涉及了linux里的特殊权限setuid,正如-rwsr-xr-x中的s

setuid就是:让普通用户拥有可以执行“只有root权限才能执行”的特殊权限,setgid同理指”组“

作为普通用户是没有权限修改/etc/passwd文件的,但给/usr/bin/passwd以setuid权限后,普通用户就可以通过执行passwd命令,临时的拥有root权限,去修改/etc/passwd文件了

2、stick bit (粘贴位)

再看个实例,查看你的/tmp目录的权限

ls -dl /tmp
drwxrwxrwt 9 root root 90112  5月  6 08:44 /tmp

tmp目录是所有用户共有的临时文件夹,所有用户都拥有读写权限,这就必然出现一个问题,A用户在/tmp里创建了文件a.file,此时B用户看了不爽,在/tmp里把它给删了(因为拥有读写权限),那肯定是不行的。实际上是不会发生这种情况,因为有特殊权限stick bit(粘贴位)权限,正如drwxrwxrwt中的最后一个t

stick bit (粘贴位)就是:除非目录的属主和root用户有权限删除它,除此之外其它用户不能删除和修改这个目录。

也就是说,在/tmp目录中,只有文件的拥有者和root才能对其进行修改和删除,其他用户则不行,避免了上面所说的问题产生。用途一般是把一个文件夹的的权限都打开,然后来共享文件,象/tmp目录一样。

3、如何设置以上特殊权限

setuid:chmod u+s xxx
setgid: chmod g+s xxx
stick bit : chmod o+t xxx

或者使用八进制方式,在原先的数字前加一个数字,三个权限所代表的进制数与一般权限的方式类似,如下:

suid guid stick bit
1 1 1

所以:suid的二进制串为:100,换算十进制为:4,guid的二进制串为:010,换算:2,stick bit 二进制串:001,换算:1

于是也可以这样设:

setuid:chmod 4755 xxx
setgid:chmod 2755 xxx
stick bit:chmod 1755 xxx

最后,在一些文件设置了特殊权限后,字母不是小写的s或者t,而是大写的S和T,那代表此文件的特殊权限没有生效,是因为你尚未给它对应用户的x权限

删除当前目录下所有 *.txt文件,除了test.txt
rm `ls *.txt|egrep -v test.txt`
rm `ls *.txt|awk '{if($0 != "test.txt") print $0}'`
排除多个文件
rm `ls *.txt|egrep -v '(test.txt|fff.txt|ppp.txt)'`
rm -f `ls *.log|egrep -v '(access.log|error.log)'`
rm -f `ls *.log|egrep -v '(access.log)'`

注意:上面所用的符号不是单引号,是 `

find查找排除
rm `find . -name *.txt | egrep -v ‘(test.txt|fff.txt|ppp.txt)'`