写在前面:
博客书写牢记5W1H法则:What,Why,When,Where,Who,How。
本节罗列了几个centOS上的众多基础命令。熟悉和掌握这些命令,将是以后运维的基础中的基础。这些命令将伴随整个运维生涯。
◆ pwd
◆ cd
◆ ls
◆ cat
◆ tac
◆ file
◆ echo
◆ shutdown
◆ which
◆ whereis
◆ who
◆ whoami
◆ w
◆ date
◆ hwclock|clock
◆ cal
◆ bash特征:
命令别名
命令历史
快捷键
pwd:Printing Working Directory
显示工作目录
补充:与pwd相关的有两个变量,“PWD”和“OLDPWD”,”PWD”存放当前工作目录,“OLDPWD”存放切换到当前目录之前所在的目录。
补充:假设,我们cd到一个链接到某目录的软链接,使用pwd命令显示为此链接路径,而如果我们需要显示真正链接的路径,可以使用pwd -P。
cd:chage directory
修改工作目录
cd[PATH]
cd #切换到当前用户家目录;
cd ~ #切换到当前用户家目录;
cd ~USER #切换到USER的的家目录;
cd - #切换到切换当前目录之前所在的目录,即OLDPWD变量存储的路径;
cd .. #切换到当前目录的父目录;
ls:list
列出指定目录下的内容
ls[OPTION]... [FILE]...
-a|--all:显示所有文件,包括.开头的隐藏文件;
-A|--almost-all:显示所有文件,不包括“.”和“..”;
-l:use a longlisting format,长格式显示,如图:
其具体含义如下:
-:文件类型,”-”表示文件类型为”普通文件”;
其他文件类型查看下面补充。
rw-r--r--:文件基本权限(permission)
前3位标示属主的读写执行权限;
中3位标示属组的读写执行权限;
后3位标示其他用户的读写执行权限;
.:selinux安全标签,开启selinux,系统会自动为文件添加安全上下文;
1:硬链接次数;
root:当前文件属主(owner);
root:当前文件属组(group);
189:文件大小(size),默认单位为字节(Byte);
Mar3 03:05:时间,文件最后一次被修改的时间;
.bashrc:文件名称;
-h|--human-readable:对文件大小进行易读的单位换算,将损失精度;
-d:查看目录本身的属性,而不是目录中内容;
-R:递归(recursive),显示子目录所有内容,如果子目录中又包含子目录,则继续显示。
-r:降序(reverse);
--color={never|auto|always}:着色设置;
补充:文件类型:
-:普通文件类型,出文本、二进制、数据文件都会被标记为-;
d:目录类型;
b:块设备(block);
c:字符设备(character);
s:套接字文件或者数据接口文件(sockets);
l:符号链接文件(symboliclinks files)
p:管道文件(pipe),在不同进程之间数据传递
cat:concatenate
连接并倾倒至输出设备
cat [OPTION]... [FILE]...
-n|--number:显示编号;
-E|--show-ends:显示行结束符”$”;
tac:
与cat相同,只不过从最后一行显示。
file:
查看文件类型
file/PATH/TO/FILE
echo:
回显
echo[SHORT-OPTION]... [STRING]...
-n:不自动附件换行符;
-e:启用转义符;
\n:换行;
\b:退格;
\t:水平制表符;
\v:垂直制表符;
补充:
字符串与数字:
数据有其类型,不同数据类型在存储时占用不同的存储空间,也决定了其是否能参与运算。如:
“127”:字符串类型,其每个字符占用一个字节,3个字符占用3Byte,24bits。
127:数值类型,转换为二进制为0111 1111:占用8bits。
bash是弱类型变成语言,不严格区分大小写,这意味着它会将所有数据当做字符串处理。
引用符号:
“”:弱引用,其内部变量会被替换;
‘’:强引用,其内部变量不会被替换;
・・:(数字1左边按键)命令引用,其内部数据会被当做命令执行,并返回输出;
${NAME}:变量引用;
shutdown:
shutdown[OPTIONS...] [TIME] [WALL...]
OPTIONS:
-h:关机
-r:重启
-c:取消尚未执行的关机或重启操作
TIME:
HH:MM 格式,定义到某时间执行操作
+m 格式,定义m分钟后执行操作
其他关机重启相关命令:
关机:hatl,poweroff,init 0,systemctl poweroff,systemctl halt
重启:reboot,init 6,systemctl reboot
which:
showthe full path of(shell)commands。
which[options] [--] programname [...]
-a:显示多有匹配的程序,而非第一个;
--skip-alias:略过别名;
whereis:
locatethe binary, source, and manual page files for a command。
whereis[options] [-BMS directory... -f] name...
-b:只查找程序;
-m:只查找man手册;
-s只查找源码;
who:
show who is logged on
who[OPTION]... [ FILE | ARG1 ARG2 ]
-a
-b:系统最后启动时间;
-r:显示系统运行级别
-u:显示登陆的用户
whoami
print effective userid
w:
Showwho is logged on and what they are doing.
w[options] user [...]
日期相关命令:
硬件时钟:由电池供电,依照主板石英晶体振荡器频率工作。
系统时钟:系统启动时,从硬件时钟读取并设定时间,而后又内核根据CPU频率来计时。
NTP:Network TimeProtocol。网络时间服务器。
date:
系统时间
date[OPTION]... [+FORMAT] #显示日期时间
date[MMDDhhmm[[CC]YY][.ss]] #设定系统时间
FORMAT:
%F full date; same as %Y-%m-%d
%T time; same as %H:%M:%S
%Y year
%m month (01..12)
%d day of month (e.g., 01)
%H hour (00..23)
%M minute (00..59)
%S second (00..60)
%u day of week (1..7); 1 is Monday
%s seconds since 1970-01-01 00:00:00 UTC
hwclock|clock:
硬件时钟
-s|--hctosys #同步硬件时钟到系统,即修改系统时间
-w|--systohc #同步系统时钟到硬件,即修改硬件时间
cal:
calendar,日历
cal[MONTH] [YEAR]
bash特征:
1、 命令别名
alias #定义命令别名
如:alias cdnet=”cd /etc/sysconfig/network-scripts/”
unalias #取消命令别名
2、 命令历史
shell进程会保存用户曾经执行过的命令,命令通过历史文件(用户家目录下的.bash_history文件)来持久存放执行过的命令。系统缓存的条目数量通过变量HISTSIZE控制,默认1000条;历史文件的可保存数目使用变量HISTFILESIZE控制,默认1000条;历史文件使用变量HISTFILE定义。
history -c #清空命令历史
history -d OFFSET #删除第OFFSET条目录
history # #显示最后#条历史记录
-a #将当前缓冲的历史行追加到历史文件,此时历史文件中的条目可能会多于HISTSIZE,登出或重启后自动删除多余项
-n #从历史文件中读取所有未被读取的行
-r #读取历史文件并将内容作为当前缓冲历史内容
调用历史列表命令:
!# #再执行一次第#号命令
!! #再执行一次上一条命令
!STRING #再执行一次以STRING开头的最近一条命令
ESC,. #调用上一条命令的最后一个参数
!$ #调用上一条命令的最后一个参数
控制命令历史的记录方式:
通过HISTCONTROL变量进行控制:
ignoredups:忽略连续的重复命令,默认值;
ignorespace:忽略以space开头的命令;
ignoreboth:忽略以上两者;
3、 快捷键
Ctrl+a:跳至命令行首;
Ctrl+e:跳至命令行尾;
Ctrl+k:删除光标所在处至尾部的内容;
Ctrl+u:删除行首至光标所在处的内容;
Ctrl+r:关键字搜索历史命令;
Ctrl+s:锁定,输入任何字符都不显示,但确实已经输入,甚至执行;
Ctrl+q:解除锁定状态。