该博文为我之前文章重新设置文章格式,改为markdown格式,更加美观。
/etc/sysconfig/i18n,LANG="zh_CN.UTF-8"
env
crontab -l
mount | column -t
fdisk -l
// df从整体上反映文件系统对节点和磁盘块的使用情况,du主要统计目录或文件所占磁盘空间的大小。
// 显示已用可用的磁盘空间
df -hT
// 显示当前目录磁盘使用统计
du -sh *
// 显示当前目录最大的10个文件或者文件夹
du -s * | sort -nr | head
swapon -s
free -m
grep MemTotal /proc/meminfo
grep MemFree /proc/meminfo
`hdparm -i /dev/hda `
dmesg | grep IDE
cat /proc/loadavg
ifconfig eth0 192.168.0.22 netmask 255.255.255.0
ifconfig eth0 down; ifconfig eth0 hw ether 00:24:24:47:96:22; ifconfig eth0 up
netstat -tulnp
find . -name "*.java" | xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l
find some-dir -type f -name "*.txt" -exec cp \{\} new-dir \;
find some-dir -type f -name "*.txt" -print0 | xargs -0 cp --target-directory=new-dir
find some-dir -type f -name "*.txt" -print0 | xargs -I{} -0 cp -v {} /tmp/log-files
// 其中{}为参数列表标记,-0表示当文件名为空白行,那么当前的执行命令不起作用,-I表示用来替换初始参数。
tail -f -n 5 my_server_log
top -n1 -H | grep -m1 java
printf "%x" $PID
jstack $PID | grep -A500 $NID | grep -m1 "^$" -B 500
printf "%x\n" 4095
d2h(){echo "obase=16; $@"|bc}
printf "%d\n" 0xfff
h2d(){echo "ibase=16; $@"|bc}
find . -name "*.txt" -type f -print0 | while read -d $'\0' file; do cat "$file" >> merge.txt; done
find . -print0 | while read -d $'\0' file; do cp -v "$file" /tmp; done
find . -name "*.java" -print0 | xargs -0 grep -l "MapReduce"
// 当前目录下的所有文件查找
grep -RnsI --color=auto "MapReduce" *
mvn dependency:resolve
mvn -o dependency:list | grep ":.*:.*:.*" | cut -d] -f2- | sed 's/:[a-z]*$//g' | sort -u
// cut中的-f m-n 表示显示第m栏到第n栏
// sed 's/要替换的字符串/新的字符串/g'
// sort -u 删除重复行
find ./ -type l -ls
find / -type f -name *.tar.gz -size +10M -exec ls -l {} \;
echo src::${PATH} | awk 'BEGIN{pwd=ENVIRON["PWD"];RS=":";FS="\n"}!$1{$1=pwd}$1!~/^\//{$1=pwd"/"$1}{print $1}'
find -type -f -exec cp {} {}.bak \;
sed "s,\x1B\[[0-9;]*[a-zA-Z],,g"
sed -i 's/[ \t]\+$//g' file.txt
jstat -gcutil 6148 1s 10
jmap -dump:format=b,file=./dumpfile1 6148
jmap ‐histo 6148
diff -qr /dirA /dirB
grep -Fxv -f file1 file2
find . -print -exec chmod 777 {} \;
find . -type f -size 0 -delete
// 删除空目录
find . -type d -empty -delete
awk '!($0 in a) {a[$0];print}' file
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
mvn dependency:tree -Dverbose -Dincludes=com.alibaba:druid
tail -f file | while read; do echo -e "$(date +%T.%N) $REPLY"; done
// 将文件中的小写字母转化为大写字母
cat filename | tr [:lower:] [:upper:]
cat filename | tr a-z A-Z
// 将文件中的{}替换为()
tr '{}' '()' < oldfile > newfile
// 替换空格为\t
echo "This Is Example" | tr [:space:] '\t'
// 如果有多个空格,用-s选项压缩重复空格
echo "This Is Example" | tr -s [:space:] '\t'
// 删除指定字符,使用-d选项,如删除小写字母
echo "This Is Example" | tr -d a-z
cat old
1,2
3,4
5,6
$ cat new
A,B
C,D
E,F
H,I
$ paste old new
1,2 A,B
3,4 C,D
5,6 E,F
H,I
// 使用-d选项,作为分隔符
$ paste -d '---' old new
// 使用-s选项,每个文件合并为单一的一行
$ paste -d, -s old new
// Grep OR
grep 'Tech\|Sales' employee.txt
grep -E 'Tech|Sales' employee.txt
egrep 'Tech|Sales' employee.txt
grep -e Tech -e Sales employee.txt
// Grep AND
grep -E 'Dev.*Tech' employee.txt
grep -E 'Manager.*Sales|Sales.*Manager' employee.txt
// Grep NOT
grep -v Sales employee.txt
ctrl-r 搜索命令行历史记录
ctrl-w 删除键入的最后一个单词
ctrl-u 可以删除行内光标所在位置之前的内容
ctrl-k 可以删除光标至行尾的所有内容
alt-b 和 alt-f 可以以单词为单位移动光标
ctrl-a 可以将光标移至行首
ctrl-e 可以将光标移至行尾
// 执行历史上的一条命令,n为序号
$ !n
// 执行上一条命令
$ !!
$ !-1
// 使用关键字执行命令
$ !ps
ps -ef | grep http
// 替换前一条命令
$ ls /etc/cron.daily/logrotate
$ ^ls^cat^
cat /etc/cron.daily/logrotate
// 获取第一个参数(:^)
$ cp /etc/passwd /backup
$ ls -l !cp:^
ls -l /etc/passwd
$ ls -l !!:^
$ ls -l !^
// 获取最后参数(:$)
$ cp /etc/passwd /backup
$ ls -l !cp:$
ls -l /backup
$ls -l !!:$
$ls -l !$
// 获取第n个参数(:n)
$ tar cvfz /backup/home-dir-backup.tar.gz /home
$ ls -l !tar:2
ls -l /backup/home-dir-backup.tar.gz
// 获取所有参数(!*)
$ cp /etc/passwd /backup
$ ls -l !cp:*
ls -l /etc/passwd /backup
$ ls -l !*
// 获取部分参数(x-y)
$ tar cvf home-dir.tar john jason ramesh rita
$ ls -l !tar:3-5
ls -l john jason ramesh
$ ls -l !tar:2-$
// 去掉路径名称的尾部(:h)
$ ls -l /very/long/path/name/file-name.txt
$ ls -l !!:$:h
ls -l /very/long/path/name
// 去掉路径名称的头部(:t)
$ ls -l /very/long/path/name/file-name.txt
$ ls -l !!:$:t
ls -l file-name.txt
// 替换命令行的内容(:s)
$ cp /etc/password /backup/password.bak
$ !!:gs/password/passwd/
cp /etc/passwd /backup/passwd.bak
// 打印命令不执行(:p)
$ tar cvf home-dir.tar john jason ramesh rita
$ tar cvfz new-file.tar !tar:3-:p
tar cvfz new-file.tar john jason ramesh
$ find . -name "*sh*"
// 合并为一行
$ find . -name "*bash*" | xargs
$ ls -1 *.sh | xargs
$ find . -name "*.sh" | xargs grep "ksh"
// 删除临时文件 -0 处理文件名中的空格
$ find /tmp -name "*.tmp" -print0 | xargs -0 rm
// 统计多个文件的行数
$ ls -1 *.sh | xargs wc -l
// 批量重命名
$ ls | xargs -t -I {} mv {} {}.old
grep -Fx -f file1 file2
for i in `find . -name "*.java"`; do iconv -f gbk -t utf-8 $i > $i.new; done
find . -name "*.new" | sed 's/\(.*\).new$/mv "&" "\1"/' | sh
ps -ef|grep "keyword"|grep -v grep|cut -c 9-15|xargs kill -9
ps aux|grep "keyword"|grep -v grep |awk '{print $2}'|xargs kill -9
pgrep "keyword" | xargs kill -9
pkill "keyword"
//创建目录,包括中间目录
mkdir -p long/directory/path
//创建目录,并进入
mkdir dir && cd $_
// 进入一个目录执行命令,并返回当前目录
(cd /tmp && ls)
echo $PATH | tr ':' '\n'
tr ':' '\n' <<< $PATH
split -dl 200 --additional-suffix=.txt words wrd