linux基本命令
2017-04-28
linux环境变量
我们之所以能再终端中输入各种指令而不会提示“命令未找到”,就是因为你所用命令的可执行文件 在环境变量-PATH中,PATH定义的目录中保存有很多可执行文件,我们只需要将可执行文件复制到PATH 中,就可以利用这个命令了。
zhangqis-Mac-mini:MaxwellQi.github.io qizhang$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/rvm/bin
文件操作
文件信息
首先使用ls -al
命令列出当前目录下的文件信息:
*文件类型:-
表示常规文件;d
表示目录;c
表示字符设备文件;b
表示块设备文件;s
表示管道文件;l
表示连接文件。
以下几个命令要首先记住:
- :代表前一个工作目录
rmdir :删除一个空目录
mkdir 建立新目录
创建目录时,创建者必须对当前目录有写的权限。
选项与参数:
-m :配置文件权限,直接设定
-p :帮助你直接将所需要的目录(包含上层目录)递归建立起来!
范例:创建一个多级目录
mkdir -p test1/test2/test3/test4 # -p选项,就是帮你自行建立多层目录
范例:建立选项为 rwx--x--x的目录
mkdir -m 711 test2
rmdir 删除空的目录
选项与参数:
-p :连同上层[空]目录页一起删除
cp命令
cp dir1 dir2 复制文件或目录dir1到dir2中
功能:复制文件或目录,创建连接文件(快捷方式),对比文件的新旧进行更新。
-r 用于复制目录但是有时候会丢失权限
-f 强行赋值文件或目录,不论目标文件或目录是否已存在
-a 用于赋值=备份
rm 移除文件或目录
rm [-fir] 文件或目录
-f : force 忽略不存在的文件,不会出现警告信息
-i : 互动模式,在删除前会询问用户是否操作
-r : 递归删除,用于目录的删除
mv 移动文件和目录或更名
mv [-fiu] source destination
mv [options] source1,source2,source3... directory
取得路径的文件名与目录名
zhangqis-Mac-mini:qi qizhang$ basename test1/test2/test3/test4/note.txt
note.txt <== 最后的档名
zhangqis-Mac-mini:qi qizhang$ dirname test1/test2/test3/test4/note.txt
test1/test2/test3/test4 <== 取得的目录名
more 可翻页查看
如果使用ls
命令查看其内容,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
ls -al | more
space 向下翻一页
Enter 向下滚动一行
/str 向下查询str这个关键字
:f 立刻显示文件名及目前显示的行数
q 代表立刻离开more,不再显示该文件内容
b或[ctrl]-b 代表往回翻,只对文件用用,对管道无用
grep 指定文件中搜索指定字符
grep
指定文件中搜索指定字符内容。
zhangqis-Mac-mini:linux_workImage qizhang$ grep -n hello test.txt
3:hello sdf
常见参数以及含义:
-v 显示不包含匹配文本的所有行
-n 显示匹配行及行号
find 查找文件命令
find
命令用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
zhangqis-Mac-mini:linux_workImage qizhang$ find /usr/include -name stdio.h
/usr/include/c++/4.2.1/tr1/stdio.h
/usr/include/stdio.h
/usr/include/sys/stdio.h
zhangqis-Mac-mini:linux_workImage qizhang$
脚本文件名的查询
which [-a] command
which 默认查找PATH内所规范的目录
比如:which ifconfig , which which
文件名的查找
wheres [-bmsu] 文件名或目录名
-b 只找二进制格式的文件
-m 只找在说明文件manual路径下的文件
-s 只找soune源文件
-u 查找不再上述三个选项中的其它特殊文件
whereis 与locate是利用数据库来查找数据,所以相当快速,而且并没有事迹查询硬盘,较节省
时间。find不常用。
文档内容查阅
下面几个命令是查看文档内容的命令:
- cat 由第一行开始显示档案内容
- tac 从最后一行开始显示,可以看出
tac
和cat
是倒着的 - nl 显示的时候,顺道输出行号
- more 一页一页的显示档案内容
- less 与more类似,但是比more更好的是,它可以往前翻页
- head 只看头几行
- tail 只看尾巴几行
- od 以二进制的方式读取档案内容
cat 直接检查档案内容
选项与参数
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号
-E :将结尾的断行字符 $ 显示出来
-n :打印出行号,连同空白行也会有行号,与 -b 的选项不同
-T :将[tab]按键以 ^I 显示出来
-v :列出一些看不出来的特殊字符
范例:输出 note.txt 的内容,并显示行号
cat -n note.txt
范例: 将 note.txt 的内容完整的显示出来(包含特殊字符)
cat -A note.txt
touch 修改档案时间或建置新档
每个档案在linux底下都会记录许多时间参数,其实是有三个主要的变动时间,那么这三个时间分别是:
- modification time(mtime) : 该档案的[内容数据]变更是,就会更新这个时间。内容数据指的是档案的内容
- status time(ctime) : 当该档案的[状态(status)]改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间
-
access time(atime) : 当[该档案的内容被取用]时,就会更新这个读取时间(access)。举例来说,我们使用cat去读取 /etc/man.config ,就会更新该档案的atime了。
touch [-acdmt] 档案 选项与参数: -a :仅修订 access time -c :仅修改档案的时间,若该档案不存在则不建立新档案 -d :后面可以接欲修订的日期而不用目前的日期,也可以使用 –date=’日期或时间’ -m :修改 mtime -t :后面可以接欲修订的时间而不用目前时间,格式为[YYMMDDhhmm]
vim的使用
vim分为三种模式:一般模式、编辑模式、命令模式。
- 一般模式:在这个模式下,你可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
- 编辑模式:从一般模式进入编辑模式,只需你按一个键即可(i,I,a,A,o,O,r,R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
- 命令模式:在一般模式下,输入”:”或者”/”即可进入命令模式。在该模式下,你可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等等。
一般模式下移动光标
h或向左方向键 : 光标向左移动一个字符
j或向下方向键 :光标向下移动一个字符
k或向上方向键 :光标向上移动一个字符
I或向右方向键 :光标向右移动一个字符
Ctrl+f或者pageUP键:屏幕向前移动一页
Ctrl+b或者pageDown键:屏幕向后移动一页
Ctrl + d : 屏幕向前移动半页
Ctrl + u : 屏幕向后移动半页
+ : 光标移动到非空格符的下一列
- : 光标移动到非空格符的上一列
n空格(n是数字): 按下数字n然后按空格,则光标向右移动n个字符,如果该行字符数小于n,则光标继续从下行开始向右移动,一直到n
0(数字0)或者Shift+6 : 移动到本行行首
Shift+4 : 即’$’移动到本行行尾
H : 光标移动到当前屏幕的最顶行
M : 光标移动到当前屏幕的中央那一行
L : 光标移动到当前屏幕的最底行
G : 光标移动到文本的最末行
nG(n是数字): 移动到该文本的第n行
gg : 移动带该文本的首行
n回车(n是数字) : 光标向下移动n行
一般模式下查找和替换
/word : 向光标之后寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜后一个
?word : 想光标之前寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜前一个
:n1,n2s/word1/word2/g : 在n1和n2行间查找word1这个字符串并替换为word2,你也可以把”/”换成”#”
:1,s/word1/word2/g:从第一行到最末行,查找word1并替换成word2:1,s/word1/word2/gc : 加上c的作用是,在替换前需要用户确认
一般模式下删除、复制粘贴
x,X : x为向后删除一个字符,X为向前删除一个字符
nx(n为数字) : 向后删除n个字符
dd : 删除光标所在的那一行
ndd(n为数字) : 删除光标所在的向下n行
d1G : 删除光标所在行到第一行的所有数据
dG : 删除光标所在行到末行的所有数据
yy : 复制光标所在的那行
nyy : 复制从光标所在行起向下n行
p,P : p复制的数据从光标下一行粘贴,P则从光标上一行粘贴
y1G : 复制光标所在行到第一行的所有数据
yG : 复制光标所在行到末行的所有数据
J : 讲光标所在行与下一行的数据结合成同一行
u : 还原过去的操作
进入编辑模式
i : 在当前字符前插入字符
I : 在当前行行首插入字符
a : 在当前字符后插入字符
A : 在当前行行末插入字符
o : 在当前行下插入新的一行
O : 在当前行上插入新的一行
r : 替换光标所在的字符,只替换一次
R : 一直替换光标所在的字符,一直到按下ESC
命令模式
:w : 将编辑过的文本保存
:w! : 若文本属性为只读时,强制保存
:q : 退出vim
:q! : 不管编辑或未编辑都不保存退出
:wq : 保存,退出
:e! : 将文档还原成最原始状态
ZZ : 若文档没有改动,则不储存离开,若文档改动过,则储存后离开,等同于:wq
:w [filename] : 编辑后的文档另存为filename
:r [filename] : 在当前光标所在行的下面读入filename文档的内容
:set nu : 在每行的行首显示行号
:set none : 取消行号
n1,n2 w [filename] : 将n1到n2的内容另存为filename这个文档
:! command : 暂时离开vim运行某个linux命令,例如 :! ls /home 暂时列出/home目录下的文件,然后会提示按回车回到vim
系统相关命令
top 动态显示运行中的进程
该命令用来动态显示运行中的进程。top
命令能够在运行后,在指定的时间间隔更新信息显示; 可以在使用top
命令时加上-d <interval>
来指定显示信息更新的时间间隔。
"M"键: 根据内存使用量来排序
"P"键: 根据cpu占有率来排序
“T”键: 根据进程运行时间长短来排序
"U"键: 可以根据后面输入的用户名来筛选进程
"K"键: 可以根据后面输入的PID来杀死进程
"q"键: 退出
"h"键: 获得帮助
ps 查看进程信息
格式ps [选项]
常用参数:
-a 显示终端上的所有进程,包括其他用户的进程
-u 显示进程的详细状态
-x 显示没有控制终端的进程
-w 显示加宽,以便显示更多的信息
-r 只显示正在运行的进程
who 查看当前所有登录系统的用户信息
格式who [选项]
常用参数:
-m或am I 只显示运行who命令的用户名、登录终端和登陆时间
-q或--count 只显示用户的登录账号和登录用户的数量
-u 在登录时间后显示该用户最后一次操作到当前的时间间隔
-u或--heading 显示列标题
w 查看登录当前系统的用户信息
该命令比who
更强大。它不但可以显示当前那些用户登录到系统,还可以显示这些用户正在进行的操作,并给出更加详细和科学的统计数据。 格式w [选项] [用户名]
如果w
命令携带用户名,则只显示指定用户的信息,否则显示当前所有登录用户的信息。常用参数如下:
-h 不显示各列的标题
-l 显示详细信息列表,此为预设值
-s 使用短列表,不显示用户登录时间、JCPU和PCPU时间
-u 忽略执行程序的名称,以及该程序的PCPU时间
归档命令
tar 归档管理
计算机中的数据经常需要备份,tar
是Unix/linux
中最常用的备份工具。此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。 格式 tar [参数] 打包文件名 文件
tar
命令很特殊,其参数前面可以使用”-“,也可以不使用。
-c 生成档案文件
-v 列出归档解档的详细过程
-f 指定档案文件名称
-t 列出档案中包含的文件
-x 解开档案文件
gzip 文件压缩命令
tar
与gzip
命令结合使用实现文件打包归档。 格式 gzip [选项] 被压缩文件
常用参数:
-d 解压