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
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不支持)
来源:CSDN
作者:BluE 0
链接:https://blog.csdn.net/weixin_46010524/article/details/103653273