一、Linux终端介绍 Shell提示符 Bash Shell基本语法
tty 查看当前登入的信息
1.1 不同终端之间的通信
[root@hui36 ~]# tty
/dev/pts/1
[root@hui36 ~]# echo "hellow" > /dev/pts/1
1.2 对所有终端广播,10分钟后关机
方法一:
[root@hui36 ~]# shutdown +10 #所有终端都会受到消息 shutdown -c #取消关机
方法二:
[root@hui36 ~]# wall "I will shutdown in 10 minutes-LH" Broadcast message from root@hui36.com (pts/1) (Fri Nov 2 23:14:59 2018): I will shutdown in 10 minutes-LH
1.3 shell
Shell俗称壳,它提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行
Shell实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
查看系统的shell,一般都是使用bash(其他的介绍:)
[lh@hui36 /root]$ more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh //c风格增强版 /bin/csh //c风格
查看当前使用的shell
[root@xuegod63 ~]# head -1 /etc/passwd root:x:0:0:root:/root:/bin/bash
二、基本操作命令
2.1 ls
ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等,长列表 ls -a 列出所有的文件,包含隐藏文件(.开头的文件和.与..) ls -d 查看目录,不查看里面的内容
ls -S sort=size
第一个字符文件类型中:
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
-: 表示普通文件
颜 色 |
代表内容 |
举 例 |
蓝色 |
目录 |
/etc |
黑色 |
文件 |
/etc/passwd |
浅蓝色 |
链接 |
/etc/grub2.cfg |
红色 |
压缩包 |
boot.tar.gz |
绿色 |
可执行文件 |
/etc/init.d/network |
黑底黄字 |
设备文件 |
/dev/sda |
2.2 alias 别名
alias 可以看到我们的所有别名
type -a 命令 可以看到命令的所有,别名是优先的
type ll 可以看到 ll 是 ls -l --colore=auto的别名
2.2.1 临时别名
1.定义别名-系统重启就会失效
[root@hui36 ~]# alias vimens33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
2.使用别名
vimens33
3.删除别名
unalias vimens33
2.2.2 永久别名
1.每个用户自己设置别名:
编辑每个用户的家目录下的 ~/.bashrc 文件最最后插入
alias vimenss33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
要想立即生效需 source ~/.bashrc 导入一下,不然只有重新登入生效
2.所有用户生效
/etc/profile 这个全局shell配置,在末尾加上,其他同上。
2.3 cd
作用:切换目录(change directory)
语法:cd 目录
说明:直接输入cd表示回到当前用户的宿主(家)目录
cd 切换到宿主的家目录 cd . 切换到宿主当前目录 cd .. 切换到上一级目录 cd - 切换到上一次工作目录
2.4 history
命令:history 4个快速查找Linux历史命令的技巧: 方法1: 光标上下键 方法2: ctrl+r -》输入某条命令的关键字-》找出来对应的命令,按右光标键 方法3: !数字 //执行历史命令中第N条命令 方法4:!字符串 //搜索历史命令中最近一个以xxxx字符开头的命令,例如!vim
2.5 linux下快捷键
都是用Ctrl+下面的单词, ^表示Ctrl ^C 终止前台运行的程序 , 如:ping g.cn 后,想停止按下Ctrl+C ^D 退出 等价exit ^L 清屏与clear功能一样 ^R 搜索历史命令,可以利用好关键词 !$ 引用上一个命令的最后一个参数 [root@xuegod63 network-scripts]# cat /etc/hosts [root@xuegod63 network-scripts]# vim !$ #相当于执行: vim /etc/hosts
三、系统时间管理
在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟;系统时钟则是指kernel中 的时钟;
所有Linux相关指令与函数都是读取系统时钟的设定
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作
3.1 两种时间
硬件时间:hwclock
系统时间:date
时区:
- UTC (Universal Time Coordinated):世界标准时间
- GMT (Greenwich Mean Time):格林尼治时间
- CST (China standard Time):中国标准时间
3.2 格式化输出时间
- %Y 年份
- %m month (01..12)
- %d 按月计的日期(例如:01)
- %M minute (00..59)
- %H 小时(00-23)
- %S 秒(00-60)
date '+%F' 2018-03-20 date "+%Y-%m-%d %H:%m:%S" 2018-03-20 21:03:53
中间的符号可自定制
3.3 修改时间
date --help
-s, --set=STRING 把时间设为字符串所描述的时间
例: [root@xuegod63 ~]# date -s "2018-11-2 22:30" 2018年 11月 02日 星期五 22:30:00 CST
3.4 指定间隔时间做脚本
-d, --date=STRING
显示由 STRING 指定的时间, 而不是当前时间
date -d "+1 days" +"%F" 一天后 date -d "+1 mouths" +"%F" 一月后
3.5 time测试命令运行时间
time 作用:一般用来测量一个命令的运行时间
使用方法:time 在后面直接跟上命令和参数
[root@xuegod63 ~]# time ls -l /etc/
real 0m0.056s
user 0m0.016s
sys 0m0.040s
说明:
real:实际使用时间 = 下面两者之和
user:用户状态使用的时间 = bash到内核的路上
sys:内核状态使用的时间 = 执行时间
四、帮助命令使用
man 命令
命令 -h 或 --help
五、关机与7个启动级别
5.1 关机命令
init :切换启动级别
reboot :重启
poweroff:关机
shutdown:调用init 0,1等级别来关机,可定时与发送通知
[root@xuegod63 ~]# shutdown -h +10 #10分钟之后关机 [root@xuegod63 ~]# shutdown -h 23:30 #指定具体的时间点进行关机 [root@xuegod63 ~]# shutdown -h now #立即关机 [root@xuegod63 ~]#shutdown -r 22:22 #22:22 以后重启
5.2 运行级别
5.2.1 运行级别
默认有7个级别
- 0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
- 1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
- 2 多用户模式,没有NFS和网络支持
- 3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
- 4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
- 5 图形化模式,登陆后进入图形GUI模式,X Window系
- 6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启
[root@localhost ~]# init 0 #关机 [root@localhost ~]# init 3 #进入3级别字符界面 [root@localhost ~]# init 5 #进入5级别图形界面 [root@localhost ~]# init 6 #重启
5.2.2 修改默认的启动级别
centos7之前 直接修改 /etc/inittab中的文件 id:3:initdefault , 将3改为5 ,重新启动系统
centos7 查看/etc/inittab已经不支持,为了统一命令,都是使用systemctl set-default multi-user.target(或runleaveN)
获取当前的启动级别
systemctl set-default
设置默认第三启动级别
[root@xuegod63 ~]# systemctl set-default multi-user.target
设置默认第五启动级别 [root@xuegod63 ~]# systemctl set-default graphical.target
runleave 查看当前的运行级别 3 5 表示从3到5的切换