文件操作相关
touch file_name
ls 或 ll
获取文件内容
cat file_name
tac file_name
head -N file_name = head -n +N file_name = head -n N file_name
head -n -N file_name, 如获取到倒数第5行: head -n -5 file
tail -N file_name = tail -n [-]N file_name,如获取最后5行:tail -5 file = tail -n 5 file = tail -n -5 file
tail -n +N file_name
sed -n '2,5p' file_name
sed -n '2,5p;7,9p;15p' file_name
复制、移动、删除
cp [-arfd] file targetDir
mv file targetDir
mv file1 file2
rm [-r -f -i] file_name
rm -rf *
rm -rf .*
rm -rf dir/
chmod num file
所有者(u) = rwx = 4+2+1 = 7
所属组(g) = rw- = 4+2 = 6
其他人(o) = r-x = 4+1 = 5
搜索文件
find path -name "msg"
find path -iname "msg"
grep -0 'key_words' < file.log | wc -l
grep -E "words1|words2|words3" -rn path
grep "words" -rn --include "*.txt" path
文件夹操作
mkdir [-p] dir_name
rmdir [-p] dir
ls [-a -l -F]
ls -l / ll
pwd
cd path
cd ..
cd /
cd [~]
cd -
字符串操作
${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。
${string#*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%chars*} 从右往左,截取 第一次出现char*右边的字符,保留左边的所有字符。
${string%%chars*} 从右往左,截取 最后一次出现char*右边的所有字符,保留左边的字符。
name="this is"" my name"; name="this is my name"; name="this" is "my name" 等效
name='this is'' my nam'; name='this is my name'; name='this' is 'my name' 等效
# 获取字符串长度
${#string}
# 字符串判空 a='str'
-z :检测字符串长度是否为0,为0返回true。 [ -z $a ] 返回 false。
-n :检测字符串长度是否为0,不为0返回true。 [ -n "$a" ] 返回 true。
$ :检测字符串是否为空,不为空返回true。 [ $a ] 返回 true。
控制台
echo $SHELL
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 紅色字 \033[0m"
echo -e "\033[32m 綠色字 \033[0m"
echo -e "\033[33m 黃色字 \033[0m"
echo -e "\033[34m 藍色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天藍字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
sh/bash file_name.sh
clear
Ctrl + c
系统相关
df -h
ssh-keygen
cat ~/.ssh/id_rsa.pub
ping < ip / url >
ipconfig
du -h --max-depth=1
du -sh *
sudo mount Z: /mnt/z -t drvfs