目录
注:系统环境为centos 7
1.Linux入门级命令:
-
查看所用的shell的类型(变量一定要大写):
~]#echo $SHELL
/bin/bash
-
远程连接:
~]# ss -tnl
查看系统是否监听于tcp协议的22号端口;
~]# ip addr list
或
~]# ifconfig
查看IP地址;
-
在刚开始学习的阶段,一定要确保防火墙是否处于关闭状态,以便后面方便做实验。
~]# iptables -L -n
CentOS 7:
~]# systemctl disable firewalld.service 开机不启动
~]# systemctl stop firewalld.service 关闭防火墙
~]# systemctl status firewalld.service 查询状态
CentOS 6:
~]# service iptables stop 关闭防火墙
~]# chkconfig iptables off 开机不启动
-
查看终端设备:
Linux的哲学思想之一:一切皆文件;
表现之一:硬件设备也通过文件表示;
物理终端:/dev/console
虚拟终端:/dev/tty# [1,6]
串行终端:/dev/ttyS#
伪终端:/dev/pts/#
~]#tty
/dev/pts/1
-
关机命令:
CentOS 7:
~]# systemctl poweroff 关机
~]# systemctl reboot 重启
*:
~]# poweroff
~]# halt
~]# reboot
Linux的哲学思想:
1、一切皆文件:
把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;
open(), read(), write(), close(), delete(), create()
2、由众多功能单一的程序组成;一个程序只做一件事,并且做好;
组合小程序完成复杂任务;
3、尽量避免跟用户交互;
目标:易于以编程的方式实现自动化任务;
4、使用文本文件保存配置信息;
- 文件的路径表示:
绝对路径:从根开始表示出的路径
相对路径:从当前位置开始表示出的路径 - 文件名使用法则:
严格区分字符大小写:file1, File1, FILE1
目录也是文件,在同一路径下,两个文件不能同名;
支持使用除/以外的任意字符;
最长不能超过255个字符;
工作目录:
/etc/sysconfig/network-scripts/ifcfg-eno16777736
basename:最右侧的文件或目录名;
dirname:basename左侧的路径;
~]# basename /PATH/TO/SOMEFILE
SOMEFILE
~]# dirname /PATH/TO/SOMEFILE
/PATH/TO
- shell程序是独特的程序,负责解析用户提供的命令;
- 环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
查找次序:自左而右;
~]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
- 指定命令的运行特性;
选项有两种表现形式:
短选项:-C, 例如-l, -d
注意:有些命令的选项没有-;
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
长选项:--word, 例如--help, --human-readable
注意:长选项不能合并;
注意:有些选项可以带参数,此称为选项参数; -
获取命令的使用帮助:
内部命令:
help COMMAND
外部命令:
(1) 命令自带简要格式的使用帮助
# COMMAND --help
(2) 使用手册:manual
位置:/usr/share/man
SECTION:# man COMMAND
NAME:功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:使用示例
AUTHOR: 作者
BUGS: 报告程序bug的方式
SEE ALSO: 参考
SYNOPSIS:
[]:可选内容;
<>:必须提供的内容;
a|b|c:多选一;
...:同类内容可出现多个; - 使用手册:压缩格式的文件,有章节之分;|
1:用户命令;
2:系统调用;
3:C库调用;
4:设备文件及特殊文件;
5:文件格式;(配置文件格式)
6:游戏使用帮助;
7:杂项;
8:管理工具及守护进行;
~]# man CHAPTER COMMAND
注意:并非每个COMMAND在所有章节下都有手册;
查看:
~]# whatis COMMAND
注意:其执行过程是查询数据库进行的;
手动更新数据库:
~]# makewhatis
-
man命令打开手册以后的操作方法:
翻屏:
空格键:向文件尾翻一屏;
b: 向文件首部翻一屏;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
回车键:向文件尾部翻一行;
k: 向文件首部翻一行;
G:跳转至最后一行;
#G: 跳转至指定行;
1G:跳转至文件首部; - 文本搜索:
/keyword:从文件首部向文件尾部依次查找;不区分字符大小写;
?keyword:从文件尾部向文件首部依次查找;
n: 与查找命令方向相同;
N: 与查找命令方向相反; - 以.开头的文件为隐藏文件;
.: 当前目录;
..: 当前目录的上一级目录;
/etc/sysconfig/
.: sysconfig
..: /etc -
pwd: printing working directory
显示工作目录 -
cd:change directory
cd [/PATH/TO/SOMEDIR]
cd: 切换回家目录;
注意:bash中, ~表示家目录;
cd ~:切换回自己的家目录
cd ~USERNAME:切换至指定用户的家目录;
cd -:在上一次所在目录与当前目录之间来回切换;
相关的环境变量
$PWD:当前工作目录
$OLDPWD:上一次的工作目录 -
ls: list, 列出指定目录下的内容
ls [OPTION]... [FILE]...
-a: 显示所有文件,包括隐藏文件;
-A:显示除.和..之外的所有文件;
-l: --long, 长格式列表,即显示文件的详细属性信息;
-h, --human-readable:对文件大小单位换算;换算后结果可能会非精确值;
-d:查看目录自身而非其内部的文件列表;
-r: reverse, 逆序显示;
-R: recursive,递归显示; -
cat:concatenate
文件文本查看工具;
cat /etc/fstab
cat /etc/passwd
cat [OPTION]... [FILE]...
-n:给显示的文本行编号;
-E: 显示行结束符$;
-
tac:
文件文本查看工具;
tac /etc/fstab
tac /etc/passwd
tac [OPTION]... [FILE]...
-n:给显示的文本行编号;
-E: 显示行结束符$; -
file:查看文件内容类型;
file [FILE]... -
echo:回显
echo [SHORT-OPTION]... [STRING]...
-n: 不进行换行;
-e:让转义符生效;
\n:换行
\t:制表符
STRING可以使用引号,单引号和双引号均可用;
单引号:强引用,变量引用不执行替换;
~]# echo '$SHELL'
$SHELL
双引号:弱引用,变量引用会被替换;
~]# echo "$SHELL"
/bin/bash
注意:变量引用的正规符号
${name}
-
日期相关的命令:
Linux:系统启动时从硬件读取日期和时间信息;读取完成以后,就不再与硬件相关联;
系统时钟:date:
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号; -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号; -u:显示GMT; --help:在线帮助; --version:显示版本信息。
显示日期时间:date [OPTION]... [+FORMAT]FORMAT:格式符
%H 小时(以00-23来表示)。 %I 小时(以01-12来表示)。 %K 小时(以0-23来表示)。 %l 小时(以0-12来表示)。 %M 分钟(以00-59来表示)。 %P AM或PM。 %r 时间(含时分秒,小时以12小时AM/PM来表示)。 %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 %S 秒(以本地的惯用法来表示)。 %T 时间(含时分秒,小时以24小时制来表示)。 %X 时间(以本地的惯用法来表示)。 %Z 市区。 %a 星期的缩写。 %A 星期的完整名称。 %b 月份英文名的缩写。 %B 月份的完整英文名称。 %c 日期与时间。只输入date指令也会显示同样的结果。 %d 日期(以01-31来表示)。 %D 日期(含年月日)。 %j 该年中的第几天。 %m 月份(以01-12来表示)。 %U 该年中的周数。 %w 该周的天数,0代表周日,1代表周一,异词类推。 %x 日期(以本地的惯用法来表示)。 %y 年份(以00-99来表示)。 %Y 年份(以四位数来表示)。 %n 在显示时,插入新的一行。 %t 在显示时,插入tab。 MM 月份(必要) DD 日期(必要) hh 小时(必要) mm 分钟(必要) ss 秒(选择性)
实例:
格式化输出:
输出昨天日期:~]#date +"%Y-%m-%d" 2018-11-29
2秒后输出:~]#date -d "1 day ago" +"%Y-%m-%d" 2018-11-28
具体时间后多少秒: [root@node03 15:14:03 ~]#date -d "2 second" +"%Y-%m-%d %H:%M.%S" 2018-11-29 15:14.07
普通的转换格式:~]#date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S" 2009-02-13 23:02:30
~]#date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S" 2009/12/12 00:00.00
~]#date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S" 2009-12-05 00:00.37
加减操作:~]#date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S" 2007-12-05 00:00.37
设定时间:~]#date +%Y-%m-%d #显示前天年月日 ~]#date -d "+1 day" +%Y-%m-%d #显示前一天的日期 ~]#date -d "-1 day" +%Y-%m-%d #显示后一天的日期 ~]#date -d "-1 month" +%Y-%m-%d #显示上一月的日期 ~]#date -d "+1 month" +%Y-%m-%d #显示下一月的日期 ~]#date -d "-1 year" +%Y-%m-%d #显示前一年的日期 ~]#date -d "+1 year" +%Y-%m-%d #显示下一年的日期
硬件时钟:hwclock, clock:硬件时钟~]#date -s #设置当前时间,只有root权限才能设置,其他只能查看 ~]#date -s 20120523 #设置成20120523,这样会把具体时间设置成空00:00:00 ~]#date -s 01:01:01 #设置具体时间,不会对日期做更改 ~]#date -s "01:01:01 2012-05-23" #这样可以设置全部时间 ~]#date -s "01:01:01 20120523" #这样可以设置全部时间 ~]#date -s "2012-05-23 01:01:01" #这样可以设置全部时间 ~]#date -s "20120523 01:01:01" #这样可以设置全部时间
显示或设定硬件时钟
-s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;
-w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同; -
cal:日历
cal [[month] year]
~]#cal 9 2018
九月 2018
日 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
未完,待续,每日更新。