Linux 入门操作(一)

一、用户登录

root 用户一个特殊的管理帐户也被称为超级用户。

Centos7中root的id是0

[root@centos7 ~]#echo $UID
0
[root@centos7 ~]#id -u
0

普通(非特权 )用户

Centos7普通用户的id是1000

二、终端terminal

设备终端

键盘鼠标显示器


物理终端(/dev/console )

控制台console
在Linux 系统中,计算机显示器通常被称为控制台终端 (Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2 等。当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1–tty6等 称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上(这时也叫控制台终端)


虚拟终端(tty: teletypewriters, /dev/tty# #为[1-6])

tty 可有n个, Ctrl+Alt+F[1-6]


图形终端(/dev/tty7 ) startx, xwindows

CentOS 6: Ctrl + Alt + F7
CentOS 7: 在哪个终端启动,即位于哪个虚拟终端


串行终端(/dev/ttyS# )

ttyS
串 行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为 那时它的最大用途就是用来连接终端。例如, 在命令行提示符下键入:echo test > /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。可接串口来实验。


伪终端(pty: pseudo-tty , /dev/pts/# )

pty, SSH远程连接
伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上)。
例 如/dev/ptyp3和/dev/ttyp3(或者在设备文件系统中分别是/dev/pty/m3和 /dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ptyp3(master设备)看作是一个串行端口设备,则它对该端口的读/ 写操作会反映在该逻辑终端设备对应的另一个ttyp3(slave设备)上面。而ttyp3则是另一个程序用于读写操作的逻辑设备。



查看当前的终端设备: #tty

交互式接口

交互式接口:启动终端后,在终端设备附加一个交互式应用程序

GUI: Graphic User Interface

X protocol, window manager, desktop
Desktop:
GNOME (C, 图形库gtk),
KDE (C++,图形库qt)
XFCE (轻量级桌面)
带桌面的有图像的操作方式属于图形接口

CLI: Command Line Interface

shell程序: sh (bourn 史蒂夫·伯恩) csh tcsh
ksh (korn) bash (bourn again shell)GPL zsh
基于命令行界面的

三、什么是Shell

Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行

shell也被称为LINUX的命令解释器( command interpreter)
shell是一种高级程序设计语言
操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
Shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。
Shell基本上是一个命令解释器,类似于DOS下的command.com。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。

bash shell

GNU Bourne-Again Shell(bash)是GNU计划中重要的工
具软件之一,目前也是 Linux标准的shell,与sh兼容
CentOS默认使用
显示当前使用的shell
echo ${SHELL}
显示当前系统使用的所有shell
cat /etc/shells

四、命令提示符

命令提示符: prompt

[root@centos7 ~]#
root代表当前登录的用户,在Linux中管理员账户是root
centos7 当前计算机主机名
@ 分隔符
~ 当前所在家目录
· #超级用户提示符,普通用户的提示符是$

显示提示符格式

[root@centos7 ~]#echo $PS1

修改提示符格式

PS1="[\e[31m][\u@\h \W]\$[\e[0m]"
\e \033 \u 当前用户
\h 主机名简称 \H 主机名
\w 当前工作目录 \W 当前工作目录基名
\t 24小时时间格式 \T 12小时时间格式
! 命令历史数 # 开机后命令历史数
颜色代码
背景色 字体色
40: 黑 30: 黑
41: 红 31: 红
42: 绿 32: 绿
43: 黄 33: 黄
44: 蓝 34: 蓝
45: 紫 35: 紫
46: 深绿 36: 深绿
47: 白色 37: 白色

执行命令

输入命令后回车
提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来

在shell中可执行的命令有两类

linux中的命令大致可分为两类,内部命令和外部命令

内部命令:由shell自带的,而且通过某命令形式提供,也称shell内嵌命令;

help 内部命令列表
enable cmd 启用内部命令
enable –n cmd 禁用内部命令
enable –n 查看所有禁用的内部命令

外部命令:存放在一个文件中,使用时需要去文件中查找,这些文件被定义在$PATH

[root@centos7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
type命令可以查看命令类型,以区别是内部命令还是外部命令

[root@centos7 ~]# type cd
cd is a shell builtin
[root@centos7 ~]# type ls
ls is aliased to `ls --color=auto'
[root@centos7 ~]# type ifconfig
ifconfig is /usr/sbin/ifconfig

可以看到,cd为shell内嵌命令,ls命令为ls --color=auto的别名,ifconfig命令为外部命令在文件/usr/sbin/ifconfig中
执行外部命令

Hash缓存表

系统初始hash表为空,当外部命令执行时,默认会从
PATH路径下寻找该命令,找到后会将这条命令的路径记录到
hash表中,当再次使用该命令时, shell解释器首先会查看hash
表,存在将执行之,如果不存在,将会去PATH路径下寻找。利
用hash缓存表可大大提高命令的调用速率

hash常见用法

hash 显示hash缓存
hash –l 显示hash缓存,可作为输入使用
hash –p path name 将命令全路径path起别名为name
hash –t name 打印缓存中name的路径
hash –d name 清除name缓存
hash –r 清除缓存

命令别名

显示当前shell进程所有可用的命令别名
alias
定义别名NAME,其相当于执行命令VALUE
alias NAME='VALUE'
在命令行中定义的别名,仅对当前shell进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户: ~/.bashrc
对所有用户有效: /etc/bashrc

编辑配置给出的新配置不会立即生效

bash进程重新读取配置文件
source /path/to/config_file
. /path/to/config_file
撤消别名: unalias
unalias [-a] name [name ...]
-a 取消所有别名
如果别名同原命令同名,如果要执行原命令,可使用
“\COMMAND”
’COMMAND’
/PATH/COMMAND:外部命令

命令的概念

命令的执行过程

系统第一次执行外部命令时Hash缓存表为空,系统会先从PTAH路径下寻找命令,找到后会将路径加入到Hasa缓存中,当再次执行此命令时会直接从Hash的路径下执行,如果存在直接执行,如果不存在将继续从PATH下的路径继续查找,Hash表可以提高命令的调用速率。

命令的优先级

alias -------------------------------------别名
  builtin------------------------------内部命令
    hash-------------------------缓存表
      $PATH---------------可执行程序或脚本(外部命令)

命令执行优先级: 别名>内部命令>hash>外部命令

命令的基本格式

COMMAND [OPTIONS...] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能
短选项: -c 例如: -l, -h
长选项: --word 例如: --all, --human-readable
参数:命令的作用对象,比如文件名,用户名等
注意:
多个选项以及多参数和命令之间使用空白字符分隔
取消和结束命令执行: Ctrl+c, Ctrl+d
多个命令可以用;符号分开
一个命令可以用\分成多行

格式一般是 命令 [选项] [参数]

[]表示可选
个别命令不遵循此格式,当有多个选项时,可以写在一起
简化选项:-a
完整选项:--all
-a = --all

查询目录中的内容:ls
ls [选项] [文件或目录]
选项:
-a:显示所有文件,包括隐藏文件
-l:显示详细信息
-d:查看某属性
-h:人性化显示文件大小
-i:显示inode (i节点,判断文件的所在位置)

ls 显示目录
ls -l 长格式显示(long)

五、简单命令

date 显示日期和时间

Linux的两种时钟

系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板
hwclock, clock: 显示硬件时钟
-s, --hctosys 以硬件时钟为准,校正系统时钟
-w, --systohc 以系统时钟为准, 校正硬件时钟
时区: /etc/localtime
cal 显示日历
cal –y
nano 文本编辑

关机: halt, poweroff

重启: reboot

-f: 强制,不调用shutdown
-p: 切断电源
关机或重启: shutdown
shutdown [OPTION]... TIME [MESSAGE]
-r: reboot
-h: halt
-c: cancel
TIME:无指定,默认相当于 +1
now: 立刻,相当于+0
+m: 相对时间表示法,几分钟之后;例如 +3
hh:mm: 绝对时间表示,指明具体时间

用户登录信息查看命令:

whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作

screen命令:

创建新screen会话
screen –S [SESSION]
加入screen会话
screen –x [SESSION]
退出并关闭screen会话
exit
剥离当前screen会话
Ctrl+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [SESSION]

echo命令

功能:显示字符
语法: echo [-neE][字符串]
说明: echo会将输入的字符串送往标准输出。输出的字
符串间以空白字符隔开, 并在最后加上换行号
选项:
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能

显示变量

echo "$VAR_NAME“ 变量会替换,弱引用
echo '$VAR_NAME‘ 变量不会替换,强引用

启用命令选项-e, 若字符串中出现以下字符,则特

别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
echo -e '\033[43;31;5mmagedu\033[0m'
\xHH插入HH(十六进制)所代表的ASCII字

推荐阅读更多精彩内容