type
status
date
slug
summary
tags
category
icon
password
这里写文章的前言:
一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
1.基础指令操作
.
:代表此层目录,注意加cd跳转
..
:代表上一层目录
-
:代表前一个工作目录
~
:代表【目前用户身份】所在的家目录
~account
:代表account这个用户的家目录(account是账号名称)
-
alias
:显示命令别名,如很多系统中vi=vim alias name1='command'
:如 alias lm=‘ls -al | more’unalias name1
:取消别名
bc
:简单好用的计算器
-
cal
:显示日历 cal [month] [year]
:显示指定年月的日历
date
:显示日期与时间
chmod [-R] 777 文件或目录
:改变文件权限 777表示所有者/群组/其他分别对应的rwx权限
cp [-R] 来源文件 目标文件
:复制文件 -R 表示递归持续变更
Ctrl+c
:中断当前程序
Ctrl+d
:键盘输入结束,相当于exit
declare
:定义变量的类型
-
df
: 列出文件系统的整体磁盘使用量 (displays information about file system disk space usage on the mounted file system) df [-ahikHTm] [目录或文件名]
a
:列出所有的文件系统,包括系统特有的 /proc 等文件系统k
:以KBytes的容量显示各文件系统m
:以MBytes的容量显示各文件系统h
:以人们较易阅读的 GB、MB、KB 等格式自行显示H
:以 M = 1000K 取代 M = 1024K 的进位方式T
:连同该partition的filesystem名称例如(xfs)也列出i
:不用磁盘容量,而以 inode 的数量来显示df
:将系统内所有的 filesystem 列出来df -h
:将容量结果以易读的容量格式显示出来df -h /etc
:将 /etc 底下的可用的磁盘容量以易读的容量格式显示
-
du
(provides information about the disk usage) du [-ahskm] 文件或目录名称
a
:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已h
:以人们较易读的容量格式(G/M/K)显示(human-readable)s
:列出总量而已,而不列出每个目录占用容量(summary)S
:不包括子目录下的总计,与 -s 有点差别k
:以 KBytes 列出容量显示m
:以MBytes列出容量显示du -sh *
:查看当前路径下各文件/子文件夹磁盘使用情况
env/export
:列出目前的shell环境下的所有环境变量与其内容
export 变量名
:自定义变量转成环境变量
-
EOF
:(END Of File)缩写,表示自定义终止符。在linux按ctrl+d就代表EOF
groupadd gname
:增加新的群组
-
history
:历史命令 history [n]
history [-c]
history [-raw] histfiles
n
:数字,意思是【要列出最近的n笔命令行表】c
:将目前的shell中的所有history内容全部消除a
:将目前新增的 history 指令新增入 histfiles 中,若没有加hisfiles,则默认写入~/.bash_history
r
:将 histfiles 的内容读到目前这个 shell 的 history 记忆中w
:将目前的 history 记忆内容写入 histfiles 中history 3
:列出目前最近的3条命令
id uname
:查阅uname账号的属性
-
ln
:为某一个文件在另一个目录建立一个同步的链接,不会重复占用磁盘空间 ln [参数] [源文件或目录] [目标文件或目录]
- 软链接(symbolic link):
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 软链接可以 跨文件系统,硬链接不行
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
- 硬链接(hard link):
- 硬链接,以文件副本的形式存在。但不占用实际空间
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
- 不论是硬链接还是软链接都不会将原来的档案复制一份,只会占用非常少量的磁盘空间
- 必要参数:
b
:删除,不该以前建立的链接d
:允许超级用户制作目录的硬链接f
:强制执行i
:交互模式,文件存在则提示用户是否覆盖n
:把符号链接视为一般目录s
:软链接(符号链接)v
:显示详细的处理过程- 选择参数
S
S <字尾备份字符串>
或-suffix=<字尾备份字符串>
V
V <备份方式>
或-version-control=<备份方式>
-help
:显示帮助信息-version
:显示版本信息ln log2013.log ln2013
:为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同ln -s log2013.log link2013
:为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效
-
ls
:文件与目录的检视
-
lsattr [-adR] 文件或目录
:显示文件隐藏属性 a
:将隐藏文件的属性也秀出来d
:如果接的是目录,仅列出目录本身的属性而非目录内的文件名R
:连同子目录的数据也一并列出来
touch 文件名
:建立空文件
rm [-fir] 文件或目录
:删除谬或文件f
:就是force的意思,忽略不存在的文件,不回出现警告讯息i
:互动模式,在删除前会询问使用者是否确认r
:递归删除,整目录删除
rmdir [-p] 目录名称
:删除目录(注意rmdir只能删除空的目录),-p 表示连同上层空目录级联删除
-
mkdir [-mp] 目录名称
:创建目录 m
:配置文件权限,例:mkdir -m 755 test
p
:将所需要的目录(包含上级目录)递归建立
-
mv [-fiu] source destination
:移动文件与目录,或更名 f
:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖i
:若目标文件已经存在,会询问是否覆盖u
:若目标文件已存在,且source比较新,才会更新(update)
ps -aux
:查看后台执行程序
pwd -P
:显示目前所在的目录 -P 显示出确实的路径,而非使用链接(link)路径
reboot、halt、poweroff
:重启
shutdown
:关机
shutdown -h now
:立刻关机
shutdown -h 20:25
:系统在今天的20:25关机,如果当前时间大于20:25隔天关机
shutdown -h +10
:系统再过十分钟自动关机
shutdown -r now
:系统立刻重新启
shutdown -r +30 'The system will reboot'
:再过30分钟系统会重新启动,并显示后面的讯息给所有在线的使用者
shutdown -k now 'This system will reboot'
:仅发出警告信件的参数!系统并不会关机
set
:查看所有变量(含环境变量和自定义变量),env升级版
shift+up
:向前翻页
shift+down
:向后翻页
useradd -G gname uname
:建立uname账号,属于gname分组
find [PATH] [option] [action]
:在指定路径下检索文件find /home -user user1
:搜寻 /home 底下属于 user1 的文件find / -name passwd
:找出名为 passwd 这个文件find / -name "*passwd*"
:模糊匹配find /dir1 /dir2 -name "*passwd*"
:可以指定多个路径find . -name "*passwd*" -exec ls -l {} \;
:模糊匹配后输出相应信息exec command
:command为其他指令,-exec 后面可再接其他指令处理匹配到的结果{}
:代表 【由find找到的内容】,find的结果会放到 {} 中- exec 一直到 ; 是关键词,代表find额外动作的开始到结束,中间就是额外指令 ,这里是
ls -l {}
- 因为
;
在bash环境下是有特殊意义的,因此利用反斜杠来跳脱 find / -size +1M
:找出系统中,大于 1MB 的文件
-
whereis [-bmsu] 文件或目录名
:在一些特定的目录中寻找文件名 l
:可以列出whereis会去查询的几个主要目录b
:只找 binary 格式的文件m
:只找在说明文件 manual 路径下的文件s
:只找 source 来源文件u
:搜寻不在上述三个项目当中的其他特殊文件- whereis 只找几个特定目录,因此速度比 find 快
man [命令]
:查看命令帮助文档
info [命令]
:查看指令详细内容
- 一般看信息都用查看man文档,而help只是一个简单的描述,方便,但man文档中都包含了
2.文件内容查阅
cat
:由第一行开始显示文件内容
more
:一页一页的显示文件内容- 空格键(space):代表向下翻一页
- Enter:代表向下翻一行
- /字符串:代表在这个显示的内容当中,向下搜寻【字符串】这个关键词
:f
:立刻显示出文件名以及目前显示的行数q
:代表立刻离开 more,不再显示该文件内容b
或ctrl + b
:代表往回翻页,不过这动作只对文件有用,对管线无用
less
:与more类似,但是比more更好的是它可以向前翻页- 空格键:向下翻动一页
- [pagedown] :向下翻动一页
- [pageup] :向上翻动一页
- /字符串 :向下搜寻【字符串】的功能
- ?字符串 :向上搜寻【字符串】的功能
- n :重复前一个搜寻(与 / 或 ?搭配用)
- N :反向的重复前一个搜寻(与 / 或 ?搭配用)
- g :前进到这个资料的第一行
- G :前进到这个数据的最后一行去
- q :离开less这个程序
head [-n number] 文件
:只看头几行n
:后面接数字,代表显示几行的意思
tail [-n number] 文件
:只看尾巴几行n
:后面接数字,代表显示几行的意思tail -n +100 文件
:列出文件100行以后的数据tail -f 文件
:持续侦测文件内容
3.vim
vim共分为三种模式
- 一般指令模式(command mode):vi打开文件就是这个模式
- 编辑模式(insert mode):按下【i,I,o,O,a,A,r,R】等任何一个字母之后才会进入编辑模式,ESC退出回到一般模式
- 指令行命令模式(command-line mode):一般模式时输入【: / ?】三个中的任何一个按钮进入
简单执行范例:
- 使用
vi filename
进入一般指令模式
- 按下 i 进入编辑模式,开始编辑文字
- 按下 ESC 按钮回到一般指令模式
- 按下 : 进入指令行模式,wq 文件保存并离开 vi 环境
一般指令模式常用指令:
- 移动光标的方法
- 小键盘上下左右…
- ctrl + f :屏幕向下移动一页
- ctrl + b :屏幕向上移动一页
- ctrl + d :屏幕向下移动半页
- ctrl + u :屏幕向上移动半页
n<space>
:n表示数字,例如20,按下数字后再按下空格,光标会向右移动这一行的20个字符- 0 或 功能键Home :移动到这一行的最前面字符处
- $ 或 功能键End :移动到这一行的最后面字符处
- gg :移动到这个文件第一行
- G :移动到这个文件的最后一行
- nG :n为数字。移动到这个文件的第n行
n<Enter>
:n 为数字。光标向下移动 n 行
- 搜寻与取代
/word
:向光标之下寻找一个名称为word的字符串?word
: 向光标之上寻找一个名称为word的字符串- n :代表【重复前一个搜寻动作】,如继续查找
- N :与 n 相反,为【反向进行前一个搜寻动作】
- 使用 /word 配合 n 及 N 是非常有帮助的,可以让你重复的找到一些你搜寻的关键词
:n1,n2s/word1/word2/g
:n1 与 n2 位数字,在 n1 与 n2 行之间寻找word1这个字符串,并将该字符串取代为word2:1,$s/word1/word2/g
:从第一行到最后一行寻找word1字符串,并将该字符串取代为word2:1,$s/word1/word2/gc
:从第一行到最后一行寻找word1字符串,并将该字符串取代为word2,且在取代前显示提示字符给用户确认是否需要取代
- 删除、复制与贴上
x, X
:在一行字当中,x为向后删除一个字符(相当于【del】),X为向前删除一个字符(相当于【backspace】)nx
:连续向后删除n个字符dd
:删除游标所在的那一整行ndd
:删除光标所在的向下n行d1G
:删除光标所在到第一行的所有数据dG
:删除光标所在到最后一行的所有数据yy
:复制游标所在的那一行p, P
:p为将已复制的数据在光标下一行贴上,P则为贴在游标上一行u
:复原前一个动作(撤销)ctrl + r
:重做上一个动作(回退).
:重复前一个动作
指令列模式常用指令:
- 储存、离开等指令
:w
:将编辑的数据写入硬盘文件中:w!
:若文件属性为【只读】时,强制写入该文件。是否成功与该文件的文件权限有关:q
:离开vi:q!
:若曾修改过文件,又不想储存,使用!为强制离开而不储存文件:wq
:储存后离开,若为:wq!
则为强制储存后离开ZZ
:大写的Z,若文件没有更动,则不储存离开,若文件已经被更动过,则储存后离开:w [filename]
:将编辑的数据储存成另一个文件(类似另存档)
- vim 环境的变更
:set nu
:显示行号,设定之后,会在每一列的前缀显示该列的行号:set nonu
:与 set nu 相反,取消行号
grep
:分析一行讯息,若当中有我们所需要的信息,就将该行拿出来grep [-acinv] [--color=auto] '搜寻字符串' filename
a
:将binary 文件以 text 文件的方式搜寻数据c
:计算找到 ‘搜索字符串’ 的次数i
:忽略大小写的不同,所以大小写视为相同n
:顺便输出行号v
:反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行-color=auto
:可以将找到的关键词部分加上颜色的显示
history | grep "test"
:取出历史命令中带test的记录
history | grep -v "test"
:取出历史命令中不带test的记录
history | grep "test" | cut -d ' ' -f 5
:取出历史命令中带test的记录以’ '切分取第五列