Linux常用命令

linux的命令种类繁多,但掌握方法和规则,记住常用的命令,不懂的用man来查询。

1.解压.tar.xz: tar Jxvf xxx.tar.xz

2.解压7z: 7z x filename.7z

3.统计源代码的行数:

1
2
3
4
#!/bin/bash
find . -name '*.c' -o -name '*.h' | xargs wc -l
find . -name '*.c' -o -name '*.h' | xargs cat | sed '/^\s*$/d' | wc -l
cloc ./

4.grep命令:grep (regular pattern) (input file)

使用 grep 抓取匹配关键字附近的行, 有时我们会对 grep 匹配关键字附近的行感兴趣(这有点上下文的味道),使用 -A、-B、以及 -C 选项可以满足我们的愿望。

grep -A ‘keyword’ file # 匹配 keyword 的下 n 行

grep -B ‘keyword’ file # 匹配 keyword 的上 n 行

grep -C ‘keyword’ file # 匹配 keyword 的上 n 行及下 n 行

5.apt-get命令

1
2
3
4
5
6
7
#!/bin/bash
apt-cache search ‹name› # find package ‹name› for install by “apt-get”
apt-cache show ‹name›   # describe package ‹name›
apt-get install ‹name›  # install a new program. (usually used with sudo in front)
apt-get remove ‹name›   # remove (un-install) a program.
apt-get purge ‹name›    # remove a program and its config files.
dpkg -l # list all installed packages

6.反向解析域名:host 0.0.0.0

7.得到本机ip:

1
2
ifconfig | awk '/inet addr:/ {print $2}' | awk -F: '{if ($2 != "127.0.0.1") print $2}'
ifconfig | sed -rn 's/.*r:([^ ]+) .*/\1/p'

8.创建目录:mkdir {1..50};创建文件:touch {1..50};

9.对打开端口进行检查:netstat -an | grep –color -i -E ‘listen|listening’

netstat -tlnp

10.找到超过100M的文件:find . -type f -size +100M

11.删除文件:rm !(.foo|.bar|*.baz)

12.快速重命名:mv filename.{old,new}

13.终止进程:killall -KILL 进程名称 | killall -signal process | kill -SIGKILL processID

14.成为Ubuntu超级用户:sudo passwd root 新建root用户

15.寻找文件:find 路径名(path) 参数(根据文件名称-name、类型-type、权限-perm、修改世间-atime) 模式匹配

16.使某个配置文件立即生效:source /etc/profile

17.打开或关闭某项服务:service 某项服务(iptables) on|stop

18.查看系统进程占用资源的工具:top,ps,free,vmstat,iostat,pmap

19.找到某个进程的ID:ps -aux | grep processname

20.根据目录下文件的大小排序输出:du -hs * | sort -h

21.查看当前目录下文件的个数:ls -l | grep ”-” | wc -l 查看当前目录下文件的个数,包括子目录里的:ls -lR | grep ”-” | wc -l 查看某目录下文件夹(目录)的个数,包括子目录里的:ls -lR | grep ”d” | wc -l

22.设置文件及文件夹权限:chmod -R 664 文件夹名称 (赋予文件属主和同组用户读、写权限,其他用户只读权限),文件夹和其目录下的文件都被设置了相同的664权限,u代表的是与文件属主拥有一样的权限

23.Shell删除目录下的无效链接

1
2
3
4
5
6
7
8
9
#!/bin/bash
link=` find . -type l `
echo $link
for i in $link;
  do
  if [ ! -f $i ]; then
      rm $i ;
  fi ;
  done

24.shell给可执行的文件创建链接

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
mkdir -p  ./exelink
cd exelink
link=` find ../ -type f -perm -111  `
for i in $link ;
  do
  if [  -f $i ] ; then
      echo $i
      link  $i `echo $i | sed 's,.*/,,'`
  fi ;
  done

25.根据不同的时段输出不一样的欢迎词

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
HH=` date +%k `
echo $HH
if [ ${HH} -ge 0 ]&&[ ${HH} -lt 12 ] ; then
      echo "Good Morning `whoami`";
elif [ ${HH} -ge 12 ]&&[ ${HH} -l 18 ]; then
      echo "Good Afternoon `whoami`"
else
      echo "Good Evening `whoami`"
fi;

Comments