linux的哲学思想:
一切皆文件:
把几乎所有资源,包括硬件设备都组织为文件系统
由众多单一目的小程序组成:一个程序只实现一个功能,而且要做好
组合小程序完成复杂任务
尽量避免跟用户交互
目的:实现脚本编程,以自动完成某些功能
使用纯文本文件保存配置信息
目标:一款使用的文本编程器即能完成系统配置工作
如何获取centos的发行版:
http://mirrors.aliyun.com
http://mirrors.163.com
http://mirrors.sohu.com
终端:tty
用户与主机交互,
物理终端:直接接入本机的显示器和键盘设备:/dev/console
虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,CentOS 6 默认启动6个虚拟终端
ctrl+alt+Fn(1~6)
图形终端:附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境
设备文件路径:/dev/tty# [1~6]
模拟终端:
图形界面下打开的命令行接口,基于ssh协议或telnet协议等远程打开的界面
设备文件:/dev/pts/# [0,∞)
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
GUI:
Desktop:
GNOME (C,gtk)---C语言开发
KDE (C++,qt)
XFCE (轻量级桌面)
CLI:
命令:输入命令,回车
提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来:
表现为一个或多个进程
在shell中可执行的命令有两类:
内建命令:由shell自带的,而且通过某些命令形式提供
外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件
which ,whereis
区分内部或外部命令:
#type COMMAND
文件有两类数据:
元数据:metadata
数据:data
1、文件名严格区分字符大小写:file1,File1,FILE1是不同的文件;
2、文件名可使用出/以外的任意字符,不建议使用特殊字符;
/:根目录,路径分隔符:
3、文件名长度最长不能超过255个字符
4、所有.开头的文件,均为隐藏文件
路径 :
绝对路径:从根目录起始的路径;
相对路径:对当前位置起始的路径
当前位置的表示方式:
(1)./: ./sysconfig/network-scripts
(2)省略上述符号: sysconfig/network-scripts
当前目录:current directory
pwd : printing working directory
一、内部命令
内置命令(builtin):由shell程序自带的命令
help COMMAND:查看内部命令 enable -n command 禁用某内部命令 enable -n 查看全部被禁用的命令 enable command 启用内部命令
二、外部命令--都有一个可执行程序,位于文件系统某目录下
1.查询命令种类及命令路径
type command 查看命令是内部还是外部命令 which command 查看该命令文件路径 which --skip-alias command 查看的命令文件路径但不包含别名命令 whereis 查看命令文件路径
whatis 使用mkwhatis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库
2.hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。利用hash缓存表可大大提高命令的调用速率.
即
echo $PATH 显示全部的PATH路径 hash 显示hash缓存 hash -d name 删除缓存中name路径 hash -r 清除缓存
3.alias(命令别名)
alias 显示当前系统中所有可用的别名 alias name='value' 定义别名name,相相当于执行命令value。 alias aaa="cat /etc/shells" unalias aaa 取消aaa的别名 unalias -a 取消所有的别名 **用命令行定义的别名,仅对当前shell有效**
要想永久有效,需要定义在配置文件中
- 仅对当前用户有效: ~/.bashrc
- 对所有用户有效:/etc/bashrc
注意:如果别名与原命令重名,shell优先执行别名,要想执行原命令:
command
‘command’
4.date,clock 显示日期和时间
Linux有两种时间:
- 系统时钟:有Linux内核通过CPU的工作频率进行的
- 硬件时间:主板
hwclock -s,--hctosys 以硬件时间为准,校正系统时间 hwclock -w,--systohc 以系统时间为准,校正硬件时间 date +s% 显示自1970年0时0分0秒至今的秒数 date +%a 显示今天周几 date +%F 显示完整的日期 2019-08-01
date +%D 显示日期 08/01/19 date +"%F %T" 或 date "+%F %T" 显示完整的时间日期 date [MMDDhhmm[[CC]YY][.ss]] 设置系统时间,如 date 101015152018.10 即设置系统时间为2018年10月10日15时15分10秒
MM:月份
DD:几号
hh:小时
mm:分钟
YY:两位年份
CCYY:四位年份
.ss:秒钟
假如系统、硬件时间都是错误的,这种情况下用ntpdate命令连接一台时间正确的服务器校正时间
ntpdate ntp1.aliyun.com
ntpdate ip
显示日历
cal 2018 显示2018年的日历 cal 10 2019 显示2019年10月日历 cal -y 显示今年的日历
修改系统默认语言
语言位于/etc/locale.conf 文件中 利用nano命令修改该文件 nano /etc/locale.conf 将LANG=“en_US.UTF-8” 改为 LANG=“zh-CN.UTF-8” 即可
5.系统管理类:poweroff、halt、reboot、shutdown关机命令
reboot重启
reboot -f 强制重启,不调用shutdown
reboot -p 切断电源重启
shutdown
shutdown [OPTIONS...] [TIME] [WALL...] shutdown -h halt shutdown -P poweroff shutdown -r reboot shutdown -k Do not halt, power-off, reboot, just write wall message. 恶搞小游戏 shutdown 注意:centos7 后边必须跟时间 shutdown hh:mm 计划于hh:mm 关机 shutdown +m m分钟后自动关机
shutdown -c 取消计划关机
6.用户登录信息查看命令
whoami 显示当前登录有效用户 who am i 系统当前登录的用户及操作 who 系统当前所有的登录回话 w 系统当前所有的登录回话及所做的操作
7.ls命令(list directory contents)
ls [OPTION]… [FILE]… 显示指定路径下的文件列表
ls -a 显示所有的文件包括.与..开头的文件 ls -l 显示长格式列表,显示文件的所有属性信息 ls -d 仅显示当前文件夹 ls -h 对文件大小格式进行换算 ls -r 逆序排列 ls -R 递归显示子目录 ls -ld 显示当前目录的长格式属性
stat /PATH/TO/SOMEFILE :获取指定目录的元数据
8. cd命令(change directory)
cd 直接切换至家目录(bash中,~代表家目录),同cd ~ cd / 切换至根目录 cd - 上一目录与当前目录之间切换 <==> cd $OLDPWD cd .. 切换至上一级目录 cd /var/log 切换至var下log路径下 cd+文件名 或cd ./文件名 表示直接切换至该目录下的此文件
相关的环境比变量
PWD:保存了当前目录路径
OLDPWD:上一次所在目录路径
9.cat命令(concatenate files and print on the standard output,查看文本文件并显示在标准输出设备上)
cat -n 在显示的文本行前边添加序号 cat /etc/fstab /etc/passwd 同时显示fstab和passwd两个文件
10.pwd、basename、dirname、echo
pwd 显示当前所在目录 basename 当前的文件名 dirname 当前文件所在的路径
echo -e :允许使用转义符
echo -n :禁止自动添加换行符号
11.history (管理命令历史)
登陆shell时,会读取命令历史文件中记录下的命令
- 记录在 ~]# .bash_history
- 查看命令:cat .bash_history
登录进shell后新执行的命令只会记录在缓存中
- logout后再登录,才会记录于 .bash_history
history -a 追加本次新执行的命令至.bash_history文件中 history -d 39 删除history中第39行命令 history -c 删除所有命令
相关快捷操作: !# 表示调用history命令历史中第#调命令 !string,比如!man 表示调用历史中第一个以man开头的命令 !! 执行上一条命令
!$ :调用上一条命令的最后一个参数
控制命令历史的记录方式:
环境变量:HISTCONTROL
export HISTCONTROL="ignorespace" 忽略所有以空白开头的命令
"ignoredups" 忽略复制的命令:连续且相同方为“重复”
变量赋值:把赋值符号后面的数据存储于变量名指向的内存空间
三、使用帮助
1、概述:获取多层次的帮助
whatis 显示命令的简短描述
command --help 获取帮助
使用手册(manual):man COMMAND
信息页:info COMMAND
/usr/share/doc/ 使用帮助文档
程序官方文档 :官方站点 Documentation
其它网站和搜索
2、–help
显示用法总结和参数列表
示例:
date --help Usage: date [OPTION]... [+FORMAT] or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 其中: [] :表示可选项,非必选 CAPS或<> :表示必选内容 ...表示同一个内容可出现多次 x |y| z的意思是“x或y或z”,多选一
3、man帮助
/usr/share/man
man 配置文件 /etc/man.config
man文档 1: 用户命令(所有人都可以使用) 2: 系统调用 3: C库调用 4: 设备文件及特殊文件 5: 配置文件格式 6: 游戏 7: 杂项 8: 管理类的命令 9:Linux 内核API
注意:有的命令在不同章节中都有帮助手册,如read命令
也并非每个命令都有man帮助手册
查看man手册页—— 列出所有帮助——man –a keyword 搜索man手册——man -kkeyword列出所有匹配的页面 使用whatis数据库 相当于whatis man –f keyword 打印man帮助文件的路径 man –w [章节] keyword
man [章节] keyword 查看该命令在该章节的帮助 man –a keyword 列出所有帮助 man -k keyword 列出所有匹配的页面 man –f keyword 相当于whatis
- man命令的操作方法:使用less命令实现(^代表ctrl)
- 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:翻至文件尾部
- /KEYWORD:以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写; n: 下一个 N:上一个
- ?KEYWORD:以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;
- n: 跟搜索命令同方向,下一个
- N: 跟搜索命令反方向, 上一个
参考:https://blog.csdn.net/tai20031229/article/details/83719302