Linux入门
用户登录
root用户:
一个特殊的管理帐户
也被称为超级用户
root已接近完整的系统控制
对系统损害几乎有无限的能力
除非必要,不要登录为root
普通(非特权)用户
权限有限
造成损害的能力比较有限
终端
用户与主机交互,必然用到的设备
物理终端
虚拟终端
shell介绍
shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。
它接受用户输入的命令并把它送入内核去执行;
shell也被称为Linux的命令解释器
bash:GNU Bourne-Again Shell是GNU计划中重要的工具软件之一,
目前也是Linux的标准的shell,与sh兼容
zsh
csh
tsh
显示当前使用的shell:
#echo $SHELL
显示当前系统使用的所有shell:
#cat /etc/shells
命令提示符:prompt
[root@localhost~]#
显示提示符格式:
[root@localhost~]#echo $PS1
prompt:
管理员:#
普通用户:$
执行命令
提请shell程序找到键入命令所对应的可执行程序或代码,
并由其分析后提交给内核分配资源将其运行起来
分类:
内部命令:由shell自带的,
而且通过某命令形式提供enable命令可以启用或禁用内部命令
外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件
区别当前使用的命令是内部或外部命令:
#type COMMAND
hash命令:
搜寻到的外部命令路径结果缓存至kv存储中
hash 显示hash缓存
hash -r清除缓存
命令格式:
COMMAND [OPTIONS...][ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能;
短选项:-c,例如-l,-h
长选项:--word,例如:--all,--human
参数:命令的作用对象,比如文件名,用户名等
注意:
1)度选项,以及多参数和命令之间使用空白字符分隔
2)取消和结束命令执行:Ctrl+c,Ctrl+d
3)多个命令可以用;符号分开
4)一个命令可以用\分成多行
简单命令
dete 显示日期和时间
Linux的两种时钟:
系统时钟:由linux内核通过CPU的工作频率进行的;
硬件时钟:主板
hwclock,clock:显示硬件时钟
-s,--hctosys以硬件时钟为准,校正系统时钟
-w,--systohc以系统时钟为准,校正硬件时钟
cal 显示日历
nano 文本编辑器
screen命令:
打开新的screen:
#screen
退出并关闭screen:
#exit
剥离当前screen:
Ctrl+a,d
显示所有已经打开的screen:
screen -ls
恢复某screen
screen -r [SESSION]
echo命令:显示字符
echo [-neE][字符串]
说明:echo会将输入的字符串送往标准输出
输出的字符串间以空白字符隔开,并在最后加上换行号
echo"$VAR_NAME":变量会替换,双引号表弱引用
echo"$VAR_NAME":变量不会替换,强引用
$echo -e "Enter the name:\c"
echo需要使用-e参数来打印转义字符
选项:
-n 不在字符的最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 退格键
\c 最后不加上换行符号;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\\插入\字符;
\0nnn 插入nnn(八进制)所代表的ASCII字符
echo -e "\033[43;31mred color\033[0m"
\xHH插入HH(十六进制)所代表的ASCII字符
Tab键补全
命令补全
内部命令:
外部命令::bash根据PATH环境变量定义的路径,
自左而右在每个路径搜寻以给定命令名命名的文件,
第一次找到的命令即为要执行的命令;
用户给定的字符串只有一条惟一对应的命令,直接补全
否则,再次Tab会给出列表
命令行历史
保存你输入的命令历史。可以用它来重复执行命令;
登录shell时,会读取命令历史文件中记录下的命令~/.bash_history;
登录进shell后新执行的命令只会记录在缓存中,
这些命令会用户退出时“追加”至命令历史文件中;
重复前一个命令,有4种方法:
重复前一个命令使用上方向键,并回车执行。
按!! 并回车执行。
输入!-1 并回车执行。
按Ctrl+p 并回车执行。
!字符串:重复前一个以“字符串”开头的命令
!num:按照history命令输出中的序号重复对应命令
!?字符串:重复前一个包含abc的命令
!-n:重复n个命令之前的那个命令
使用up(向上)和down(向下)键来上下浏览从前输入的命令
键入ctrl-r来在命令历史中搜索命令
(reverse-i-search)`’:
要重新调用前一个命令中最后一个参数:
!$ 表示
Esc, .(点击Esc键后松开,然后点击. 键)
Alt+ .(按住Alt键的同时点击. 键)
调用历史参数:
#cmd !^ : 利用上一个命令的第一个参数做cmd的参数
#cmd !$ : 利用上一个命令的最后一个参数做cmd的参数
#cmd !* : 利用上一个命令的全部参数做cmd的参数
#cmd !:n : 利用上一个命令的第n个参数做cmd的参数
!n:^ 调用第n条命令的第一个参数
!n:$ 调用第n条命令的最后一个参数
!m:n 调用第m条命令的第n个参数
!n:* 调用第n条命令的所有参数
!string:^ 从命令历史中搜索以string 开头的命令,
并获取它的第一个参数
!string:$ 从命令历史中搜索以string 开头的命令,
并获取它的最后一个参数
!string:n 从命令历史中搜索以string 开头的命令,
并获取它的第n个参数
!string:* 从命令历史中搜索以string 开头的命令,
并获取它的所有参数
history命令:
history [-c] [-d offset] [n]
history -anrw[filename]
history -psarg[arg...]
-c: 清空命令历史
-d: 删除历史中指定的命令;
#: 显示最近的#条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多个行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
命令历史相关环境变量
HISTSIZE:命令历史记录的条数;
HISTFILE:指定历史文件,默认为~/.bash_history;
HISTFILESIZE:命令历史文件记录历史的条数;
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:ignoredups, ignorespace
erasedups:删除重复命令
export 变量名="值“
存放在/etc/profile 或~/.bash_profile
bash快捷键
Ctrl+l 清屏,相当于clear命令
Ctrl+c取消命令的执行
Ctrl-a 会移动到命令行的最前面
Ctrl-e 会移动到命令行的最后面
Ctrl-u 会删除到行首
Ctrl-k 会删除到行尾
arrow ctrl-b ctrl-f会向左或向右移动一个字符
Esc-b左移一个单词
Esc-f右移一个单词
使用gnome-ternimal
应用程序->附件->终端
支持多个“标签”shell的图形化终端模拟器
Ctrl-Shift-t 创建一个标签页
Ctrl-PaUp/PgUn切换到下一个/前一个标签页
Ctrl-Shift-c 复制选中的文本
Ctrl-Shift-v 把文本粘帖到提示符后