Re:从零开始的Linux之路(基础篇)
基于 Red Hat Enterprise Linux 7.5 或者 CentOS 7.4
Linux的命令一定遵循以下格式:command指令 [-options]选项 parameter1参数1 parameter2参数2......
- command指令:一定是一个指令或者是批处理脚本
- [-options]选项:command的处理方式,即指明command指令接下来会进行何种操作,man command指令、info command指令或者是command指令 --help均可以查看系统对其选项的解释说明
- parameter1参数1 parameter2参数2:参数的数量、内容具体依照command指令而定
- 中间无论有多少空格都会被视为一个空格
- 注意大小写,一个字符的差别就是两个完全不同的文件或者指令参数
- 如果需要换行输入而不执行指令,使用(\)即可
X Window(图形界面)
Linux预设6个终端给用户登陆,其中有图形或者命令行界面,如果要启动图形界面,必须确保Linux安装了图形组件,否则只有命令行界面可用。
tty2~6:这是命令行界面,快捷键为Ctrl + Alt + F2~F6
tty1:这是图形界面,快捷键为Ctrl + Alt + F1
startx也能够启动图形界面
当然也是可以使用 init 这种操作方式:
- 0:关机
- 1:单用户模式
- 2:多用户,无网
- 3:多用户
- 4:保留模式
- 5:图形化界面
- 6:重启
如果X Window界面崩溃,可以使用Ctrl+Alt+Backspace(退格键)重启图形界面
编码
使用locale可以查看该系统的编码信息
[root@localhost ~]# locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" LC_ALL=
可以使用export LANG=en_US.utf8或者export LC_ALL=en_US.utf8修改语言
简单的指令
- date:显示日期
[root@localhost ~]# date 2018年 07月 24日 星期二 16:22:53 CST
date [opitons] [格式]
e.g. [root@localhost ~]# date +%x 2018年07月24日
[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S %p%I:%M:%S"
2018-07-24 16:44:10 下午04:44:10
参数、格式具体可以查看man date,其格式一般需要在前面加上“+”号,如果要写成复合参数的话,需要在格式部分两边加上引号。
- cal:显示日历
[root@localhost ~]# cal 七月 2018 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 cal [-mjy] cal [月份] [年份] -m:输出日历以星期一开始 -j:以儒略历输出日历 -y:显示当前年份的全年日历 e.g. [root@localhost ~]# cal -j 七月 2018 日 一 二 三 四 五 六 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 [root@localhost ~]# cal -m 七月 2018 一 二 三 四 五 六 日 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@localhost ~]# cal 6 2018 六月 2018 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
- bc:简单的计算器,可以进行简单的四则运算以及乘方取余,其功能类似日常的家用计算机,但并不能进行科学计算等高级运算操作
重要的快捷键
- Tab:主要功能是命令以及文件名补全,如果输入长命令或者路径的话建议尽量使用Tab,特别是以命令行的形式输入的话;如果某个命令有多个可能的选项的话,连按两下Tab就能将可能的命令全部列举出来
-
[root@localhost ~]# ca cacertdir_rehash cal capsh cache_check ca-legacy captoinfo cache_dump calibrate_ppa card_eventmgr cache_metadata_size caller caribou-preferences cache_repair canberra-boot case cache_restore canberra-gtk-play cat cache_writeback cancel catchsegv cairo-sphinx cancel.cups catman
- 如果安装Linux的时候没有开发环境的话,建议安装一个bash-completion(同时需要安装epel-release),使用Tab的时候就能补全和命令提示了
-
[root@localhost ~]# Date bash: Date: 未找到命令... 相似命令是: 'date'
- Ctrl+C:强制中断程序运行,特别是某些持续输出或者刷新过长的信息的时候强制中断执行
- Ctrl+D:退出文字界面,类似于输入了exit()
- Shift+PageUp/PageDown:快速上下翻页,和鼠标滚轮的功能一样
帮助文件
- man command指令
- info command指令
- command指令 --help
这三个指令均可以帮助用户找到指令的说明
文本快速操作
主要是介绍进入文本编辑页面的时候有哪些快捷键操作
- 空格键:翻到下一页
- PageUp:翻到上一页
- PageDown:和空格键一样,翻到下一页
- Home:前往文本最开始的位置
- End:前往文本最末尾的位置
- /:向下搜索某个关键字(例如“/Linux”)
- ?:向上搜多某个关键字(例如“?Linux”)
- n:定位到下一个匹配的关键字
- N:定位到上一个匹配的挂机案子
- q:退出文档
如何正确的关机(关机操作只有root才能执行)
应尽量避免非正常关机操作,因为从正常的环境来说Linux系统是不止一个人登陆的,如果root强制关机可能会导致数据的丢失,所以关机之前最后先确保以下几件事:
- who:可以查看当前有哪些用户登陆在Linux系统中
- netstat -a:查看当前的网络状态
- ps -aux:查看后台执行程序
- 通知现在仍在线上的用户关机事项
- shutdown以及poweroff
sync
将内存中的缓存文件同步到永久硬盘中(尽量多执行几次)
注意:不同的用户使用sync的效果不同,普通用户使用sync同步只有自己的数据,但root使用sync的话就是同步整个Linux系统的数据,所以关机前尽量使用root执行sync操作
shutdown
关机这个操作只有root才能执行
shutdown [-krhcfF] [time] [warning-message] -k:向当前所有用户显示关机警告信息 -r:系统服务停止后重启 -h:系统服务停止后关机 -c:取消当前执行的shutdown -f:重启时跳过磁盘检测 -F:重启时强制磁盘检测
reboot
重启,类似于shutdown -r now
halt
系统直接关机,屏幕显示会直接停留在最后的操作页面上然后关机
poweroff
系统直接关机
其实shutdown、halt、poweroff挂机没什么太多的区别,只要关机前做好防护措施即可
推荐阅读
-
Linux基础篇之CentOS的网络配置(DHCP,静态)
-
当时学习《鸟哥的Linux私房菜-基础学习篇》记录的点
-
【从零开始搭建自己的.NET Core Api框架】(三)集成轻量级ORM——SqlSugar:3.2 在框架的基础上利用SqlSugar快速实现CRUD实战篇
-
Linux运维之路 基础篇:(三) 用户和组管理
-
Re:从零开始的Linux之路(目录配置)
-
OpenStack的探索之路——基础理论精讲篇
-
Re:从零开始的Linux之路(杂谈)
-
Linux基础篇之CentOS的网络配置(DHCP,静态)
-
从零开始的java学习Day16----------基础篇(函数式编程思想、函数式接口)
-
从零开始的java学习Day11----------基础篇(Java中的双列集合、泛型、可变类型)