/bin :二进制,为所有用户使用
/sbin :二进制,为管理员使用
/boot:内核,bootloader的存放位置
/dev:设备文件
/etc:配置文件
/lib :共享库和内核模块
/media, /mnt:挂载点
/opt:可选的软件安装路径
/srv:服务运行的中间数据
/var :经常变化的目录(vary)
lost+found :每个系统分区都有,突然断电而不知道文件存放位置,暂存在lost+found
misc :杂项,备用
/proc:内核信息
/sys:内核信息,跟硬件设备相关
文件管理类命令:
mkdir -p(p为父类)
mkdir -p /mnt/mn/b
mkdir -v 显示创建过程,mkdir -pv /nmt/a/b 先创建a,再创建b
{}花括号表示展开 ,mkdir /tmp/{p,q} =mkdir /tmp/p 加上 mkdir /tmp/q 两个目录
mkdir /tmp/(p,q)/a/b -pv 表示创建 /tmp/p/a /tmp/p/b , /tmp/q/a, /tmp/q/b,四个目录
复制: cp -r 递归复制目录
cp -r /etc/ /tmp
cp -p 保留文件原有的属主,权限,时间戳
cp -a 相当于 -d,-r,-p 叠加使用
tree 查看目录
tree /root
rm -r 递归删除目录 ,会弹出确认提示
rm -rf 强制删除目录,不会弹出确认提示
touch 改变时间戳
touch -m 改变内容时间
touch -a 改变访问时间
touch -c,如果文件不存在,不创建新文件
file FILE 查看文件类型
tail -f test 一直显示尾部输出内容
cut -d: -f1 /etc/passwd 显示/etc/passwd 第一行, -d表示已冒号作为分隔符,-f1表示显示1行 ; -f1,2 表示同时显示第1和第2两行;-f1-5 表示同时显示第1行到第5行;
tr 'a-z' 'A-Z' < mytest.txt ,tr 替换命令,把所有小写字母替换成大写字母
tr -d 'a' < mytest.txt 删除mytest.txt中的a字母
wc: word counter 文本统计命令
-l: 行数
-w: 单词数
-c: 字符数
sort -n mytest.txt 按文本大小排序
sort -n -t ' ' -k3 mytest.txt -t ' ' 表示以空格作为分隔符,对第三段进行排序
命令行编辑:
Ctrl+a 快速跳到行首
Ctrl+e 快速跳到行尾
Ctrl+← 左箭头, 快速跳到上一个单词
Ctrl+u 快速删除光标到行首
Ctrl+k 快速删除光标到行尾
VIM快速复制上一条命令参数:
按下Esc,然后松开,再按点 .
Alt+.
less !$
history命令:
history -c 清空历史记录命令
history -w 清空历史记录命令,并且保存缓存中的历史记录命令到硬盘
history -a 追加保存缓存中的历史记录命令到硬盘
history -d 16 删除第16条历史记录命令
history -d 16 3 删除从16条开始的命令,删除3条
export HISTCONTROL = ignorespace ,以空白字符开头的命令不记录到历史记录中
export HISTCONTROL = ignoredups , 重复执行的命令只记录一次
export HISTCONTROL = ignoreboth , 表示既忽略以空白字符开头的命令,重复执行的命令只记录一次
文件名通配符:
*: 任意长度 ls a*b ,列出以a开头,b结尾,中间任意字符
?: 单字符 ls a?b ,列出以a开头,b结尾,中间一个任意字符的单词
[[:alpha:]] = [a-zA-Z]
[[:digit:]] = [0-9]
[[:lower:]] = [a-z]
[[:upper:]] = [A-Z]
[[:alnum:]] = [a-zA-Z0-9]
[[:punct:]] = 所有标点符号
[^a-z] = [^[:lower:]] 取反,除a-z之外的字符
shell:
declare AGE:
-i : 声明为整型
-a : 声明为数组
-r : 声明变量为只读
declare -i AGE=23
撤销变量: unset VARNAME
VAR1=${VAR1-word} ,如果VAR1有值,则使用原来的值,如果 没有,则用VAR1的值为word,示例:age=${age-10}
环境变量: 作用范围是当前shell及其子shell
export VARNAME=value
declare -x VARNAME=value
================================================================================================
命令替换:
反引号 : echo "Today is `date +%F`"
$( ) : echo "Today is $(d ate+%F) "
bash:
全局: /etc/profile, /etc/profile.d/* , /etc/bshrc
个人: ~/.bash_profile , ~/.bashrc
bash的运行方式:
交互式: /etc/profile --→ /etc/profile.d/* → ~/.bash_profile → ~/.bashrc → /etc/bashrc
非交互式: ~/.bashrc → /etc/bashrc → /etc/profile.d/*
profile类:
设定环境变量
运行命令或脚本
bashrc类:
设定本地变量
设定命令别名
vim窗口拆分:
Ctrl + w , s: 水平拆分
Ctrl + w , v: 垂直拆分
拆分后鼠标切换:Ctrl + w , 上箭头
vim打开多个文件: vim FILE1 FILE2
vim打开多个文件,水平分窗口显示: vim -o FILE1 FILE2
vim打开多个文件,垂直分窗口显示: vim -O FILE1 FILE2
在末行模式,
:next 切换到后一个文件
:prev 切换到前一个文件
:first 切换到第一个文件
:last 切换到最后一个文件
:qall 退出所有窗口