Linux基础命令摘要总结:
1. 命令总结
2. 内部命令
3. 外部命令
4. 命令别名
5. 命令格式
6. 时间和日期
7. 简单命令
8. 命令行扩展,被括起来的集合
9. tab键
10. 命令行历史(history)
11. bash的快捷键
12. 获得帮助
13. 设置计算机开机自动登录root账户
14. 杂项
1 命令总结:
- . 一点是当前目录,比如你要执行当前目录下的shell
- : 什么都不做
- > 生成文件,如果已存在强制覆盖
- alias 设置别名
- bc 命令是一个提供任意精度算术的交互式进程
- cat /etc/centos-release 查看电脑版本号
- clock 查看时间
- cp 拷贝文件
例:cp /b/a.txt /a/
- chvt 切换状态登录状态,桌面或控制台
- exit 退出
- echo 用于字符串的输出
- free 查看内存
- halt 是最简单的关机命令,其实际上是调用shutdown -h命令。
halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
- hash 将外部执行的命令,hash到内存当中,当再次调用时,会直接调用内存中的。
- hwclock 查看时间
- help 帮助
- history 查看执行命令的历史记录
- info 查看帮助文档
- init 0/3/5/6 转换计算机状态,桌面或命令界面
- ifconfig 查看网络连接
- lsblk 查看计算机节点分布和内存分布,文件挂载点
- lscpu 查看计算机CPU
- lsb_release -a 查看电脑版本号(centos7中不行没有安装相关软件)
- ltrace 能够跟踪进程的库函数调用,它会显现出哪个库函数被调用,查看库调用。
- logout/ctrl+d 注销
- man 帮助
- mandb 创建或更新手册页索引缓存
- makewhatis 制作帮助数据库(centos6)
- nona 文本编译
- poweroff 关机
- pwd 查看当前全路径
- runlevel 查看系统状态
- reboot 重启
- reset 重置 复位
- rz 将Windows里的文件复制到Linux里去
- tty 使用tty命令可以查看现在使用的终端标识
使用ctrl+alt+[F1~F8]来切换操作终端
使用echo “test xxx” > /dev/ttyx /dev/pts/1可以发送到相应的终端设备中
- timedatectl 查看时区(Centos7中可以用)
- type 查看类型
- touch 生成文件
- sz 将Linux里的文件复制到Windows里去
例:sz initial-setup-ks.cfg
- startx 关机
- shutdown 关机
- strace strace提供非常丰富的跟踪功能。查看系统调用。
- sleep 等待多长时间
- screen 离线运行程序
- uname -r 查看计算机版本
- unalias 取消别名
- who -r 查看历史桌面或命令界面的转换
- whoami 查看我是谁
- who am i 查看所有的登录用户
- whatis 帮助
- whereis 只能用于搜索程序名,而且只搜索二进制文件(参数-b)、
man说明文件(参数-m)和源代码文件(参数-s)。
- x 写入文件并退出
- ls -l/-a: 列出详细信息/列出隐藏文件(.前面加点的文件)
2 内部命令
内部命令:由shell自带的,而且通过某命令形式提供
- help 内部命令列表
- enable cmd 启用内部命令
- enable -n cmd 禁用内部命令
- enable -n 查看所有禁用的内部命令
3 外部命令
外部命令:在文件系统路径下有对应的可执行程序文件
1. 查看路径:which -a |--skip-alias ;whereis
2. Hash缓存表:
- 系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该
命令,找到后会将这条命令的路径记录到
- hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在
将执行,如果不存在,将会去PATH路径下寻找。
- 利用hash缓存表可大大提高命令的调用速率。
3. hash常见用法:
- hash 显示hash缓存
- hash -l 显示hash缓存,可作为输入使用
- hash -p path name 将命令全路径path起别名为name
- hash -t name 打印缓存中name的路径
- hash -d name 清除name缓存
- hash -r 清除缓存
4. 命令别名
1. 显示当前shell进程所有可用的命令别名
alias
2. 定义别名NAME,其相当于执行命令VALUE
alias NAME='VALUE'
3. 在命令行中定义的别名,仅对当前shell进程有效
4. 如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc
5. 编辑界面给出的新配置不会立即生效
bash进程重新读取配置文件
source /path/to/config_file
. /path/to/config_file
6. 撤销别名:unalias
unalias [-a] name [name ...]
-a 取消所有别名
7. 如果别名同原命令同名,如果要执行原命令,可使用
"\COMMAND"
'COMMAND'
/PATH/COMMAND:外部命令
5. 命令格式
COMMAND [OPTIONS...][ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能
短选项:-c 例如:-l,-h
长选项:--word 例如:--all,--human-readable
参数:命令的作用对象,比如文件名,用户名等
注意:
- 多个选择以及多参数和命令之间使用空白字符分隔
- 取消和结束命令执行:Ctrl+c,Ctrl+d
- 多个命令可以用;符号分开
- 一个命令可以用\分成多行
6. 时间和日期
1. Linux的两种时钟
系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板
2. 相关命令:
date:显示和设置系统时间
date +%s
date -d @1509536033
例:date -d @1548244255 "+%Y-%m-%d %H-%M-%S"
hwclock,clock:显示硬件时钟
-s,--hctosys 以硬件时钟为准,校正系统时钟
例:clock -s
-w,--systohc 以系统时钟为准,校正硬件时钟
例:clock -w
3. 时区:/etc/locahtime
查看时区:ll /etc/localtime
centos7上的所有支持的时区:timedatectl list-timezones
修改时区:timedatectl set-timezone 时区名
4. 显示日历:cal -y
例:cal 2020
7. 简单命令
1. 关机:halt,poweroff
2. 重启:reboot
-f:强制,不调用shutdown
-p:切断电源
3. 关机或重启:shutdown
shutdown [OPTION]... TIME[MESSAGE]
-r:reboot 重启
-h:halt 关机
-c:cancel 取消
TIME:无指定,默认相当于 +1
now:立刻,相当于+0
+m:相对于时间表示法,几分钟之后:例如 +3
hh:mm:绝对时间表示,指明具体时间
例如:shutdown -h +10 "System will be halt,please ready"
4. 用户登录信息查看命令:
whoami:显示当前登录有效用户
who:系统当前所有的登录会话
w:系统当前所有的登录会话及所有的操作
5. nano 文本编译:
- 打开或新建文件
#nano 文件名
- 禁用自动换行
#nano -w /etc/fstab
- 保存所做的修改 Ctrl+O
- 退出,按下 Ctrl+X
- 如果你没有修改好而不小心按了保存键,
您可以在请求确认文件名时按 Ctrl+C 取消
6. screen命令:
- 创建新screen会话
screen -S [SESSION]
- 加入session会话
screen -x [SESSION]
- 退出并保存screen会话
Ctrl+a,d
- 显示所有已经打开的screen会话
screen -ls
- 恢复某screen会话
screen -r [SESSION]
7. echo命令:回显
功能:显示字符
语法:each [-neE][字符串]
说明:each会将输入的字符串送往标准输出。输出的字
符串间以空白字符隔开,并在最后加上换行号
选择:
-E (默认)不支持\解释功能
-n 不自动换行
-e 启用\字符的解释功能
显示变量:
each "$VAR_NAME" 变量会替换,弱引用
each '$VAR_NAME' 变量不会替换,强引用
8. 启用命令选项-e,若字符串中出现以下字符,则特别加以处理,
而不会将它当成一般文字输出:
\a 发出警告声
\b 退格键
\c 最后不加上换行符
\n 换行且光标移至行首,但不换行
\t 插入tab
\\ 插入\字符
\Onnn 插入nnn(八进制)所代表的ASCII字符
例:echo -e '\O33[43;31;5mmagedu\O33[Om'
\xHH 插入HH(十六进制)所代表的ASCII字
8. 命令行扩展,被括起来的集合
1. 命令行扩展:$()或''
把一个命令的输出打印给另一个命令的参数
- echo "This system's name is $(hostname)"
This system's name is server1.example.com
- echo "i am 'whoami'"
i am root
2. 括号扩展:{}
打印重复字符串的简化形式
- echo file{1,3,5}
file1 file3 file5
- rm -f file{1,3,5}
- echo {1..10}
- echo {a..z}
- echo {00..20..2}
例:
- echo f1{,.bak} 生成 f1 f1.bak
- touch {1..10}.{log,text} 生成
10.log 1.log 2.log 3.log 4.log 5.log 6.log 7.log 8.log 9.log
10.text 1.text 2.text 3.text 4.text 5.text 6.text 7.text 8.text 9.text
9. tab键
1. 命令补全:
内部命令:
外部命令:- bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻
以给定命令命名的文件,第一次找到的命令即为要执行的命令
- 用户给定的字符串只有一条唯一对应的命令,直接补全
- 否则,再次Tab会给出列表
2. 路径补全:
- 把用户给出的字符串当做路径开头,并在其指定上级目录
下搜索以指定的字符串开头的文件名
- 如果唯一:则直接补全
- 否则,再次Tab给出列表
3. 双击Tab键:2Tab表示点击两次Tab键
command 2Tab 所有子命名或文件补全
string 2Tab 以string开头的命令
/ 2Tab 显示所有根目录下一级目录,包括隐藏目录
./ 2Tab 当前目录下子目录,包含隐藏目录
* 2Tab 当前目录下子目录,不包含隐藏目录
~ 2Tab 所有用户列表
$ 2Tab 所有变量
@ 2Tab /etc/hosts记录 (centos7不支持)
= 2Tab 相当于ls -A (centos7不支持)
10. 命令行历史(history)
1. history -c 清空内存历史
2. > .bash_history 清除文件
3. 保存你输入的历史命令,可以用它来重复执行命令 保存你输入的历史命令,
可以用它来重复执行命令
4. 登录shell时,会读取命令历史文件中记录下的命令
~/.bash_history
5. 登录进shell后新执行的命令只会记录在缓存中,这些命令
会在用户退出时“追加”至命令历史文件中
6. 重复前一个命令,有4种方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入 !-1 并回车执行
按 Ctrl+p 并回车执行
7. 快捷方法:
!:O 执行前一条命令(去除参数)
Ctrl+n 显示当前历史中的下一条命令,但不执行
Ctrl+j 执行当前命令
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出!$(上一条命令的最后一个参数)的内容
!*:p 打印输出!*(上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为string2
使用 up(向上)和 down(向下)键来上下浏览从前输入的命令
ctrl+r 在命令历史中搜索命令
(reverse-i-search):
Ctrl+g 从历史搜索模式退出
要重新调用前一个命令中最后一个参数:
!$ 表示
Esc,.(点击Esc键后松开,然后点击 . 键)
Alt+. (按住Alt键同时点击 . 键)
8. 命令history:
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
-c:清空命令历史
-d offset:删除历史中指定的第offset个命令
n:显示最近的n条历史命令
-a:追加本次会话新执行的命令历史列表至历史文件
-r:读历史文件附加到历史列表
-w:保存历史列表到指定的历史文件
-n:读历史文件中未读过的行到历史列表中
-s:展开历史参数成一行,附加在历史列表后
命令历史相关环境变量:
HISTSIZE:命令历史记录的条数
例:echo $HISTSIZE
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T":显示时间(%F:年月日 %T:时分秒)
HISTIGNORE="str1:str2*:...":忽略str1命令,str2开头的历史
例:HISTIGNORE='ls *:hostname'
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups,ignorespace的组合
erasedups 删除重复命令
例:HISTCONTROL=erasedups
export 变量名=“值”
存放在 /etc/profile 或 ~/.bash_profile
11. bash的快捷键
Ctrl+l:清屏,相当于clear命令
Ctrl+o:执行当前命令,并重新显示本命令
Ctrl+s:阻止屏幕输出,锁定
Ctrl+q:允许屏幕输出
Ctrl+c:终止命令
Ctrl+z:挂起命令
Ctrl+a:光标移到命令行首,相当于Home
Ctrl+e:光标移到命令行尾,相当于End
Ctrl+f:光标向右移动一个字符
Ctrl+b:光标向左移动一个字符
Alt+f: 光标向右移动一个单词尾
Alt+b: 光标向左移动一个单词尾
Ctrl+xx:光标在命令行首和光标之间移动
Ctrl+u:从光标处删除至命令行首
Ctrl+k:从光标处删除至命令行尾
Alt+r:删除当前整行
Ctrl+w:从光标处向左删除至单词首
Alt+d:从光标处向左删除至单词尾
Ctrl+d:删除光标处的一个字符
Ctrl+h:删除光标前的一个字符
Ctrl+y:将删除的字符粘贴至光标后
Alt+c:从光标处开始向右更改为首字母大写的单词
Alt+u:从光标处开始,将左边一个单词更改为大写
Alt+l:从光标处开始,将右边一个单词更改为小写
Ctrl+t:交换光标处和之前的字符位置
Alt+t:交换光标处和之前的单词位置
Alt+N:提示输入指定字符后,重复显示该字符N次
注意:Alt组合快捷键经常和其它软件冲突
12. 获得帮助
获取帮助的能力决定了技术的能力!
多层次的帮助:
1. whatis
2. command --help
3. man and info
4. /usr/share/doc/
5. Red Hat documentation
6. 其它网站和搜索
1) whatis:
显示命令的简短描述
使用数据库
刚安装后不可立即使用
makewhatis(centos6)|mandb(centos7)制作数据库
使用示例:
whatis cal 或 man -f cal
2) 内部命令:help COMMAND
man bash
3) 外部命令:
(1)COMMAND --help
COMMAND -h(不是所有的都支持-h)
(2)使用手册(manual)
man COMMAND
(3)信息页
info COMMAND
(4)程序自身的帮助文档
README
INSETALL
ChangeLog
(5)程序官方文档
官方站点:Documentation
(6)发行版的官方文档
(7)Google
4) --help选择:
显示用法总结和参数列表
使用的大多数,但并非所有的
示例:
date --help
Usage: date [OPTION]... [+FORMAT]
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
[] 表示可选项
CAPS 或 <> 表示变化的数据
... 表示一个列表
x|y|z 的意思是“x或y或z”
-abc 的意思是 -a -b -c
{} 表示分组
5) man命令:
- 提供命令帮助的文件
- 手册页存放在/usr/share/man
- 几乎每个命令都有man的“页面”
- man页面分组为不同的“章节”
man章节:
1:用户命令
2:系统调用
3:C库调用
4:设备文件及特殊文件
5:配置文件格式
6:游戏
7:杂项
8:管理类的命令
9:Linux内核API
- 统称为Linux手册
- man命令的配置文件:/etc/man.config(centos6) | man_db.conf(centos7)
MANPATH /PATH/TO/SOMEEWHERE:指明man文件搜索位置
- man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索
COMMAND命令的手册页面并显示
- 中文man安装包man-pages-zh-CN
- man命令的操作方法:使用less命令实现
space,^v,^f,^F:向文章末尾翻屏
b,^b:向文章首部翻屏
d,^d:向文章尾部翻半屏
u,^u:向文章首部翻半屏
RETURN,^N,e,^E or j or ^J:向文章尾部翻一行
y or ^Y or ^P or k or ^K:向文章是首部翻一行
q:退出
#:跳转至第#行
1G:回到文件首部
G:翻至文件末尾
6) man帮助段落说明:
帮助手册中的段落说明:
- Name 名称及简要说明
- SYNOPSIS 用法格式说明
[] 可选内容
<> 必选内容
a|b 二选一
{} 分组
... 同一内容可出现多次
- DESCRIPTION 详细说明
- OPTIONS 选择说明
- EXAMPLES 示例
- FILES 相关文件
- AUTHOR 作者
- COPYRIGHT 版本信息
- REPORTINF BUGS bug信息
- SEE ALSO 其他帮助参考
7) man帮助:
- 查看man手册页:
man [章节] keyword
- 列出所有帮助:
man -a keyword
- 搜索man手册:
man -k keyword 列出所有匹配的页面
使用 whatis 数据库
- 相当于whatis:
man -f keyword
- 打印man帮助文件的路径:
man -w [章节] keyword
8) info:
- man常用于命令参考,GNU工具info适合通用文档参考
- 没有参数,列出所有的页面
- info 页面的结构就像一个网站
- 每一页分为“节点”
- 链接节点之前*
- info [命令]
导航info页
- 方向键,PgUp,PgDn 导航
- Tab键 移动到下一个链接
- d 显示主题目录
- Home 显示主题首页
- Enter进入 选定连接
- n/p/u/l 进入下/前/上一层/最后一个链接
- s 文字 文本搜索
- q 退出 info
9) 通过本地文档获取帮助:
- System -> help (centos6)
- Applications -> documentation -> help (centos7)
提供的官方使用指南和发行注记
- /usr/share/doc目录
多数安装了的软件包的子目录,包括了这些软件的相关原理说明
常见文档:README INSTALL CHANGES
不适合其他地方的文档的位置
配置文件范例
HTML/PDF/PS 格式的文档
授权书详情
10) 通过在线文档获取帮助:
第三方应用官方文档:
http://www.nginx.org
http://tomcat.apache.org
http://httpd.apache.org
http://www.python.org
通过发行版官方的文档光盘或网站可以获得:
安装指南,部署指南,虚拟化指南等
红帽知识库和官方在线文档
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com
13. 设置计算机开机自动登录root账户
nano /etc/gdm/custom.conf
[daemon]下面加上这两句:
AutomaticLoginEnable=true
AutomaticLogin=root
14. 杂项
/etc/motd 登陆后提示语
/etc/issue 登录前提示语
Ctrl+C 强行退出
Ctrl+D 正常退出
clear|Ctrl+L 清空屏幕
安装软件
rpm -i 文件全路径
rpm -i /run/media/root/CentOS\ 7\ x86_64/Packages/screen-4.1.0-0.23.20120314git3c2946.el7_2.x86_64.rpm