Contents

Linux 常用命令

设置 JAVA_HOME

export JAVA_HOME="$(dirname $(dirname $(realpath $(which javac))))"

ls 命令详解

ls [选项] [文件名]

选项

  • -l
[root@dev workspace]# ls -l
total 16
drwxr-xr-x 2 root root 4096 Jun 26 18:19 download
drwxr-xr-x 3 root root 4096 Jun 26 11:50 git_storage
drwxr-xr-x 2 root root 4096 Jun 25 07:13 sh
drwxr-xr-x 3 root root 4096 Jun 26 14:56 svr

第一列文件类型,文件权限,第二列文件夹或文件个数,第三列创建用户,第四列用户组,第五列文件大小,第六列文件的最后修改时间,最后一列是文件名

  • -a 显示隐藏文件/文件夹
  • -r 以逆向的方式进行排序,与-l一起使用,默认逆向文件名,如果按时间,加上-t
  • -R 递归显示

cat EOF追加与覆盖

1. 覆盖

#!/bin/bash
cat > /root/test.txt <<EOF
Hello!
My site is www.361way.com
My site is www.91it.org
Test for cat and EOF!
EOF

2. 追加

#!/bin/bash
cat >> /root/test.txt <<EOF
Hello!
My site is www.361way.com
My site is www.91it.org
Test for cat and EOF!
EOF

如果EOF改成-EOF的话,可以保留后面的换行格式,对于在shell内引用python脚本的情况比较好用。

tee

Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。

语法

tee [OPTION]... [FILE]...

说明

-a, --append
添加内容到指定文件,不会覆盖源文件内容

-i, --ignore-interrupts
忽略输入

awk

用法示例

命令说明
awk ‘{print}’ c.txt打印整个文件的内容
awk ‘{print $1}’ c.txt打印文本的第一列的内容
awk ‘{print $1, $2, $3}’ c.txt打印文本的第一列到第三列的内容
awk ‘{print $1 “\t” $2 “\t” $3}’ c.txt打印文本的第一列到第三列的内容,并按照制表符间隔
awk ‘{print NR “\t” $1 “\t” $2 “\t” $3}’ c.txt打印文本的第一列到第三列的内容和行号,并按照制表符间隔。(NR:number of record)

文件

统计某文件夹下文件的个数

ls -l |grep "^-"|wc -l

统计某文件夹下目录的个数

ls -l |grep "^d"|wc -l

统计文件夹下文件的个数,包括子文件夹里的

ls -lR|grep "^-"|wc -l

注意,如果文件中有隐藏的文件,需要在ls命令后面加上-a选项。

ls -laR | grep "^-" | wc -l