一:用户登录
root用户:管理员账户,也被称为超级用户,root拥有对Linux系统的所有权限,一般不用root用户登录系统
普通用户:权限受到限制,只可以对自己有权限的文件进行操作
每个用户都有唯一编号 UID 为0的是管理员
查看UID
Centos6 普通用户从500开始
Centos7 普通用户从1000开始
二:终端(terminal)
终端:
- 设备终端:鼠标,键盘,显示器
- 物理终端:控制台(/dev/console)
- 虚拟终端:/dev/tty[1-6] 在物理机旁边可以使用Alt+F[1-6]进行切换
- 串行终端:/dev/ttyS
- 伪终端:/dev/pts/# 通过ssh远程即可打开一个伪终端
Ctrl+alt+F[1-6] 切换字符界面终端
Chvt+数字 切换字符界面终端
tty 查看终端号tty(本地终端) pts(远程终端)
常用命令
halt 、poweroff 关机
shutdown[OPTION]... TIME [MESSAGE] 关机或重启
-r +TIME 重启
TIME: now立刻执行,+m相对时间,几分钟后执行,hh:mm绝对时间,具体时间关机
-h +TIME 关机(定时)
-c 取消关机
reboot 重启
runlevel 查看当前模式
init
0 关机
3 切换成字符模式
5 切换成图形界面(开启相关程序)(需要权限)
6 重启
echo [-neE] [arg ...] 显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
-e 启用\字符的解释功能
-n 不自动换行
w 系统当前所有的登录会话及所做的操作
who 显示当前系统所有的登录会话
whoami 显示当前登录的用户
su 变更用户
useradd 增加用户
passwd 设置用户密码
Wall 发广播
nano 文本编辑器
交互式接口
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
GUI(Graphic User Interface):及图形化窗口,常见图形桌面有GNOME、KDE和XFCE等,CentOS默认为GNOME桌面
CLI(Command Line Interface):及命令行窗口,常用的shell有sh、csh、tcsh、ksh、bash和zsh等,默认shell为bash
可以看到系统支持的shell
shell:
shell也被称为LINUX的命令解释器(command interpreter)。是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。同时shell也是一种高级程序设计语言,即bash脚本语言
bash:
GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是Linux标准的shell,与sh兼容。同时也是CentOS的默认shell。
三:命令(COMMAND)
命令分类
shell中的命令有俩类,内部命令和外部命令;
多个命令可以用;符号分开
一个命令可以用\分成多行
help或enable 可以列出内部命令列表。
Ctrl+c 关闭软件、取消命令
Ctrl+d 结束命令
内部命令:由shell自带,而且通过某命令形式提供
enable
cmd 启用内部命令
-n cmd 禁用内部命令
-n 查看所有已禁用的内部命令
外部命令:在文件系统路径下有对应的可执行文件,可使用:
which --skip-ailas cmd 查看命令可执行文件的路径
type 判断命令是内部命令还是外部命令(如果显示路径则是外部命令)
Hash缓存
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。利用hash缓存表可大大提高命令的调用速率。
hash
-l 显示hash缓存
-p path cmd 将命令全路径path起别名为cmd
-t cmd 打印缓存中name的路径
-d cmd 清除cmd缓存
-r 清除全部缓存
命令别名(alias)
alias 显示当前shell中已定义的命令别名
CMD=‘VALUE’ 定义别名
unalias name 取消别名
-a 取消所有别名
日期和时间
Linux分为俩种时钟,系统时钟和硬件时间,系统时间由CPU振荡器计时,硬件时间为主板BIOS时间
date 可以用来显示或设定系统的日期与时间。
-d<字符串>: 显示字符串所指的日期与时间。
-s<字符串>: 根据字符串来设置日期与时间。
hwclock, clock : 显示硬件时钟
-s, --hctosys 以硬件时钟为准,校正系统时钟
-w, --systohc 以系统时钟为准,校正硬件时钟
tzselect(CentOS6.x)
timedatectl(CentOS7.x)
list-timezone 列出所有时区
set-timezone “时区” 设置时区
status 列出当前时区
/usr/share/zoneinfo/Asia/Shanghai 时区
/etc/localtime 时区
cal -y 显示日历
history命令详解
usage:
- history [-c] [-d offset] [n]
- history -anrw [filename]
- history -ps arg [arg...]
history: 显示命令历史记录
HISTORY相关变量
变量的赋值方法:
export 变量名=“值”
存放到/etc/profile 或~/.bash_profile中,不建议修改/etc/profile文件
命令历史
命令在执行后命令历史会保存到内存中,当退出shell时这些命令历史会自动追加到~/.bash_history文件中
当登录shell时则会从~/.bash_history文件重新读入内存
四、bash使用技巧
引用
双引号(""):弱引用,可识别变量,但是不识别命令
[root@centos6 ~]#echo "ls $HISTSIZE" ls 1000
单引号(''):强引用,变量和命令统统不识别,以字符串输出
[root@centos6 ~]#echo 'ls $HISTSIZE' ls $HISTSIZE
反引号(··):命令引用,执行被引用的命令,并输出结果,和“$()”功能相同
[root@centos6 ~]#echo `echo $HISTSIZE` 1000
扩展
{}:括号内的参数分别和外部参数做笛卡尔乘积
[root@centos6 ~]#echo file{1..5}{6,7,8} file16 file17 file18 file26 file27 file28 file36 file37 file38 file46 file47 file48 file56 file57 file58
bash快捷键
命令补全
当输入一个命令字符开头可以表示唯一性时,按下tab键即可补全命令。
如果命令开头字符串不足以唯一标示一个命令时,按下2次tab键可显示所有以此字符串开头的命名。
文件路径补全和命令补全用法相同,如果不是唯一文件或文件夹名时则显示当前目录的所有以此字符串开头的文件或文件夹。
调用历史参数
五:获得帮助
whatis
CMD -h|--help
man
info
六:练习
1.设置开机自动以root身份登入,跳过用户登入界面:
[root@centos6 ~]#nano /etc/gdm//custom.conf # GDM configuration storage [daemon] AutomaticLoginEnable=true AutomaticLogin=root [security] [xdmcp] [greeter] [chooser] [debug]
2.设置用户提示栏:
[root@centos6 ~]#nano /etc/profile.d/env.sh PS1="\[\e[1;5;41;33m\]{\u@\h \w]\\$\[\e[0m]" 其中 1字体高亮 5闪烁 41背景颜色 33字体颜色(31~37) 0m颜色到此结束
3.定义别名
[root@centos6 ~]#nano .bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias cdnet="cd /etc/sysconfig/network-scripts/" # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
4.更改语言变量
[root@centos6 ~]#nano /etc/sysconfig/ i18n
LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
5.进行会话
[root@centos6 ~]#df (查看光盘挂载) Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 50264772 5113400 42591372 11% / tmpfs 502056 80 501976 1% /dev/shm /dev/sda1 999320 34944 911948 4% /boot /dev/sda3 30106576 44992 28525584 1% /data /dev/sr0 3878870 3878870 0 100% /media/CentOS_6.9_Final [root@centos6 ~]#rpm -ivh /media/CentOS_6.9_Final/Packages/screen-4.0.3-19.el6.x86_64.rpm warning: /media/CentOS_6.9_Final/Packages/screen-4.0.3-19.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY Preparing... ########################################### [100%] package screen-4.0.3-19.el6.x86_64 is already installed [root@centos6 ~]#screen -S help(创建会话) [root@centos6 ~]#screen -x help(加入会话)
6.计算器(进制直接转换)
[root@centos6 ~]#bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. ibase=2(输入几进制) 1010 10 quit [root@centos6 ~]#bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. obase=2 10 1010 quit
7.课上练习
1)显示当前时间,格式 2016-06-18 10:20:30
[root@centos6 ~]#date "+%F %T"
2)显示前天星期几
[root@centos6 ~]#date +%A -d "-2 days"
3)设置时间为2019-08-0706:05:10
[root@centos6 ~]#date -s 080706052019.10
4)在本机字符终端登录时,除显示原有信息外,再显示当前登录终端号,主机名和当前时间
[root@centos6 ~]#nano /etc/issue
[root@centos6 ~]#man agetty
5)今天18:30自动关机,并提示用户
[root@centos6 ~]#shutdown -h 18:30