linux下的基本命令
命令分类:(linux下严格区分大小写)
内部命令:shell代码中自己实现的一些命令
外部命令:以文件的形式存储在磁盘(/bin /sbin /usr/bin /usr/sbin)
如何区分是内部命令还是外部命令:type + 命令名
cd is a shellbuiltin: 表示内部命令
mount is/bin/mount: 表示外部命令
如何查看命令的路径:
which + 命令名
如:whichcp
注意:echo即使一个内部命令也是一个外部命令
查看所有内部命令:man bash
--------------------------------------------
帮助命令:
1、man
格式:man+ 命令名
如:man ls
man都有那些类型:
6.2版本:man1 man
5.5版本:man7 man
1 User Commands
2 System Calls
3 CLibrary Functions
4 Devices and Special Files
5 File Formats and Conventions
6 Games et. Al.
7 Miscellanea
8 System Administration tools and Deamons
1、普通用户命令
2、系统调用函数库
3、常用一些函数或者C库函数
4、设备文件的一些说明
5、配置文件与一些其他格式的文件
6、游戏相关
7、网络协议相关的命令
8、系统管理员可操作的命令
9、系统内核相关的文件
推出帮助命令:q
清屏:ctrl + l ; clear
2、info:
格式:info+ 命令名
如:infocd
3、help:
格式:(info+ 命令名)或者(命令名 --help)
如:help cd
helpecho 内部命令的帮助
ls--help 外部命令的帮助
4、百度 谷歌
---------------------------------------------
基本命令:
tab键使用:自动补齐
假若按一次无反映,则再按一次,显示出所有匹配的文件。
鼠标滑动键的使用,可以实现复制。
--------------------------------------------
ls:查看当前文件夹下的所有文件和文件夹
格式:ls[option] [目录文件]
[option]
-l:长格式显示
-a:显示所有文件
-A:显示所有文件(除.和..)
-t:按最后修改的时间排序
-S:按文件大小排序
-rw-r--r-- 1 root root 0 7月 2410:09 hh
drwxr-xr-x 2 root root 4096 7月 24 10:38 hhh
第一列第一个字符:文件的类型:
-:普通文件
d:目录(文件夹)
c: 字符设备类文件
b: 块设备文件
s: 套链接子文件
l: 链接文件
p: 管道文件
第一列的2~10:表示权限位
rwx r-x r-x
权限位三位为一组,共三组
第一组:表示自己的权限(拥有主)
第二组:表示属组的权限
第三组:表示其他用户的权限
其中:r表示读权限 w表示写权限 x表示执行权限 -无任何权限
第二列:硬链接数
ln aaff 创建硬链接
ln -s aaff 创建硬链接
第三列:文件属主(拥有者)
第四列:属组
第五列:文件的大小
第六列:最后修改的时间
第七列:文件名
---------------------------------------------
cd:切换当前目录
格式:cd目标目录
注意:绝对路径和相对路径
绝对路径从根开始
相对路径从当前目录开始
. 表示当前所在的目录
.. 表示上级目录
~ 表示当前用户登录的家目录
- 表示上一次所在的目录
区别:cd/a 和 cd a的区别
-------------------------------------
pwd:查看当前所在目录的一个路径(绝对路径)
-------------------------------------
touch :新建一个文件
如:toucha b 创建两个文件
toucha{1,2,3}b{1,2} 创建多个文件
touch"a{1,2,3}b{1,2}" 创建一个文件
stat a:查看文件的属性
Access: 2012-07-24 11:31:59.199370276 +0800
Modify: 2012-07-24 11:31:59.199370276 +0800
Change: 2012-07-24 11:31:59.199370276 +0800
atime:访问时间
ctime:修改时间(名字修改,权限修改)
mtime:修改时间(内容修改),同时也会修改atime ctime;
touch一个存在的文件,则会修改此文件的mtime
-------------------------------------------------
rm:表示删除一个文件
格式:rm[option] 目标名
[option]
-f 强制删除不提示
-r 删除目录
如:rm* 删除所有文件
注意:不要根下:rm * -rf XXXXXXX
rm /-rf XXXXXXX
----------------------------------------------
mkdir :创建一个目录
格式:mkdir[option] 目录名
[option]
-p:在创建多级目录时,如果前一级目录存在,会自动创建
-m:建立目录时指定权限
区别:mkdir/a 和mkdir a 之间的区别
----------------------------------------------
rmdir:表示删除空的目录
基本不用
---------------------------------------------
mv:移动文件或者改名
格式:mv源文件 目标文件(路径)
如:mvfile /test 表示移动文件
mv file /test/file2 表示该民
mv file1 file2 表示在当前路径下改名
-------------------------------------------
cp:文件拷贝
格式:cp[option] 源文件 目标文件
[option]
-r:复制目录
通配符:
* 表示可能出现的任意字符
?表示可能出现的任意一个字符
若文件夹下有相同的文件,如何在再次复制的时候不提示:/bin/cp 源文件 目标文件 或者\cp /etc/a* .
---------------------------------------------
cat:显示文件的内容
格式:cat[option] 文件名
[option]
-n: 显示行号
-b: 显示行号
两者区别:b空行不显示
-E: 结尾加$
-A: 显示非打印字符 (tab键)
---------------------------------------
more:分屏显示文件内容
more +5/etc/passwd 从第五行开始显示
more -5/etc/passwd 每屏显示5行
----------------------------------------
less:分屏显示(通过方向键可以上下翻动)
如:less/etc/passwd
----------------------------------------
head:
head/etc/passwd 查看/etc/passwd前10行内容
head -n20/etc/passwd 查看/etc/passwd前20行内容
-----------------------------------------
tail:
tail/etc/passwd 查看/etc/passwd后10行内容
tail -n20/etc/passwd 查看/etc/passwd后20行内容
-------------------------------------------
定义别名:
aliasii="ls -i" 定义别名
unaliasii 取消别名
用永久生效:
vim ~/.bashrc
-----------------------------------------
|:管道
用于将多个管道连接起来,前一个命令的输出作为后一个命令的输入
例:ls /etc/ 显示/etc/下的所有文件
ls /etc/ | wc-l 显示/etc/下的有多少文件
ls /etc/ |grep '^d'|wc -l 统计/etc/下有多少个目录
如:cut-d: -f7 /etc/passwd | sort | uniq -c | sort -k1 -n
------------------------------------------
重定向:
改变输入输出的方向
标准输出:屏幕
标准输入:键盘
输入输出代码表示:
stdio 0 标准输入 默认键盘
stdout 1 标准输出 默认屏幕
stderr 2 错误输出 默认屏幕
> :表示正确输出重定向(覆盖的方式)
如ls a>a1
2>:表示错误输出重定向
如ls/ttt 2> a2
ls a /ttt>a1 2>a2 表示正确输出a1 ,错误的放a2
ls a /ttt&> a3 正确的和错误的都放在a3
>>:输出重定向(追加的方式)
如:echoAAAAAA >> a
输入:
<<:
如:cat<< aaa
<:
passwd tom< passwd
/dev/null 空洞文件
----------------------------------------------
vim:文本编辑器
vi: 是vim低级版本
ed:最早的文本编辑器
sed:流媒体编辑器
vi:
emacs:
vim
-------------------------------
vim工作模式:
一般模式:以vim直接打开的默认模式
编辑模式:左下角由插入命令的字符
命令模式:左下角无提示,按:进入命令模式
如何切换:
一般模式切换到编辑模式:
i I o O s S aA
按esc
编辑模式切换到命令模式:
按esc 按:
--------------------------------
一般模式操作:
删除:
dd:删除一行
ndd(如3dd):删除3行,n表示自然数
x:删除光标所在行的字符
nx:删除n个字符
dw:删除一个单词
ndw:删除n个单词
d^:删除光标位置到行首
d$:删除光标位置到行尾
u:撤销前次的操作
ctrl + r:取消撤销
------------------------------------------
复制:
第一种方式:
yy:复制一行
nyy:复制多行
:m,ny:复制m行到n行的文本到vim的缓冲区
p:粘贴
第二种方式(可视):
方向键选中
v 选中要复制的内容 c(cut剪贴)
再把光标移动到目标位置,在一般模式下按p
v 选中要复制的内容 y(copy 复制)
再把光标移动到目标位置,在一般模式下按p
可视化行 :V
可视化块:ctrl+ v
选中后,按r进行替换。
------------------------------------------------
移动:
h:光标向左移动一位
l:光标向右移动一位
j:光标向下移动一位
k:光标向上移动一位
^:光标移动到行首,第一个有效字符的位置
0:光标移动到该行的行首,行的第一个位置
$:光标移动到行尾
H:将光标移动到该屏幕的顶端
M:将光标移动到该屏幕的中间
L:将光标移动到该屏幕的行尾
gg:将光标移动到该文章的首行
ngg:将光标定位到第n行
G:将光标移动到该文章的结尾
w:将光标移动到下一个单词
b:将光标移动到上一个单词
e:将光标移动到下一个单词,光标到下一个单词的词尾
ctrl + u:将窗口向上移动半屏
ctrl + d:将窗口向下移动半屏
ctrl + f:将向前滚动一整屏
ctrl + b:将向下滚动一整屏
------------------------------------------
编辑模式:
i I a A o O sS
i:光标的位置插入
I:行首插入
a:在光标后插入
A:行尾插入
o:下一行插入
O:上一行插入
s:删除光标处的字符插入
S:清空光标行插入
10i:出入一个单词,退出这种模式,则会自动做10次这样的动作。
-------------------------------------------
命令模式
左下角有冒号(:)用来输入一些控制指令
:w 保存
:q 退出
:W!强制保存
:q!强制退出
:wq保存退出
:setnumber 显示行号
:set nonumber取消行号
如何永久修改
vim~/.vimrc (在vimrc中加入:set ts=n //则在vim下按下tab键相当于n个空格)
shift +> 表示向右缩进tab位
shift +< 表示向左缩进tab位
= 自动对齐
:r 读文件
如:r/etc/passwd 不会覆盖掉源文件内容
:w 写文件
如::w/b.txt 保存根下
:w b.txt 保存在当前目录下
:split 水平切割
:vsplit 垂直切割
ctrl + w 窗口之间进行切换(不能在插入模式)
vim -o ab.txt 水平打开多个文件
vim -O ab.txt 垂直打开多个文件
:wqa 关闭所有打开的文件
---------------------------------------------
查找替换
查找:/ ?+ 查找的字符
/ 表示自上而下操作
?表示自下而上操作
n 查看下一个匹配的字符串
N 反向查找下一个匹配的字符串
替换:
格式 范围s/原子符/新字符/参数
范围:
1:第一行
$: 做后一行
%:全文
1,$第一行到最后一行
参数: g:全局替换(默认的是每一行的第一个) c:确认替换 i:不区分大小写 替换操作 :s/root/admin/ 替换当前行的第一个字符串 :s/root/admin/g 替换当前行的所有字符串 :s/root/admin/gi 替换当前行的所有字符串,并且不区分大小写 :m,ns/root/admin/g 注意:在替换的时候对一些特殊的字符,要进行转义,比如/ $ 如::%s/\/root/admin/g
如::%s/\/root/admin/g