Linux系列02:Linux的基本使用

下载和安装

下载一般去 http://isoredirect.centos.org/centos/7/isos/x86_64/ ,找一个最快的站点,如果网速好的话,使用最小安装即可,不好的可以到网络好的地方下载完全版的ISO,离线使用。

一般通过VMware或开源的VirtualBox安装,如果使用虚拟机提供的引导程序安装可能会漏掉很多安装盘提供的细节,这对于学习不利。

终端

最小化安装是没有图形界面的,一般不建议使用图形界面,一是加载图形界面需要很大的内存,二是图形界面运行的程序越多,安全性越低。

安装完成后看见的第一个界面叫Console,控制台。控制台在系统里是一种设备,虚拟终端,预先设置了6个,分别是tty1-6,使用快捷键Alt+F1-6可切换到对应的终端上。命令tty可查看当前使用的设备。

tty是电传打字机的缩写,以前计算机很稀有,一台计算机要提供给多人使用,于是将电传打字机连接到计算机串口进行登陆使用。现在来看,其实是键盘和显示器组合的一种虚拟的字符设备。

一般没有特殊情况不会使用虚拟终端,而是使用SSH远程登陆到服务器上。使用虚拟终端需要连接到真实的机器或虚拟机,而且粘贴复制不方便,网页上登陆虚拟终端使用服务商自定义的协议,有风险,而且速度很慢。

通过SSH或图形界面中的终端登陆时,使用的是模拟终端,pts,另外通过串口登陆的终端叫着ttyS。

桌面

如果确实需要使用图形界面,可以安装Gnome桌面,yum groupinstall 'GNOME Desktop',然后使用startx &或者ALT+F7切换到图形界面。图形界面使用遵守一种称为X协议的窗口管理器程序,在该程序上运行一个桌面程序,供用户点击使用。

Linux中桌面最常用的就是Gnome,使用C语言和GTK图形库开发的,比较稳定,还有KDE桌面,使用C++和QT图形库开发,此外还有轻量级的Xfce

编码

很多人希望使用中文的系统,不用那么难懂,实际环境不建议使用中文,因为,应用中可能有很多脚本,脚本是根据英文运行的,比如获取系统上某个环境变量的值,如果获取的是中文,脚本可能出现异常。但是,学习时,可以临时使用熟悉的中文。

CentOS7中修改/etc/locale.conf,将en_US.UTF-8修改为zh_CN.UTF-8

使用命令修改:sed -i "s/en_US/zh_CN/g" /etc/locale.conf,然后reboot重启

CentOS6中配置文件:/etc/sysconfig/i18n

时间与时区

CentOS7有个简单的命令timedatectl来修改时间,设置时区等。

date命令查看当前时间,date "+%F %T"按照2019-04-14 23:22:13格式显示

设置时间:date -s "2019-04-14 23:22:13"或timedatectl set-time "2019-04-14 23:22:13"

设置硬件时间:hwclock -w

修改时区:ln -nfs /usr/share/zoneinfo/PRC /etc/localtime,一般使用软链接,不使用cp,因为,默认/etc/localtime文件就是时区文件的软链接,使用cp会使原时区文件被覆盖。

时间同步

实践中必须要保证系统时间准确,因为,会使使用者觉得应用不够成熟;第二个是,多个服务器有交互时,时间不准确,可能导致应用出问题,比如MySQL同步等;第三,很多应用不允许时间误差太大,比如OSS对象存储。

时间同步方式主要有两种,一种是定时任务5分钟对一下时,这种可能导致某些计划任务执行多次,因为时间可能倒流了,再就是同步的唯一一台时间服务器出问题,本机时间也就出问题。第二是开启NTP服务自动对时,但有安全风险,以前ntp服务不够成熟时,被攻击过。

手动同步:ntpdate -u ntp1.aliyun.com

同步时间可以使用ntp或者更新的chrony,chrony默认仅把自己当作客户端,比NTP稍安全。如果觉得国外时间服务器不好,可以改成阿里云的。

yum install chrony,systemctl start chronyd,systemctl enable chronyd

Bash

登陆进入命令行后的程序是Bash,一种shell,即操作系统为用户开放的一个接口,可以接受用户输入的命令运行。输入的命令一般都是系统命令,即系统调用。

shell有很多种,bash是最常见的一种,还有sh,它的shell的最初版本,现在与bash等价,后来又有csh,tcsh,ksh,zsh等。$SHELL记录当前的shell类型,/etc/shells记录当前可用的shell类型。最小安装只有bash和nologin可用。nologin用于给非登陆用户使用的。yum install zsh可以安装极客常用的zsh。

