linux操作小技巧锦集

时间:2022-10-06 08:10:44

0、常用Linux命令

查看端口被占用情况:
1、netstat -tunlp|grep 端口号
2、lsof -i:端口号

tar 压缩文件命令:

-c:建立一个压缩文件的参数指令(create 的意思);  
-x:解开一个压缩文件的参数指令!  
-t:查看 tarfile 里面的文件!  
-r:向压缩归档文件末尾追加文件  
-u:更新原压缩包中的文件 
tar –xvf file.tar         // 解压 tar包  
tar -zxvf file.tar.gz     // 解压tar.gz  
tar -jxvf file.tar.bz2    // 解压 tar.bz2  
tar –Zxvf file.tar.Z      // 解压tar.Z 
tar –cvf jpg.tar *.jpg     // 将目录里所有jpg文件打包成tar.jpg  
tar –czf jpg.tar.gz *.jpg  // 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz  
tar –cjf jpg.tar.bz2 *.jpg // 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2  
tar –cZf jpg.tar.Z *.jpg   // 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z 

 

一、用户及用户组相关:

cat /etc/group    #查看用户组,第3列就是组的一个ID的概念
cat /etc/shadow    #查看用户,
cat /etc/passwd    #查看用户,第4列,就是用户所属的组的ID

二、VI:

VI太强大了,用熟练了会觉得很好用。

i    #从光标处开始编辑
s    #从光标之后开始编辑,而且会删掉一个字符
a    #从光标之后开始编辑,但是不会删掉字符
u #回退
/    #斜杠进入搜索模式,输入要搜索的字符串回车即可
n    #向后查看搜索结果
N    #向前查看搜索结果
set number    #显示行号,有时候很有用
set nonumber    ¥取消显示行号
gg 这里是跳至文件首行
dG 清空文件
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于:g/vivian/s//sky/)替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于:g/vivian/s//sky/g)替换每一行中所有 vivian 为 sky

可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 /):/oradata/apras/替换成/user01/apras1/ 

 

三、SSH:

配置SSH,请查看 http://www.cnblogs.com/whatmiss/p/7068772.html

设置超时时间 ,参考http://blog.chinaunix.net/uid-10697776-id-3341317.html

1.修改server端的 etc/ssh/sshd_config
ClientAliveInterval 60    #server每隔60秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 3    #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应

四、服务自启动相关配置:

这里用的是chkconfig命令来实现。主要思路就是:

1、给要配置的软件的启动脚本cp到/etc/init.d/下面

2、设置一下脚本的权限,设置为能执行 chmod 755 /etc/init.d/serverssh

3、然后chkconfig --add servername

4、最后开启,chkconfig servername on

例子,apache:

[root@leheledu ~]# whereis apachectl    #找到启动脚本在哪儿
apachectl: /usr/sbin/apachectl /usr/share/man/man8/apachectl.8.gz
[root@leheledu ~]# cp /usr/sbin/apachectl /etc/init.d/httpd    #cp
[root@leheledu ~]# chmod 755 /etc/init.d/httpd    #设置权限
[root@leheledu ~]#chkconfig --add httpd    #增加服务
[root@leheledu ~]#chkconfig httpd on    #开启
[root@leheledu ~]#chkconfig httpd --list httpd    #查看服务确认一下

#这里在增加服务可能会有点问题,解决办法:
添加支持: vi /etc/init.d/httpd 在 #!/bin/sh 下添加这两句:
#chkconfig:345 85 15 
#description:Start and stop the Apache HTTP Server 

 

五、重新rm命令,更安全:

编辑 /etc/bashrc一共加了几个命令:rm、ur、rmt、rmh、rl,编辑后重新链接ssh命令生效。如下:

vi /etc/bashrc 

然后到最后面,增加(注意给代码里的汉字删掉,否则可能影响正常):

#make rm safer by ztg 20170630
 
if [ ! -d ~/.trash ]; then
    mkdir -p ~/.trash
fi

alias rm=trash #rename rm
alias ur=unrm    #恢复文件到当前目录
alias rmt=cleartrash #清空回收站(真正的删除了)
alias rmh=rmhp #显示帮助信息
alias rl='ls ~/.trash' #显示已删的文件
alias rmtest=rmtests

rmtests()
{
    echo 'test:'
    echo $@
    if [ -z $1 ]; then
    echo "get null"
    fi
}
rmhp()
{
    echo "all deleted files are there : ~/.trash"
    echo "rm    --    mv file to ~/.trash"
    echo "rl    --    list deleted files"
    echo "ur    --    unrm, mv file from ~/.trash to this dir, now: " $PWD
    echo "rmt --    cleartrash, real delete files"
}

unrm()
{
    if [ -z "$1" ]; then
    echo "must gave a file name"
    return
    fi
    mv -i ~/.trash/$1 ./
}
trash()
{
    if [ -z $1 ]; then
        echo "must gave a file name"
        return
    fi
    if [ $1 == 't' ] || [ $1 == '/' ]; then
        echo "can not delete dir '/'"
        return
    fi
    #echo ${#@}
    #echo $@
    char='00'
    for i in $@
        do
            #echo ${i}
            #echo ${char}
            if [ ${#char} == 1 ] && [ ${char} != ${i:0:1} ]; then
                echo 'can not delete *'
                return
            fi
            char=${i:0:1}
            #echo ${char}
            #echo '================'
        done
    #return
    mv -b $@ ~/.trash/
}



cleartrash()
{
    read -p "clear sure?[n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ]    && /usr/bin/rm -rf ~/.trash/*
}

 

六、MySQL常用命令:

SELECT VERSION();    #查看版本号
SHOW STATUS LIKE '%connect%';    #查看链接信息
SHOW PROCESSLIST;    #查看用户链接状态
UPDATE user SET password=PASSWORD('123456') WHERE user='root';    #改密码
FLUSH PRIVILEGES;    #刷新权限

MySQL主从配置:http://www.cnblogs.com/skey_chen/p/5750574.html

七、文件搜索:

(1)grep 'test' d*    #显示所有以d开头的文件中包含 test的行
(2)grep 'test' aa bb cc    #显示在aa,bb,cc文件中包含test的行
(3)grep '[a-z]\{5\}' aa    #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
(4)grep magic /usr/src    #显示/usr/src目录下的文件(不含子目录)包含magic的行
(5)grep -r magic /usr/src    #显示/usr/src目录下的文件(包含子目录)包含magic的行 
(6)grep -w pattern files    #只匹配整个单词,而不是字符串的一部分(如匹配'magic',而不是'magical'),

 

八、远程拷贝文件

从本地复制到远程 :

scp 1.txt user@192.168.1.1:/path/ #复制文件 
scp -r /data/ user@192.168.1.1:/path/ #复制文件夹

从远程复制到本地  :

scp user@192.168.1.1:/path/1.txt /data/    #复制文件 
scp -P 20000 user@192.168.1.1:/path/*.txt /data/    #复制文件 
scp -r user@192.168.1.1:/path/ /data/    #复制文件夹