目录
1. 前言
2. Linux命令格式
3. Linux目录与文件辨别
4. Shell命令行编辑技巧
5. Shell常用命令
5.1. 帮助命令
5.2. 文件和目录操作常用命令
5.3. 文件查看常用命令
5.4. 文件编辑常用命令
5.5. 文件搜索命令
5.6. 文件权限命令
5.7. 系统开关机命令
Shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bash。
Shell的定义:Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
Shell处于操作系统内核与应用成语之间,与文件系统、系统程序/库共处在同一级别。下图是Linux的系统结构。
命令字 [-选项...] [参数...]
Linux的核心思想就是一切皆文件,在Liunx系统中我们看到的相关后缀其实只是为了方便我们进行辨识,对于系统来说都是一样的文件,同时为了便于操作,会用不同的颜色去代表不同类型的文件。
文件颜色 |
描述 |
蓝色 |
表示目录(类似windows系统里的文件夹) |
白色 |
表示文件 |
浅蓝色 |
表示链接文件(类似于windows系统的快捷方式) |
绿色 |
表示可执行文件(如脚本,命令程序文件) |
红色 |
表示压缩文件 |
黄色 |
表示设备文件(硬盘、键盘、鼠标、网卡、CPU硬件设备都是以文件的形式存在的) |
红色 |
闪动文件——>表示链接文件不可用 |
键盘上下键调出历史命令
Ctrl + c:废弃当前命令行中的命令,取消当前执行的命令,例如ping
Ctrl + l,clear:清屏
tab建自动补齐:可补齐命令、参数、文件路径、软件名
esc + . :将上一条命令参数变成当前命令的执行对象
Ctrl + a:将当前光标移动至行首
Ctrl + e:将当前光标移动至行尾
Ctrl + u 清空至行首
Ctrl + w 删除一个单词
exit,logout:退出系统
1.man 命令
2.help命令
1.cd 命令
cd 命令,用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。
cd /home 进入 '/ home' 目录
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
2.pwd 命令
pwd 命令,显示工作路径
[root@mailvip ~]# pwd
/root
3.ls 命令
ls 命令,查看文件与目录的命令,list的意思
ls 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 列出全部文件,包含隐藏文件
ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
ls [0-9] 显示包含数字的文件名和目录名
4.cp 命令
cp 命令,用于复制文件,copy 的意思,它还可以把多个文件一次性地复制到一个目录下
-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为 //经常使用递归复制
-u :目标文件与源文件有差异时才会复制
使用示例: cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
5.mv 命令
mv 命令,用于移动文件、目录或更名,move 的意思
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新
使用示例: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup //将CentOS-Base.repo更名为CentOS-Base.repo.backup
6.rm 命令
rm 命令,用于删除文件或目录,remove的意思
-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
cat 命令,用于查看文本文件的内容,后接要查看的文件名,通常可用管道与 more 和 less一起使用
cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
cat -n file1 标示文件的行数
more file1 查看一个长文件的内容
head -n 2 file1 查看一个文件的前两行
tail -n 2 file1 查看一个文件的最后两行
tail -n +1000 file1 从1000行开始显示,显示1000行以后的
cat filename | head -n 3000 | tail -n +1000 显示1000行到3000行
cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000(即显示3000~3999行)
常用的文件编辑命令有vi vim nano等,根据个人习惯进行选择自己使用舒服的即可,这里主要介绍vi与vim。
vi/vim命令共分为三种模式,分别是命令模式,输入模式和底线命令模式。
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i ,进入输入模式,但是 i 这个字符并不会被输入至文档中,而是被当作了一个命令执行。
以下是常用的几个命令:
i -------切换到输入模式,以输入字符。
x -------删除当前光标所在处的字符。
: -------切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式:
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键 --------换行
BACK SPACE,退格键 -------删除光标前一个字符
DEL,删除键 -------删除光标后一个字符
方向键 -------在文本中移动光标
HOME/END -------移动光标到行首/行尾
Page Up/Page Down -------上/下翻页
Insert -------切换光标为输入/替换模式,光标将变成竖线/下划线
ESC -------退出输入模式,切换到命令模式
底线命令模式:
在命令模式下按下 :(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q -------退出程序
w -------保存文件
wq -------保存并退出文件
q! -------不保存并退出文件
按ESC键可随时退出底线命令模式。
find 命令用于在指定目录下查找文件和目录。它可以使用不同的选项来过滤和限制查找的结果。
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 'user1' 的文件和目录
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
1.chmod 命令
作用:改变文件 / 文件夹权限
权限说明:
示例:-rw-r--r--
该权限需要拆分成四个部分 - 为第一部分 ;rw- 为第二部分 ;r-- 为第三部分;r-- 为第四部分
-【标识文件类型】
rw-【该文件的用户权限,从左往右依次为读、写、执行;r为读,w为写,x为执行,-代表没有该权限】
r-- 【该文件的所属组权限,从左往右依次为读、写、执行;r为读,w为写,x为执行,-代表没有该权限】
r-- 【该文件的其他用户权限,从左往右依次为读、写、执行;r为读,w为写,x为执行,-代表没有该权限】
除第一部分外,其余三个部分可以通过数字来标识其权限。定义如下:
0代表--- 1代表--x 2代表-w- 3代表-wx 4代表r-- 5代表r-x
6代表rw- 7代表rwx
所以我们常使用的777就是为该文件的用户、用户组、其他用户赋予该文件的读、写与执行权限。
我们可以通过我们实际情况进行灵活修改,比如,我们为该文件用户提供全部权限,所属组提供读写权限,其他用户仅有读权限,那么我们就可以用该命令进行修改 chmod 764 {文件名称}
文件所属用户权限用 u 表示;文件所属用户组权限用 g 表示;文件其他用户权限用 o 表示。
以上的权限赋予方法还可以用该命令进行修改chmod u+x,g+w {文件名称}
2.chown 命令
chown 命令,改变文件的所有者
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改该目录下所有文件的属性
chown user1:group1 file1 改变一个文件的所有人和群组属性
3.chgrp 命令
chgrp 命令,改变文件所属用户组
chgrp group1 file1 改变文件的群组
usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
time 测算一个命令(即程序)的执行时间