Linux基础入门
前言
选择马哥机构主要还是朋友的推荐,经过这几天的学习,就我的感觉来说,老师讲的内容还是非常详细的,一天学习一天练习的教学模式也更容易让我们学习吸收课间内容,我个人觉得是非常不错的一种教学模式。
1、Linux基础
1.1用户类型
- Linux系统用户分为普通(非特权)用户和超级(root)用户
- 普通用户:普通用户权限较小,没办法执行一些危险的操作,使用起来更加安全,在工作环境中更加推荐使用。
- 超级用户:超级用户权限较大,可以执行一些危险的操作,使用起来需要更加小心,容易引发一些不可挽回的误操作,所以更加推荐在工作环境中普通用户无法操作时临时切换到超级用户操作结束后再切换回普通用户使用。
普通用户:[11:39:08 bo@CentOS7\ [ ~]$
提示符显示为$
超级用户:[13:54:13 root@CentOS7\ [ ~]#
提示符显示为#
1.2终端terminal
1.2.1 终端类型
- 控制台终端:/dev/console
- 串行终端:/dev/ttyS#
- 虚拟终端:tty:teletypewriters,/dev/tty# tty可以有n个,Ctrl+Alt+F#
- 图形终端:startx,xwindows
CentOS 6:Ctrl+Alt+F7
CentOS 7:在哪个终端启动,即位于哪个虚拟终端
- 伪终端:pty:pseudo-tty,/dev/pts/# 如:ssh远程连接
1.2.2查看当前终端设备
范例:
[17:55:54 root@CentOS7\ [ ~]#tty
/dev/pts/1
1.3查看shell类型
显示当前使用的shell
[17:56:01 root@CentOS7\ [ ~]#echo {$SHELL}
{
/bin/bash}
显示当前系统使用的所有shell
[18:08:20 root@CentOS7\ [ ~]#cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
1.4设置主机名
hostname name
范例:
[18:09:53 root@CentOS7\ [ ~]#hostname zhang
[18:16:09 root@CentOS7\ [ ~]#exit
logout
Connection closed by foreign host.
Disconnected from remote host(10.0.0.103(CentOS7)) at 18:16:33.
Type `help' to learn how to use Xshell prompt.
[d:\~]$
Reconnecting in 1 seconds. Press any key to exit local shell.
.
Connecting to 10.0.0.103:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Last login: Thu Dec 12 11:36:31 2019 from 10.0.0.1
[18:16:34 root@zhang\ [ ~]#
1.5命令提示符
显示提示符格式:
[18:18:38 root@zhang\ [ ~]#echo $PS1
\[\e[1;36m\][\t \[\e[1;33m\]\u\[\e[36m\]@\h\ [\e[1;36m\] \W\[\e[1;36m\]]\[\e[0m\]\$
提示符格式说明:
- \e 控制符\033
- \u 当前用户
- \h 主机名简称
- \H 主机名
- \w 当前工作目录
- \W 当前 工作目录基名
- \t 24小时时间格式
- \T 12小时时间格式
- ! 命令历史数
- #开机后命令历史数
要想让提示符格式相关变量PS1持久保持,必须把PS1写入文件内
范例:利用echo
把PS1写入指定文件内使PS1持久保持生效
[20:50:12 root@zhang\ [ ~]#cat /etc/profile.d/env.sh
[20:50:17 root@zhang\ [ ~]#echo 'PS1="\[\e[1;36m\][\t \[\e[1;33m\]\u\[\e[36m\]@\h\ [\e[1;36m\] \W\[\e[1;36m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh
[20:50:40 root@zhang\ [ ~]#cat /etc/profile.d/env.sh
PS1="\[\e[1;36m\][\t \[\e[1;33m\]\u\[\e[36m\]@\h\ [\e[1;36m\] \W\[\e[1;36m\]]\[\e[0m\]\\$"
可以看到,一开始用cat
命令查看env.sh文件里是没有东西的,用echo
命令把PS1写入后,再用cat
可以看到env.sh文件里有需要保存的PS1了。
1.6命令类型
命令类型主要分为内部命令和外部命令
- 内部命令:由shell自带命令,可通过某命令形式提供
- 外部命令:在文件系统路径下有对应的可执行程序文件
范例:查看是否存在对应的内部和外部命令
[15:41:33 root@CentOS8\ [ ~]#type -a echo
echo is a shell builtin
echo is /usr/bin/echo
内部命令相关
help
内部命令列表
enable
管理内部命令
enable cmd
启用内部命令enable –n cmd
禁用内部命令enable –n
查看所有禁用的内部命令
外部命令相关
which
可以查询外部命令路径
whereis
可以显示所有的配置文件路径
命令别名
对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行
alias
可显示当前shell进程所有可用的命令别名
[16:34:18 root@CentOS8\ [ ~]#alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='mv -t /data/rm/'
alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'
alias