/ : 所有目录都在这里
/boot : boot 配置文件、内核和其它启动时所需的文件
/etc : 存放系统配置有关的文件
/home : 存放普通用户目录
/mnt : 硬盘上手动挂载的文件系统
/media : 自动挂载(加载)的硬盘分区以及类似CD、数码相机等可移动介质。
/opt : 存放一些可选程序,如某个程序测试版本,安装到该目录的程序的所有数据,库文件都存在同个目录下
/root : 系统管理员的目录,对于系统来说,系统管理员好比上帝,他可以对系统做任何操作,比如删除你的文件,一般情况下不要使用root用户。
/bin : 存放常用的程序文件(命令文件)。
/sbin : 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp : 临时目录,存放临时文件,系统会定期清理该目录下的文件。
/usr : 在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。
可以自动下载、配置、安装软件包;
Debian及衍生版中都包含了apt , RedHat系列的linux的则使用yum来进行管理,其中Fedora22中Centos7中开始使用dnf 来替代yum。
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package –reinstall 重新安装包
sudo apt-get -f install 强制安装
sudo apt-get remove package 删除包
sudo apt-get remove package –purge 删除包,包括删除配置文件等
sudo apt-get autoremove 自动删除不需要的包
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 了解某个具体的依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理下载文件的存档
sudo apt-get check 检查是否有损坏的依赖
\# %Y year
\# %m month (01 , ... , 12)
\# %d day of month (e.g., 01)
\# %H hour (00..23)
\# %I hour (01..12)
\# %M minute (00..59)
\# %S second (00..60)
date +"%Y%m%d %H%M%S"
20160824 223856
date +"%Y-%m-%d %H:%M:%S"
2016-08-24 22:39:07
date //显示当前日期
date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20061010 //设置成20061010,这样会把具体时间设置成空00:00:00
date -s 12:23:23 //设置具体时间,不会对日期做更改
date -s “12:12:23 2006-10-10″ //这样可以设置全部时间
注意: 重新设置时间后需要将时间同步到硬件时钟。方式如下:
hwclock -w
cd # 回到当前用户的家目录
cd /etc # 切换到/etc目录
cd - # 切换到上一次的目录
格式: mkdir 目录名
mkdir my_dir
mkdir a/b/c/d #递归创建目录,用于同时创建多级目录
man man # 查看man命令的手册
man cd
man pwd
man 5 passwd
man -k passwd # 模糊查找
man -f passwd # 精确查找
touch : 改变文件或目录的时间,文件不存在时会创建一个空文件。
touch file1 # file1 不存在时被创建
rm : 删除命令
rm -f file1 # 强制删除文件
rm -r a/b/file1 # 删除指定目录及其下的所有文件和目录
rm -rf a/b/file1 # 强制删除指定目录及其下的所有文件和目录
rm 命令太危险,不建议使用
mv SOURCE DEST
mv test.log test.txt # 文件改名
mv test1.txt dir1/ # 移动文件
mv test1.txt test2.tx test3.tx dir1/ #移动多个文件
cp SOURCE DEST # 复制文件
cp -i SOURCE DEST # 如果遇到需要覆盖的情况,则提示
cp -r dir1 dir2 # 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名
cp -p file1 file2 # 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
cp -rp dir1 dir2
stat filename # 查看filename的相关信息
cat file1 # 显示 file1的文件内容
cat file1 file2 # 显示file1和file2的文件内容
cat -n file1 # 由1开始对所有输出的行数编号
cat -s file # 当遇到连续2行以上的空白行,只保留一行空白行
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-n :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,默认是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思
选项与参数:
-d : 后面接分隔字符。与 -f 一起使用;
-f : 依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c : 以字符 (characters) 的单位取出固定字符区间;
cat sec.log | tee file1 # 读取sec.log ,并生成file1文件
cat sec.log | tee - a file1 # 读取sec.log ,并追加,
cat sec.log |tee file1 file2
history # 显示最近1000条历史命令
history 5 # 显示最后5条命令
!number # number为history之后命令前的序号:执行该条命令
!cat # 执行最后一条以cat开头的命令
head -n 5 file
which ls
格式:ls [选项] [目录名]
-a 用于显示所有文件和子目录(包括点文件)。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-r 将目录的内容清单以英文字母顺序的逆序显示。
-t 按文件修改时间进行排序,而不是按文件名进行排序。
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-F 在列出的文件名和目录名后添加标志。例如,在可执行文件后添加“*”,在目录名后添加“/”以区分不同的类型。
-R 如果目标目录及其子目录中有文件,就列出所有的文件。
. 和..
. 表示当前目录
.. 表示父目录
ls # 列出当前目录下的文件和目录
ls . # 列出当前目录下的文件和目录
ls .. # 列出当前目录的父目录下的文件和目录
ls /etc # 列出/etc目录下的文件和目录
ls -l # 以长格式显示文件信息
su : 切换用户,没有参数时,默认切换为root用户;
sudo : 让当前用户暂时以管理员的身份root来执行命令。
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# 如果需要别名永久生效,需要保存到 .bashrc 文件
初识正则表达式
^ : 匹配开头
$ : 匹配结尾
[] : 范围匹配
[a-z] : 匹配有小写字母
[A-Z] : 匹配所有大写字母
[0-9] : 匹配所有数字
cat a.txt |grep hat$ # 匹配以hat结尾的行
cat a.txt |grep ^hat # 匹配以hat开头的行
cat a.txt | grep -E "[0-9]*" # 匹配有0到多个数字的行
cat a.txt | grep -E "[0-9]+" # 匹配有至少有1个数字的行
cat a.txt | grep -E "[0-9]?" # 匹配有0到1个数字的行
vi filename : 打开或新建文件,并将光标置于第一行首
vi +n filename : 打开文件,并将光标置于第n行首
vi + filename : 打开文件,并将光标置于最后一行首
vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的字符串处
vi -r filename : 在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
Ctrl + u: 向文件首翻半屏
Ctrl + d: 向文件尾翻半屏
Ctrl + f: 向文件尾翻一屏
Ctrl + b: 向文件首翻一屏
nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
ndw 或 ndW: 删除光标处开始及其后的n-1个字
do: 删至行首
d: 删至行尾
ndd: 删除当前行及其后n−1行
x 或 X: 删除一个字符,x删除光标后的,而X删除光标前的
Ctrl + u: 删除输入方式下所输入的文本搜索及替换命令
:w : 保存当前文件
:e filename: 打开文件filename进行编辑
:x: 保存当前文件并退出
:q: 退出vi
:q!: 不保存文件并退出vi
i 在当前字符前插入文本
I 在行首插入文本
a 在当前字符后添加文本
A 在行末添加文本
o 在当前行后面插入一空行
O 在当前行前面插入一空行
R 以改写方式输入文本
j或下箭头 向下移动一行
k或上箭头 向上移动一行
h或左箭头 左移一个字符
l或右箭头 右移一个字符
w 右移一个词
W 右移一个以空格分隔的词
b 左移一个词
B 左移一个以空格分隔的词
0 移到行首
Ctrl-F 向前翻页
Ctrl-B 向后翻页
nG 到第n行
G 到最后一行
$ 到行尾
( 到句子的开头
) 到句子的末尾
{ 到段落的开头
} 到段落的末尾
r 替换一个字符
c 修改文本直到按下Esc健
cw 修改下一个词
cnw 修改接下来的n个词
yy 将一行文本移到缺省缓冲区中
yn 将下一个词移到缺省缓冲区中
ynw 将后面的n个词移到缺省缓冲区中
p(小写) 如果缺省缓冲区中包含一行文本,则在当前行后面插入一个空行并将缺省缓冲区中的内容粘贴到这一行中;如果缺省缓冲区中包含多个词,把这些词粘贴到光标的右边。
P(大写) 如果缺省缓冲区中包含一行文本,则在当前行前面插入一个空行井将缺省缓冲区中的内容粘贴到这一行中;如果缺省缓冲区中包含多个词,把这些词粘贴到光标的左边。
zz 保存并退出
:w filename 写入文件
:W 写入文件
:x 保存(如果当前文件修改过)并退出
:q! 不保存文件,直接退出
:q 退出vi
直接进入编辑环境
$ vi
进入编辑环境并打开(新建)文件
$ vi myfile
退出vi编辑环境
输入末行命令放弃对文件的修改,并退出编辑器
:q!
保存文件
保存对vi编辑器中已打开文件的修改
:w
另存为文件
将vi编辑器中的内容另存为指定文件名
:w myfile
退出vi编辑器的多种方法
未修改退出
没有对vi编辑器中打开的文件进行修改,或已对修改进行了保存,直接退出vi编辑器
:q
对vi编辑器中的文件进行保存并退出vi编辑器
:wq
不保存退出
放弃对文件内容的修改,并退出vi编辑器
:q!
方向键 进行上下左右方向的光标移动
Home 快速定位光标到行首
End 快速定位光标到行尾
PageUp 进行文本的向上翻页
PageDown 进行文本的向下翻页
Backspace 删除光标左侧的字符
Del 删除光标位置的字符
x 删除光标处的单个字符
dd 删除光标所在行
dw 删除当前字符到单词尾(包括空格)的所有字符
de 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符
d$ 删除当前字符到行尾的所有字符
d^ 删除当前字符到行首的所有字符
J 删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容
u 取消最近一次的操作,并恢复操作结果(可以多次使用u命令恢复已进行的多步操作 )
U 取消对当前行进行的所有操作
Ctrl + r 对使用u命令撤销的操作进行恢复
yy 复制当前行整行的内容到vi缓冲区
yw 复制当前光标到单词尾字符的内容到vi缓冲区
y$ 复制当前光标到行尾的内容到vi缓冲区
y^ 复制当前光标到行首的内容到vi缓冲区
p 读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)
/word 从上而下在文件中查找字符串“word”
?word 从下而上在文件中查找字符串“word”
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串
ctrl-a : 把光标移动到命令行最开始的地方。
ctrl-e : 把光标移动到命令行末尾。
ctrl-u : 清除命令行中光标所处位置之前的所有字符。
ctrl-k : 清除从提示符所在位置到行末尾之间的字符
ctrl-w : 清除左边的字段
ctrl-y : 将会贴上被ctrl-u 或者 ctrl-k 或者 ctrl-w清除的部分。
ctrl-r : 将自动在命令历史缓存中增量搜索后面入的字符。
tab : 命令行自动补全-自动补全当前的命令行。如果启用自动补全脚本命令参数和选项也可以自动补齐。
ctrl-l : 清屏