Linux基础
用户类型:
root:管理用户,权限巨大对系统破话能力大,非必要不要登录root避免误操作
user:普通用户,权力较小对系统破化能力有限
终端:
控制台终端:/dev/console
串行终端:/dev/tty
虚拟终端:tty 可以有n个
图形终端:startx,xwindows
伪终端:pty
查看终端命令:tty
接口
交互式接口:终端启动后,在终端设备附加的交互式应用程序
接口类型:
- GUI
- CLI
shell
shell是Linux系统用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并送去内核执行shell也叫Linux命令解释器是一种程序设计语言
shell类型:
- sh
- bash
- csh
- tcsh
- ksh
- zsh
其中bash shell 是GNU计划的重要工具之一,也是目前linux的标准shell和sh兼容
显示当前使用shell命令:echo ${SHELL}
显示系统使用的所有shell cat /etc/shells
主机名
临时修改主机名:hostname name
centos7永久修改主机名改配置文件:/etc/hostname
命令提示符
#管理员
$普通用户
显示提示符格式:echo $PS1
修改提示符格式:PS1="\[\e[1;33m\][\u@\h \W]\\$\[\e[0m\]"
永久修改提示符格式写进文件:/etc/profile.d/env.sh
shell命令的分类
- 内部命令:shell自带命令,通过某命令形式提供
- 外部命令:在文件系统路径下有对应的可执行程序文件
查看指定命令类型:type command
选项:-a :查看是否对应内部和外部命令
内部命令:
内部命令列表:help
管理内部命令:enable
-enable command 启用内部命令
-enable -n command 禁用内部命令
-enable -n 查看被禁用的所有内部命令
外部命令:
查看外部命令:which,whereis
选项:-a
hash缓存:
系统初始hash为空,执行外部命令时,系统会从PATH路径下寻找命令,找到后会放在hash缓存里,下次执行该命令时,系统会首先冲缓存表里找,如果没有在去PATH路径下找,利用缓存会提提高命令的调用效率
hash命令:
显示缓存:hash
-l 显示缓存,做输入使用
-p path name 将路径起别名
-t name 打印缓存中name的路径
-d name 清除name缓存
-r 清除缓存
命令别名
别名的定义可以使较长的命令变的方便使用
注意:别名定义后优先级高于原名,要想使用原名需要在命令前面加上 \ 或 " " 或 ’ ’
显示所有别名 alias
定义别名 alias command='name'
撤销别名:unalias -a name
撤销所有别名 unalias -a
永久保存别名写进文件:/etc/bashrc
使配置文件生效:. /etc/bashrc
命令格式:
command [option] [parameter]
时间日期命令:
显示时间:date
设置时间:date -s 'parameter'
显示硬件时间:clock 或 hwclock
以硬件时间校准:clock --hctosys
以系统时间校准:clock --systohc
时区文件:/etc/localtime
显示日期:cal
-y 显示全年
关机和重启:
关机:halt 或 poweroff
重启:reboot
强制重启 reboot -r
关机重启综合命令:shutdown [option] [parameter]
查看当前登录用户信息:
显示当前登录有效用户 whoami
系统当前所有的登录会话和所做的操作 who
文本编辑工具:
nano:可以编辑文本,例如写永久保存的操作到文件里,永久修改提示符颜色的env.sh文件不存在可以使用nano来编辑
会话
打开一个终端窗口,在里面输入命令,用户与计算机的临时交互称为会话,ssh远程连接就是一种会话
特点:窗口于其中启动的进程是连载一起的,结束窗口会话也会结束
字符集和编码
ASCII码:
计算机内部所有信息最终都是一个二进制值,ASCII就是对英语字符和二进制位之间的关系做了一个统一规定
ASCII 码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为0
Unicode:
unicode是为了表示世界上所有语言中的所有字符,每一个符号都给予一个独一无二的编码数字,unicode是一个很大的集合,现在的规模可以容纳100多万个符号。unicode 仅仅是一个字符集,规定了每个字符对应的二进制代码,但是二进制代码如何存储没有规定
Unicode编码方案:
UTF-8 变长 1-4个字节
UTF-16 变长 2-4个字节
UTF-32 固定长度 4个字节
UTF-8是目前互联网上使用最广泛的一种unicode编码方式,可以变长存储。
扩展集合
命令行扩展
把命令的输入打印给另一个命令参数:$(command) or ’command` #两个反引号
例子
echo $(hostname) or echo `who`
括号扩展
{} 可以实现重复打印字符串的简化形式,扩展括号里的内容
例子
echo {1..10}
echo filr{1..10}
TAB补全
tab键可以补全未写完的命令和路径,可以提高安全效率并且帮助了学习linux,对于命令可以不用死记硬背,给出关键字后按tab键可以显示出所有系统中有的类型命令
帮助
运维生涯里最重要的技能获取帮助
命令 whatis
使用数据库来显示命令的简短描述 刚安装后不可立即使用,需要制作数据库
格式:whatis cal
命令:help
help帮助可以在你无法想起这个命令的选项格式的时候帮助你查看该命令的
内部命令格式:help command
外部命令和软件:command --help
格式:man [option] [command]
info是man常用的参考命令
格式 info [command]
man 提供命令帮助的文件,手册页存放在/usr/share/man,几乎每个命令都man手册,中文版的man需要按照包man-pages-zh-CN
命令:man
配置文件地址:/etc/man.config or /etc/man_db.conf
其他的要去各大官方网址查看官方文档
命令行历史
每当执行一次操作系统会保存输入的命令历史,可以用来重复执行命令
命令 history
选项:
-c:清除命令历史
-d:删除指定的命令
-n:显示最近n条记录
-a:最近本次会话新执行的命令到历史文件
…不多写了,用help可以查看到选项
命令历史相关的环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T " 显示时间
HISTIGNORE=“str1:str2*:…” 忽略str1命令,str2开头的历史
HISTCONTROL:控制命令历史的记录方式 ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复” ignorespace 忽略所有以空白开头的命令ignoreboth 相当于ignoredups, ignorespace的组合 erasedups 删除重复命令
想持久保存变量可以写进配置文件:/etc/profile 或者 ~/.bash_profile
格式:export HISTCONTROL=ignoreboth
bash快捷键
Ctrl + l 清屏
Ctrl + s 阻止屏幕输出
Ctrl + q 允许屏幕输出
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首
Ctrl + e 光标移到命令行尾
Ctrl + b 光标向左移动一个字符
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + xx 光标在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Ctrl + d 删除光标处的一个字符
Ctrl + h删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + # 提示输入指定字符后,重复显示该字符#次