bash可以通过PS1变量定制显示的提示内容,默认为[\u@h W]$。man bash然后搜索PS1可以查看各个字符的含义。

命令缓存

hash命令可以查看当前缓存的命令及其路径。help hash可以查看帮助,hash -r清空所有缓存。

配置文件

Bash的全局配置文件在etc目录中,个人配置文件在家目录中,也就是~/中,一般为/home/USERNAME。

配置文件分为两类,环境变量及登陆后的程序类profile,函数及别名类bashrc。

配置文件路径:/etc/bashrc、/etc/profile、/etc/profile.d/、~/.bashrc、~/.bash_profile

交互式登陆,就是要输入用户名密码的登陆和su - USERNAME等

依次加载:/etc/profile.d/*.sh、/etc/profile、/etc/bashrc、~/.bashrc、~/bash_profile

非交互式登陆,桌面中打开终端和su USERNAME等

依次加载:/etc/profile.d/*.sh、/etc/bashrc、~/.bashrc

所以,全局变量可以设置在/etc/profile.d/*.sh中,命令别名可以设置在~/.bashrc

仅仅开机并不会加载任何配置文件,而是登陆后才加载配置文件。

命令历史

history可以查看以前执行的命令,help history查看帮助。

history -d 3删除第三条,history -c清空历史

HISTCONTROL配置忽略以空格开头的命令和重复的命令,ignorespace、ignoredups、ignoreboth

HISTFILE配置命令历史的保存文件

HISTFILESIZE配置历史保存条数

HISTSIZE配置显示条数

快捷运行符号:!!执行上一条命令,!STRING执行最近一条以STRING开头的命令,!#执行第#条命令

命令别名

alias直接运行可以看到已经设置的别名,特别是rm,mv,cp都使用了-i选项,将文件删除覆盖时会提示确认。预置的命令别名都是很有用的,很多都有着色。

alias gs='git status'可将gs设置为git status的别名,unalias gs可删除该别名,或者gs,执行该命令本身,直接执行mv是非常危险的。重新登陆会失效,可以设置到配置文件~/.bashrc中。

通配符

*任意长度字符,?单个字符,[XYZ]匹配括号中的一个,如果使用-,则表示范围内的一个,[^XYZ]表示非此范围内任意一个字符

快捷键

Ctrl+c取消执行,Ctrl+l清屏,Ctrl+a到行首,Ctrl+e到行尾,Ctrl+u删除到行首的字符,Ctrl+k删除到行尾的字符

重定向

Linux中命令有正常的输出,错误输出和输入三种流向。

CMD > FILE,将正常输出写入FILE中,是覆盖写入,一般使用>>来追加写入,CMD 2 >> FILE,将错误输出追加写入到文件FILE,而正常输出直接打印到终端上。&> FILE,合并正常输出和错误输出,并写入文件。&> /dev/null,null是一个特殊的设备文件,写入其中的任何东西都会删除,即不显示输出,等同于>> FILE 2>> &1。

tee可同时重定向输入到输出和文件,echo "example" | tee FILE

输入重定向,可以使用管道|或<,但是,并不是所有命令都接受输入

echo "hello" | tr 'a-z' 'A-Z' 显示HELLO

帮助

内建命令使用help或man bash,外部命令使用man,开源项目可以查看官方文档。

显示中文帮助文档,yum install man-pages-zh-CN,export LANG="zh_CN.UTF-8",man CMD

进入帮助页面后,按q退出,/word搜索,n下一个,N上一个,快捷键同less,G跳到最后一行,g首行

man帮助分为多章,查看某个配置文件的帮助可以使用配置文件的全路径

使用whereis可以搜索命令,配置文件,以及源码所在的位置,及帮助文件的章节

type CMD查看命令类型

命令的查找路径:$PATH

对于常用的命令,也可以使用TLDR(Too Long Don't Read),浏览器访问tldr.sh

python安装,yum install python-pip,pip install tldr,tldr less

关机

关机,shutdown -h now,halt,poweroff

3分钟后关机shutdown -h +3,shutdown -c取消

重启,reboot,shutdown -r now

查看登陆信息

whoami,当前终端上登录的用户名,等同于id -un

who,显示登录至当前系统的所有用户,及其登陆时间,IP地址和终端

w,是who的详细信息版,不仅显示who显示的内容,还显示用户正在执行的命令,还显示运行时间,CPU负载,登陆用户数,终端的CPU负载,用户空闲时间,当前运行程序的负载等。

猜你喜欢

转载自www.cnblogs.com/dtdg777/p/10706350.html