一. Linux命令格式
command 【-options】 【parameter1】…
注:
command:命令名,相应功能的英文单词或单词的缩写
【-options】:选项,可用来对命令进行控制,也可以省略
【parameter】:传给命令的参数,可以是0个1个或多个
二. 查看帮助文档
1. command –help
2. man(manual)
注:
man是linux提供的一个手册,包含了绝大部分的命令以及函数使用说明
涉及到功能键及功能:
空格: 显示手册页的下一屏
Enter:一次滚动手册页的一行
b: 回滚一屏
f: 前滚一屏
q: 退出
h: 列出所有功能键
/word:搜索word字符串
三. 历史命令
上下键或用history将执行过的命令列举出来
四. Linux命令–文件, 磁盘管理
1. ll&ls
1.1 文件管理
ls 查看文件信息
注:
以.(点)开头的文件为隐藏文件, 需要用-a参数才能显示
-a 显示制定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合-l以人性化的方式显示文件大小
其实一个ll解决一切
1.2 通配符
*(星号)代表文件名中所有字符,
?(问号)代表文件名中任意一个字符,
[] (方括号) 将字符组括起来,表示可以匹配字符组中的任意一个。其中‘-(中杠)’表示字符范围.
如: ls [a-f]* 查找并显示a到f范围内的任意一个字符开头的文件
\ (反斜杠) 如果想使通配符作为普通字符用,可以在其前面加上转义字符。另外‘?’和‘*’处于方括号内时不需要使用转义字符就失去了通配符的作用
如: ls *a 查找文件名为*a的文件
2. 输出重定向命令:>
将命令执行结果重定向到一个文件, 本应该显示在终端上的内容保存到制定文件中
如: ls > test.txt(文件若不存在,则创建,若存在则覆盖其中的内容)
注: 可以用cat查看文件的内容,> 输出重定向会覆盖原来的内容, >> 输出重定向则会追加到文件的尾部
3. 分屏显示: more
查看内容时, 在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按空格键可以显示下一页,按q键退出显示,按h键获取帮助。
4. 管道: |
什么是管道,就是一个命令的输出可以通过管道作为另一个命令的输入,通俗一点来讲就是将查寻到或者其他方式得到的数据放到所谓的管道里面,然后对数据继续进行操作
5. 清屏:clear或Ctrl + l
6. 切换工作目录: cd
其后可以跟绝对路径,也可以跟相对路径,如果省略目录的话,就默认切换到当前用户的主目录(此时相当于cd~)
cd . 切换到当前目录
cd .. 切换到上级目录
cd - 切换到上次所在的目录
注:
Linux所有的目录和文件名大小写敏感,如果路径是从根据径开始的,其前面需要加上‘/’, 而通常进入某个目录里的文件夹,前面不需要加
7. 显示当前路径: pwd
8. 创建目录:mkdir
参数-p可递归创建目录
注意新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写的权限
tree: 以目录树的方式显示,显示文件夹层级关系是极好的
9. 删除目录:rmdir
10. 删除文件: rm
rm可以删除文件和目录。
注意: 文件删除后是不能恢复的,为了防止文件误删,可以在rm后使用-i参数来逐个确认要删除的文件
-i 以进行交互式方式执行
-f 强制删除,忽略不存在的文件,无需提示
-r 递归删除目录下的内容,删除文件夹时必须加这个参数
11. 建立链接文件: ln(了解一下)
类似与Windows下的快捷方式,分为软连接和硬链接
11.1 软连接:不占用磁盘空间,源文件删除软链接就失效
格式: ln -s 源文件 链接文件
11.2 硬链接: 只能链接普通文件,不能链接目录
格式: ln 源文件 链接文件
注:
建立起的硬链接文件,两个文件占用相同大小的磁盘空间,即使删除了源文件,链接文件还是存在的,因此类似于Windows的快捷方式,软连接是更常见的一种形式; 另外,如果软连接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径
12. 查看或者合并文件内容:cat
例如: cat test.txt test2.txt > helloworld.txt
注:
linux的文件不是通过后缀区分的,不一定非是*.txt才是文本文件,通常通过文件的颜色就能区分出是文件或者文件夹
13. 文本搜索: grep
是一个强大的文本搜索工具,允许对文本文件进行模式查找。如果找到匹配模式,grep打印包含模式的所有行
13.1 一般格式
grep [-选项] '搜索内容串'文件名
注:
在grep命令中输入字符串参数时,最好用引号括起来,如:grep ‘a’ text.txt,另,linux里是不区分单引号还是双引号的
13.2 常规选项说明
-v: 显示不包含匹配文本的所有行(相当于求反)
-n: 显示匹配行及行号
-i: 忽略大小写
注: grep搜索的内容串也可以是正则表达式
14. 查找文件:find
通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件
常用语法:
15. 拷贝文件 cp
其主要功能是将给出的文件或目录复制到另一个文件或目录中
常用选项:
-a:该选项通常在复制目录时使用,它会保留链接,文件属性,并递归地复制目录,简而言之,保持文件的原有属性
-f:已经存在的目标文件而不提示,直接覆盖
-i:交互式复制,在覆盖目标文件之前给出提示要求用户确认
-r:若给出的源文件时目录文件,则cp将递归复制该目录下所有的子目录和文件,目标文件必须为一个目录名
-v:显示拷贝进度
16. 移动文件 mv
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名
常用选项:
-f:禁止交互式操作,即使有覆盖也不给出提示
-i:交互式操作
-v: 显示移动进度
17. 归档管理 tar
tar是Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,亦可以将档案文件解开以恢复数据
17.1 使用格式
tar [参数] 打包文件名 文件
注: tar命令的参数前面既可以使用‘-’,也可以不使用
17.2 常用参数:
-z:制定压缩包的格式为:file.tar.gz
-c:生成档案文件,创建打包文件
-v:列出归档解档的详细过程,显示进度
-t:列出档案中包含的文件
-x:解开档案文件
-f:指定档案文件名称,f后面一定是.tar文件,因此务必要放选项最后,但其他参数随意
18. 文件压缩与解压缩 gzip
tar与gzip命令结合使用方可实现文件打包,压缩。tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxx.tar.gz
18.1 使用格式:
gzip [选项] 被压缩文件
18.2 常用选项:
-d:解压
-r:压缩所有子目录(默认不加选项也是压缩)
注:上面的其实没多大卵用,并且麻烦的雅痞,因此在tar命令中增加了一个选项(-z),此时就可以调用gzip从而实现一个压缩的功能,完成先打包后压缩的过程
18.3 压缩用法
tar -zcvf 压缩包包名 文件1 文件2...
注:不同的压缩方式算法不同,因此压缩的速度以及大小均不同,综合起来而言,推荐使用的是tar -zcvf
18.4 解压缩用法
tar -zxvf 压缩包包名
注:默认是解压到当前路径下,要解压到指定目录下可以用选项‘-C’
19. 文件压缩与解压缩 bzip2
其用法和gzip一样,压缩文件的扩展名一般用:xxx.tar.gz2, 具体实现方式在tar命令中增加一个(-j)选项即可
压缩及解压缩用法:
如:
tar -jcvf demo.tar.bz2 *.test
tar -jxvf demo.tar.bz2
20. 文件压缩与解压缩:zip 、unzip
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
压缩及解压缩用法:
zip [-r] 目标文件(无需扩展名) 源文件
unzip -d 解压后目录文件 压缩文件
21. 查看命令位置 which
如果找到就显示这个命令的路径,找不到就不显示呗,了解一下,没什么卵用
五. Linux命令-系统管理
1. 查看当前日历 cal(-y显示整年)
2. 显示或设置时间: date
2.1 设置时间格式(需要管理员权限)
date [MMDDhhmm[[CC]YY][.ss]] +format
注:CC为年前两位yy为年的后两位,前两位的mm为⽉,后两位的mm为分钟,dd为天,hh为 ⼩时,ss为秒。如: date 010203042016.55。
2.2 显示时间格式
date '+%y,%m,%d,%H,%M,%S'
如:date '+%Y/%m/%d' ==>xxxx/xx/xx
注:y/Y效果一样
3. 查看进程信息 ps
此命令可以查看进程的详细状况
常用选项(‘-可以省略’):
-a:显示终端上的所有进程,包括其他用户的进程
-u:显示进程的详细状态
-x:显示没有控制终端的进程
-w:显示加宽,以便显示更多的信息
-r:只显示正在运行的进程
4. 动态显示进程 top
用来动态显示运行中的进程,能够再运行之后,在指定的时间间隔更新显示信息,可以通过加选项[-d
]来指定显示信息更新的时间间隔
常用按键:
M:根据内存使用量排序
P:根据CPU占有率排序
T:根据进程运行时间长短排序
U:根据后面输入的用户名来筛选进程
K:根据后面输入的PID杀死进程
q:退出
h:帮助
5. 终止进程:kill
杀死指定进程号的进程,需要配合ps使用
格式:
kill [-signal] pid
注: 其中信号值选项从0到15,9为绝对终止,可以处理一般信号无法终止的进程
6. 关机重启:reboot、shutdown、init
如:
reboot 重新启动操作系统
shutdown -h now 立刻关机
shutdown -h 20:25 定时关机
shutdown -h +10 系统过十分钟自动关机
init 0 关机
init 6 重启
7. 检测磁盘空间: df
用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况
常用选项:
-a:显示所有文件系统的磁盘使用情况
-m:以1024字节为单位显示
-t:显示各指定文件系统的磁盘空间使用情况
-T:显示文件系统
8. 检测目录所占磁盘空间:du
用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更测重于磁盘的使用情况
格式:
du [选项] 目录或文件名
-a:递归显示指定目录中各文件和子目录中文件占用的数据块
-s:显示指定文件或目录占用的数据块
-b:以字节为单位显示磁盘占用情况
-l:计算所有文件大小,对硬链接文件计算多次
注:在后面加-h可以转换单位,如:du -s build/ -h 显示指定文件占用的数据块,并转换单位
9. 查看或配置网卡信息:ifconfig
默认显示所有的网卡信息
另外,修改网卡的ip地址信息:ifconfig + 网卡名 + 新ip地址,如果权限不足,加sudo,或者通过sudo su切换到root用户操作
10. 测试远程主机联通性:ping
ping www.baidu.com
ping 192.168.1.1
六. Linux命令-用户、权限管理
用户管理包括用户与组账号的管理,无论是由本机或是远程登陆系统,每个系统必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限,root是用于系统的维护和管理的,拥有不受限制的访问权限;再Linux的安装过程中系统会自动创建许多用户账号,这些默认被创建的用户称为‘标准用户’,通常不推荐直接使用root账号登陆系统
1. 查看当前用户:whoami
用户可以使用该命令查看当前系统当前账号的用户名,还可以通过cat /etc/passwd查看系统用户信息
2. 查看登陆用户:who
用于查看当前所有登录系统的用户信息,通俗点就是谁登陆了此系统都会显示出来
常用选项:
-m或am I :只显示运行who命令的用户名、登陆终端和登陆时间
-q或--count:只显示用户的登陆账号和登陆用户的数量
-u或--heading:显示列标题
3. 退出登陆用户:exit
如果是图形界面,退出当前终端;
如果是使用ssh远程登陆,退出登陆用户;
如果是切换后的登陆用户,退出并返回上一个登陆账号
4. 添加用户账号 useradd
使用格式:
useradd [选项] 新建用户账号
常用选项:
-d:指定用户登陆系统时的主目录,如果不使用该参数,系统就自动再/home目录下面建立与用户名同名目录作为主目录
-m:自动建立目录
-g:指定组名称
注:adduser的命令是指向useradd的一个链接,两个命令的格式完全一样,作用也是一样的;
Linux每个用户都有一个主目录,主目录即第一次登陆系统,用户的默认当前目录 (/home/user);
创建用户的时候,一定要给用户指定一个主目录,因为每一个用户必须要有一个主目录;
用户的主目录一般要放在根目录的home目录下,用户的主目录和用户名是相同的,走默认的即可,前面的约等于扯犊子;
如果创建用户的时候没有指定组名,那么系统也会自动创建一个和用户名一样的组名
一句话,走默认,就够了
如:useradd -d /home/a a -g test
创建一个用户名字叫a,主目录在/home/a, 如果主目录不存在,就自动创建主目录,同时用户属于test组
5. 设置用户密码 passwd
超级用户可以使用passwd命令为普通用户设置或修改用户口令;用户也可以直接使用该命令来修改自己的口令,并且不需要在命令后面使用用户名
6. 删除用户 userdel
常用格式:
userdel abc : 删除abc用户,但并不会自动删除用户的主目录
userdel -r abc : 删除用户同时删除用户的主目录
7. 切换用户 su
通过此命令切换用户,后面也可以加‘-’中杠,其作用是在切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录
注:
在命令前加‘sudo’ 允许系统管理员让普通用户执行全部root权限命令,减少了root用户的登陆和管理时间;(sudo)su 默认切换到root用户;$表示普通用户, #表示root用户
8. 查看有哪些用户组
method1: cat /etc/group
method2: groupmod + 三次tab键
9. 添加、删除组账号 groupadd groupdel
格式:
groupadd / groupdel + 组账号
注:一般会报权限不足,应在命令前加sudo
10. 修改用户所在的组 usermod
格式:
usermod -g 用户组 用户名
注: 查询是否修改成功 cat /etc/group | grep XXX
11. 查看用户在哪些组 groups
12. 为创建的普通用户添加sudo权限
sudo usermod -a -G adm 用户名
sudo usermod -a -G sudo 用户名
注:usermod -g 与 -G的区别
-g:用来指定这个用户默认的用户组
-G:一般配合-a来完成向其它组添加
13. 修改文件权限 chmod
13.1 字母法:
注:
u(user)表示该文件的所有者
g(group)表示与该文件的所有者属于同一组者,也即用户组
o(other) 表示其他以外的用户
a(all) 表示所有,包括以上三者
+ 增加权限
- 撤销权限
= 设定权限
13.2 数字法:
rwx这些权限是可以用数字来代替的
r:读取权限,数字代号为4
w:写入权限,数字代号为2
x:执行权限,数字代号为1
-:不具备任何权限,数字代号为0
如:执行chmod u=rwx,g=rx, o=r filename等同于:chmod u=7,g=5,o=4 filename也等同于
chmod 751 filename;
另,若想递归所有目录加上相同权限,需加上参数‘-R’ 如:chmod 777 test/ -R
可递归test目录下所有文件并加777权限
14. 修改文件所有者 chown
格式: chown + 文件所有者 + 文件名
15. 修改文件所属组 chgrp
格式:chgrp + 文件所属组 + 文件名
七. Vim编辑器及相关命令
vi(Visual interface),即可视化界面,分为三种基本工作模式:命令模式、文本输入模式、末行模式
vim是从vi发展出来的一个文本编辑器,下面为它的基础操作
1. 进入插入模式:
i:插入光标前一个字符
I:插入行首
a:插入光标后一个字符
A:插入行末
o:向下新开一行,插入行首
O:向上新开一行,插入行首
2. 进入命令模式:
ESC:会从插入模式或末行模式进入命令模式
3. 移动光标:
h: 左移
j: 下移
k: 上移
l: 右移
M: 光标移动到中间行
L: 光标移动到屏幕最后一行行首
G: 移动到指定行,行号 -G
w: 向后一次移动一个字
b: 向前一次移动一个字
{: 按段移动,上移
}: 按段移动,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
gg: 光标移动文件开头
G: 光标移动到文件末尾
4. 删除命令
x: 删除光标后一个字符,相当于 Del
X: 删除光标前一个字符,相当于 Backspace
dd: 删除光标所在行,n dd 删除指定的行数
D: 删除光标后本行所有内容,包含光标所在字符
d0: 删除光标前本行所有内容,不包含光标所在字符
dw: 删除光标开始位置的字,包含光标所在字符
5. 撤销命令
u:一步步撤销
Ctrl - r:反撤销
6. 重复命令
.(点): 重复上一次操作的命令
7. 文本行移动
>>: 文本行右移
<<: 文本行左移
8. 复制粘贴
yy:复制当前行,n yy 复制n行
p:在光标所在位置向下开辟一行并粘贴
9. 可视模式
v:按字符移动,选中文本
V:按行移动,选中文本可视模式可以配合d,y,>>, <<实现对文本块的删除,复制以及左右移动
10. 替换操作
r:替换当前字符
R:替换当前行光标后的字符
11. 查找命令
/:str查找
n:下一个
N:上一个
12. 替换命令
如:把abc全部替换成123
末行模式下,将当前文件中的所有abc替换成123
:%s/abc/123/g
末行模式下,将第一行至第10行之间的abc替换成123
:1,10s/abc/123/g
注: 若在vim里执行shell下命令,可以通过在末行模式里输入!,后面跟命令即可
八. 分屏操作(进阶)
1. 常用分屏操作:
sp:上下分屏,后可跟文件名
vsp:左右分屏,后可跟文件名
Ctrl+w+w:在多个窗口切换
2. 启动分屏:
2.1 使用大写O选项进行垂直分屏
格式:vim -On file1 file2 ...
2.2 使用小写o参数进行水平分屏
格式:vim -on file1 file2 ...
注:n是数字,表示分屏的数量,要保证n大于等于文件的个数
3. 关闭分屏:
3.1 关闭当前窗口
Ctrl + w c
3.2 关闭当前窗口,如果只剩最后一个,则退出vim
Ctrl + w a
4. 编辑中分屏
4.1 上下分割当前打开的文件
Ctrl+w s
4.2 上下分割,并打开一个新的文件
:sp filename
4.3 左右分割当前打开的文件
ctrl+w v
4.4 左右分割,并打开一个新的文件
:vsp filename
5. 分屏编辑中光标的移动
vi中的光标键是h,j,k,l,要想在各个屏之间切换,只需要先按一下Ctrl+w
把光标移动到上边的屏
ctrl + w k
把光标移动到下一个屏
ctrl + w w
6. 移动分屏
如: 向上移动:ctrl+w K(大写,其他参考光标键)
7. 屏幕尺寸
7.1 增加高度
ctrl+w +
7.2 减少高度
ctrl+w -
7.3 让所有的屏高度一致
ctrl+w =
7.4 左加宽度
ctrl+w >
7.5 右加宽度
ctrl+w <
7.6 右增加n宽(如: n = 30)
ctrl + w n <