Linux入门基础二

♀尐吖头ヾ 提交于 2019-12-22 17:04:23

Linux基础入门二

1.1字符集和编码

字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

字符编码(Character Encoding):是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。

常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字

1.1.1 ASCII码

计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定,即ASCII(American Standard Code for Information Interchange)码

ASCII码一共规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为0
ASCII
ASCII扩展

1.1.2 Unicode

ASCII的最大缺点是只能显示26个基本字母、阿拉伯数和一些英式标点。处理中文一个字节显然是不够的。至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。当计算机传到各个国家时,当地都有一套类似GB2312的编码,在本地使用没问题,但是一旦出现在网络中,互相访问就出现了乱码现象。为了解决这个问题,伟大的Unicode就产生了。

计算机科学领域中,Unicode统一码万国码单一码标准万国码)是业界的一种标准,它可以使电脑得以体现世界上数十种文字的系统。Unicode 是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式[1]对外发表。Unicode 还不断在扩增, 每个新版本插入更多新的字符。

Unicode编码方案

  • UTF-8:变长,1到4个字节
  • UTF-16:变长,2或4个字节
  • UTF-32:固定长度,4个字节

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码定长码),也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件网页及其他存储或传送文字的应用中,优先采用的编码。互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zWMFCVU-1576997521533)(Linux入门基础二.assets/TIM图片20191221172107.png)]

注:修改LANG变量实现中文语言提示

[root@centos7 ~]#LANG=zh_CN.UTF-8 
[root@centos7 ~]#echo $LANG 
zh_CN.UTF-8

编码转换和查询:

https://javawind.net/tools/native2ascii.jsp?action=transform

1.2命令别名

alias:显示当前显示当前shell进程所有可用的命令别名

定义别名

[root@centos8 ~]#echo "alias free='free -h'" >> .bashrc

unalias :撤销别名

unalias -a #取消所有别名
unalias -a  cat #取消cat的别名

注释:

.bashrc 当前用户永久生效

/etc/bash.rc 对所有用户有效

source /path/to/config_file 
. /path/to/config_file 
# 重新生效配置文件 bash进程重新读取

如果别名同名需要执行原命令

\ALIASNAME “ALIASNAME” 
‘ALIASNAME’
command ALIASNAME 
/path/commmand

1.3命令格式

COMMAND [OPIIONS...] [ARGUMENTS...]

选项:用于启用或关闭命令的某个或某些功能

  • 短选项:UNIX 风格选项,-c 例如:-l, -h
  • 长选项:GNU风格选项,–word 例如:–all, --human
  • BSD风格选项: 一个字母,例如:a

参数:命令的作用对象,比如:文件名,用户名等

[root@Centos7 data]#wc -l /etc/passwd
56 /etc/passwd

注意:

  • 多个选项以及多参数和命令之间使用空白字符分隔
  • 取消和结束命令执行:Ctrl+c,Ctrl+d
  • 多个命令可以用 “;” 符号分开
  • 一个命令可以用\分成多行

1.4 基础命令

1.4.1 时间与日期

系统时钟:由Linux内核通过CPU的工作频率进行的

硬件时钟:主板相关命令

date :显示或设置系统时间与日期。

[root@Centos7 data]#date -d "1 day ago" +"%Y-%m-%d"
2019-12-20   #显示昨天的日期
[root@Centos7 data]#date "+%F %T"
2019-12-21 17:54:46 #显示当前日期
[root@Centos7 data]# date -s "2019-12-21 06:05:10"
Sat Dec 21 06:05:10 CST 2019 #设置当前时间

clock:显示硬件时间

-s, --hctosys 以硬件时钟为准,校正系统时钟

-w, --systohc 以系统 时钟为准,校正硬件时钟

[root@Centos7 data]#ll /etc/localtime #时区
lrwxrwxrwx. 1 root root 35 Dec  9 09:39 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

1.4.2 关机和重启

关机:

  • halt
  • poweroffff
  • init 0

重启:

reboot -f: 强制,不调用

shutdown -p: 切断电源

shutdown: 重启关机

shutdown [OPTION]... [TIME] [MESSAGE]

-r: reboot

-h: halt

-c:cancel

TIME:无指定,默认相当于+1(CentOS7)

now: 立刻,相当于+0 +#:

相对时间表示法,几分钟之后;例如 +3 hh:mm: 绝对时间表示,指明具体时间

[root@Centos7 data]#shutdown -h 18:30 "it is will poweroff at 18:30" #今天18:30自动关机,并提示用户

1.4.3用户登录信息查看命令

whoami: 显示当前登录有效用户

who: 系统当前所有的登录会话

w: 系统当前所有的登录会话及所做的操作

1.4.4文本编辑

nano 工具可以实现文本的编辑,上手容易,适合初学者

1.4.5输出信息

echo :

可以将后面跟的字符进行输出 功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号

选项:

-E (默认)不支持 \ 解释功能

-n 不自动换行

-e 启用 \ 字符的解释功能

显示变量

echo "$VAR_NAME” #变量会替换,弱引用 
echo '$VAR_NAME’ #变量不会替换,强引用

启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

  • \a 发出警告声
  • \b 退格键
  • \c 最后不加上换行符号
  • \e escape,相当于\033
  • \n 换行且光标移至行首
  • \r 回车,即光标移至行首,但不换行
  • \t 插入tab
  • \ 插入\字符
  • \0nnn 插入nnn(八进制)所代表的ASCII字符
  • \xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
[root@localhost ~]#echo -e '\a'

1.5命令行扩展和被括起来的集合

1.5.1命令行扩展:
把一个命令的输出打印给另一个命令的参数

$(CMD) 或 `CMD`
echo "i am `whoami` " 
i am root

1.5.2 括号扩展:{ }

{} 可以实现打印重复字符串的简化形式

[root@localhost data]#touch a{1..4}
[root@localhost data]#ll
total 0
-rw-r--r-- 1 root root 0 Dec 22 01:45 a1
-rw-r--r-- 1 root root 0 Dec 22 01:45 a2
-rw-r--r-- 1 root root 0 Dec 22 01:45 a3
-rw-r--r-- 1 root root 0 Dec 22 01:45 a4

1.6 tab键补全

tab键可以实现命令及路径等补全,提高输入效率,避免出错

1.6.1命令补全

  • 内部命令:
  • 外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令

注意:用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab会给出列表

1.6.2路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名 如果惟一:则直接补全 否则:再次Tab给出列表

1.6.3双击Tab键

  • command 2Tab 所有子命令或文件补全
  • string2Tab 以string开头命令
  • /2Tab 显示所有根目录下一级目录,包括隐藏目录
  • ./2Tab 当前目录下子目录,包括隐藏目录
  • *2Tab 当前目录下子目录,不包括隐藏目录
  • ~2Tab 所有用户列表
  • $2Tab 所有变量
  • @2Tab /etc/hosts记录 (centos7不支持)
  • =2Tab 相当于ls –A (centos7不支持)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!