Linux系统命令行基础
Linux系统命令行基础
-
Linux必知必会基础知识
-
什么是Bash shell(壳)
-
BashShell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。
当我们使用远程连接工具连接linux服务,系统则会给打开一个默认的shell,我们可在这个界面执行命令、比如:获取系统当前时间,创建一个用户等等...
-
Bash Shell能干什么?
使用Shell实现对Linux系统的大部分管理,例如:
1.文件管理
2.权限管理
3.用户管理
4.磁盘管理
5.网络管理
6.软件管理
等等.
-
Bash shell执行方式
输入命令方式 --->效率低--->适合少量的工作
shell script --->效率高--->适合复杂的工作
-
Linux命令行的作用和意义
众所周知,Linux是一个主要通过命令行来进行管理的操作系统,即通过键盘输入指令来管理的相关操作,包括但不限于编辑文件、启动和停止服务等。这和大家所使用的Windows系统使用鼠标点击这类可视化管理大不相同。
使用鼠标可视化管理的优势是简单、容易上手,但缺点是不能方便快速、批量、自动化的管理系统,而且感觉系统也很臃肿,这个时候Linux系统的命令行管理优势就凸显出来了。使用Linux 命令行管理,不但可以实现批量、自动化管理,还可以实现智能化、可视化管理,当然,后者需要开发人员配合开发管理界面来完成,但无论如何,Linux系统的优势还是快速、批量、自动化、智能化管理系统及处理业务。
-
Linux命令行介绍
安装Linux系统时,无论是使用文本模式安装,还是使用图形模式安装,最终管理系统的任务都会落到命令行上。
多数互联网企业在安装系统时甚至不会安装图形管理软件包,而是直接使用文本模式安装,因此登录后直接面对的就是命令行的界面(如下图所示)
图-通过SSH客户端(xshell)连接linux系统后的命令行
-
Linux命令行的登录及退出
在开启主机时,Linux系统经过一系列的引导和程序加载后,最终会出现登录前的提示界面(如下图所示)。
图-CentOS Linux系统登录后的命令行界面
在上图中,将光标定位到login:字符后面,输入超级用户管理员root后,按回车键,弹出密码提示框后,再输入密码,注意密码是不显示的。输入正确的密码后,再按回车键就可以登录到Linux系统中了(如下图所示)。
图-CentOS Linux系统登录后的命令行界面
在命令行界面,执行exit或logout命令可退出命令行(如下图所示),当然也可以使用快捷键Ctrl+d键退出命令行。退出命令行后,如果要再次登录,还是需要输入用户名和密码的(除非使用SSH客户端将用户名和密码保存)。
图-CentOS Linux命令行退出操作界面
-
命令行提示符介绍
Linux命令行结尾的提示符有"#"和"$"两种,如下所示:
[root@oldboy ~]# #<==这是超级管理员root用户对应的命令行
[root@oldboy ~]$ #<==这是普通用户oldboy对应的命令行
其中:
1)root,表示当前登录的用户(可用whoami命令查询查询)
2)@符,表示分隔符
3)oldboy,表示主机名(可用hostname命令查询)
4)~号,表示当前用户所在的路径(可用pwd命令查看,默认用户登录之后所在的路径是当前用户的家目录)
5)#号,表示超级用户root登录后的命令行结尾提示符,而$号是使用普通用户登录后的命令行结尾提示符。超级用户具有管理系统的所有权限,普通用户的权限比较小,只能进行基本的系统信息查看等操作,无法更改系统配置和管理服务。
6)Linux命令行提示符由PS1环境变量所控制的。
[root@web ~]# set |grep PS1 #注意,这里的PS是大写的。这里的PS1='[\u@\h \W]\$ ',可以通过命令export进行修改,永久生效的话通过全局配置文件/etc/bashrc或/etc/profile按需进行配置和调整。在这里,我们可以给命令行提示符加上颜色。
PS1='\[\e[32;1m\][\u@\h \W]\$ \[\e[0m\]'
-
Linux命令组成结构
在企业里,绝大多数使用Linux的管理员都是通过命令行操作Linux的,学会如何通过命令行操作Linux是一个Linux管理员的必须课。
在操作Linux命令之前,先看下命令操作语法格式(如下图所示)。Linux系统命令操作语法的格式为:
#命令 [选项] [参数/路径]
command [-options] [arguments]
[root@oldboy ~]# ls #命令
[root@oldboy ~]# ls -a #命令+选项
[root@oldboy ~]# ls -a /home/ #命令+选项+参数
#命令: 整条shell命令的主体
#选项: 用于调节命令的具体功能
#以
"-"引导短格式选项(单个字符),例如"-a"
#以"--"引导长格式选项(多个字符),例如"--all"
#多个短格式选项可以写在一起,只用一个"-"引导,例如"-al"
#参数: 命令操作的对象,如文件、目录名等
PS1:中括号表示可选,即命令的选项即参数是可选的。
PS2:选项表示使用一个命令的不同功能。
PS3:命令、选项、参数两两之间至少要有一个空格。一个整体的命令、选项、参数不能有空格。
PS4: 选项和参数在有些命令的时候时,位置可以发生变化.
PS5: 命令必须放在开头,
选项和参数位置可以发生变化
图-命令的组成结构
-
执行命令的常见报错
[root@oldboy ~]# ls-a
bash: ls-a: command not found... 找不到命令(要么命令写错了,要么就真的没有该命令)
[root@oldboy ~]# ls /.bashrc
ls: cannot access /.bashrc: No such file or directory 没有这个文件或目录
PS:相信电脑,电脑是不会出错的,如果电脑的出现的结果和你想像的不一样,那么一定是你错了。
-
Bash shell特性
1. tab键补全支持
命令补全
选项补全
参数补全
在实际生产中tab补全往往是我们使用的最多的, 因为可以减少执行命令以及路径出错率
命令补全: 按一下tab键没有任何反应,因为以user开头的命令有很多,系统并不知道你需要使用哪一个
[root@oldboy ~]# user
useradd userdel userhelper usermod usernetctl users
选项补全:
[root@web 20:39:54 ~]# ls --
--all --format= --quote-name
--almost-all --group-directories-first --quoting-
--author --help --recursive
--block-size= --hide= --reverse
3.路径补全:
[root@web 20:39:54 ~]# ls /root/
1.sh .bash_profile etc/ filename.bz2 .lesshst .pki/ .tcshrc
2. base shell常用快捷键
ctrl + c cancel 取消当前的操作
ctrl + l (小写字母L) clear(命令)清空当前屏幕
ctrl + d 退出当前用户
ctrl + r 查找(历史命令)。 history|grep
ctrl + a 把光标移动到行首
ctrl + e 把光标移动到行尾
ctrl + u 把光标到行首的内容删除/剪切
ctrl + y 粘贴
delete 光标所在处从前往后删除内容
ctrl + k 把光标到行尾的内容删除/剪切
ctrl + → 向右移动一个单词 Xshell工具提供的
ctrl + ← 向左移动一个单词 Xshell工具提供的
ctrl + s 锁屏
ctrl + q 解锁
ctrl + w 删除当前位置至上一个空格的字符
Esc + . 获取上一条命令最后的部分(空格分割)
!号开头的快捷命令
!! 执行上一条命令
!cd 执行最近以cd开头的命令
!num 执行历史命令列表的第num(数字)条命令
注意:有些的快捷命令是基于Xshell和SecureCRT远程连接工具实现的。
- 小练习:
命令行输入oldboyedu,然后让光标移动到行首
加上注释符号和I am studying,然后让光标移动到行尾,加上 linux.site:www.oldboyedu.com 剪切这一行内容。粘贴3次。
3.历史记录history
history #命令直接查看当前的shell所执行过的命令
!100 #调用history历史命令中编号为100
!! #执行上一次执行过的指令
选项
-w #保存命令历史到历史文件 write #写入到当前用户的家目录下.bash_history
-c #清空命令历史记录, 不会情况文件 clear
-d #删除命令历史的第 N 条行 delete
Ecs + . #获取上一个命令的参数
4.命令别名alias
4.1.如何设定别名
alias oldboy='ping www.baidu.com'
4.2.如何取消别名
unalias oldboy
4.3.为什么系统默认存在一些别名:
防止在执行危险指令时,发生误操作的情况,比如:
alias rm='rm -i'
PS: 当前的别名全部都是针对当前的Shell生效,临时生效.
4.4.永久生效{扩展}
将内容写入到 /etc/bashrc 所有的shell都生效
-
在Linux命令行下查看命令帮助
-
使用man获取命令帮助信息
-
man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。示例:
-
使用help参数获取命令帮助信息
大多数的命令都会有个帮助信息的参数--help。示例如下:
-
使用help命令获取bash内置命令帮助
help命令用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。示例:
那么如何查看当前系统的所有内置命令呢:使用help命令即可,那么有如何查看单个命令是否是内置命令呢:使用type 命令即可,如:type cd
-
使用info获取帮助信息
就内容来说,info页面比man page编写得要更好、更容易理解,也更友好,但man page使用起来确实要更容易得多。一个man page只有一页,而info页面几乎总是将它们的内容组织成多个区段(称为节点),每个区段也可能包含子区段(称为子节点)。理解这个命令的窍门就是不仅要学习如何在单独的Info页面中浏览导航,还要学习如何在节点和子节点之间切换。可能刚开始会一时很难在info页面的节点之间移动和找到你要的东西,真是具有讽刺意味:原本以为对于新手来说,某个东西比man命令会更好些,但实际上学习和使用起来更困难。
-
从互联网搜索获取命令帮助信息
除了Linux系统自带的帮助功能以外,可以通过搜索引擎网站来获取命令帮助信息。如:百度,谷歌,搜狐等。
下面几个网址是一些命令详解的地址
http://man.linuxde.net
http://liunx.web3.xin
http://linux.51yip.com
-
Linux关机重启注销命令
-
重启或关机命令:shutdown
-
- 重启
shutdown -r 10 #10分钟之后重启
shutdown -r 0 #立刻重启
shutdown -r now #立刻重启
- 关机
shutdown -h 10 #10分钟之后关机
shutdown -h 0 #立刻关机
shutdown -h now #立刻关机
- 取消当前关机或重启
shutdown -c #取消正在进行的
关机或重启
(shutdown )
-
关机与重启命令
- 重启
reboot #立刻重启
- 关机
poweroff #立即停止系统,并且关闭电源
halt #立即停止系统,需要人工关闭电源,是reboot的链接文件
-
关机、重启和注销的命令列表
命令 |
说明 |
关机命令 | |
shutdown -h now |
立刻关机(生产常用) |
shutdown -h +1 |
1分钟以后关机,1可以是别的数字或时间点,例如:11:00 |
halt |
立即停止系统,需要人工关闭电源,是reboot的链接文件 |
init 0 |
切换运行级别到0,0表示关机,因此此命令作用就是关机 |
poweroff |
立即停止系统,并且关闭电源 |
重启命令 | |
reboot |
立即重启(生产常用) |
shutdown -r now |
立即重启(生产常用) |
shutdown -r +1 |
1分钟后重启 |
init 6 |
切换运行级别到6,6表示重启,因此此命令作用就是重启 |
注销命令 | |
logout |
注销退出当前用户窗口 |
exit |
注销退出当前用户窗口 |
-
Linux显示系统IP地址
-
使用ifconfig查看IP地址
-
ifconfig #显示所有网卡IP地址
ifconfig eth0 #显示某块网卡IP地址
-
使用ip查看IP地址
ip address (简写ip a) #显示所有网卡IP地址
ip address show eth0 (简写ip a s eth0 ) #显示某一块网卡IP地址。
-
使用hostname查看IP地址(不常用)
hostname -I #显示所有IP地址(没有网卡详细信息,只有ip信息)
hostname -i #显示外网IP地址(没有网卡详细信息,只有ip信息)