clock:显示系统时钟
hwclock:显示硬件时钟
-s:读取硬件时钟到系统
-w:读取系统时钟到硬件
命令的使用帮助:
内部命令:help COMMAND
外部命令:COMMAND --help
如何查看命令是不是内部命令:type COMMAND
whatis COMMAND 可以显示命令出现在哪个章节
man分章节:
1、用户命令(/bin,/usr/bin,/usr/local/bin)
2、系统调用
3、库调用
4、特殊文件(设备文件)
5、文件格式(配置文件的语法)
6、游戏
7、杂项
8、管理命令(/sbin,/usr/sbin,/usr/local/sbin)
MAN的介绍:
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能详尽说明,可能包括每个选项的意义
OPTIONS:说明每个选项的意义
FILES:此命令相关的配置文件
EXAMPLES:事例说明
SEE ALSO:另外参照
翻屏:
向后翻屏:空格键
向前翻屏:b
向后翻一行:回车键
向前翻一行:k
查找功能:
/关键字:自前向后(n:下一个 N:上一个)
?关键字:自后向前
文件系统:
rootfs:根文件系统
/boot:系统启动相关文件,如内核、initrd、grub
/dev:设备文件
块设备:随机访问,数据块(如硬盘)
字符设备:线性访问,按字符问单位(如键 盘,显示器,鼠标)
设备号:主设备号,次设备号
/etc:配置文件
/home:用户家目录
/root:管理员的家目录
/lib:库文件
静态库:.a
动态库:.so(shared object)
/lib/modules:内核模块文件
/media:挂载点目录 移动设备
/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序安装目录
/proc:内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件系统
/var:可变化的文件
/bin:可执行文件,用户命令
/sbin:管理命令
/usr:应用程序主要存放目录
目录管理:
mkdir:创建空目录
-p:连续创建目录 如/root/x/y/z
-v:显示创建的详细信息
mkdir -pv /test/{x/y,y}:在/test下分别创建 x下y目录和test下 y目录
mkdir -pv /test2/{a,d}_{b,c}:创建目录为a_b a_c d_b d_c
rm:删除目录
删除空目录
-p:
文件的创建和删除
touch:
-a
-m
-t
-c
复制和移动文件
cp:copy
cp 源 目标
-r -R:复制目录
-p:保留文件属主属组复制
-a:保留文件所有的属性 常用于备份
-P:保留连接自有的属性
-L:复制连接指向的文件
复制原则:
一个文件到一个文件
多个文件到一个目录
移动文件:
mv 源 目标
-f:强制覆盖
-t 先指定目标 再指定源
查看文本:cat 、tac、 more 、less 、head、tail
cat:连接并显示,可以接多个文件
-n :带行号显示
-E:带行结束符显示
more:分屏显示 只能向后翻
less:
head:查看前n行 默认n=10
tail:查看后n行
-f 查看文件尾部不退出,等待显示追加内容
文本处理:
cut、join、sed、awk
cut:
-d :指定字段分隔符 默认是空格
-f :指定要显示的字段
1,3 第一和第三个字段
1-3 显示1-3字段
例:cut -d :-f1 /etc/passwd 显示此文件的第一个字段
文本排序:sort
sort:
-n 按照数值大小排序
-r 按照数值降序排序
-t 字段分隔符
-k 以哪个字段为准进行排序 例:sort -t : -k 3 /etc/passwd
-u 相同行只显示一次(相邻并且完全一样的行)
-f 忽略字符大小写
uniq:
-d 只显示重复的行
-D 重复的行都显示出来
-c 显示行重复的次数
文本统计:wc
wc:
-l 只显示行
-w 只显示单词
-c 字节数
-L 最长的一行包含多少个字符
字符处理命令 tr:转换或删除字符
tr
-d 删除某些字符
bash的特性
bash:
1、命令历史
2、管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、支持变量
8、支持编程
命令行编辑:
光标跳转
ctrl+a 跳到行首
ctrl+e 跳到行尾
ctrl+u 删除光标至行首
ctrl+k 删除光标至行尾
ctrl+l 清屏
命令历史:
查看命令历史:history
-c 清空整个命令历史
-d 清除单个命令历史 例:history -d 500 3 从第500个命令 往后删3个
-w 保存命令历史至历史文件
环境变量:
PATH:命令搜索路径
HISTSIZE:命令缓冲区大小
命令历史的使用技巧:
!n 执行第n条命令
!! 执行上一条命令
!字符串 例 !man
!$(类似按Esc,.) 引用前一个命令的参数 例vi !$
命令补全:
命令别名:
alias 别名=COMMAND
命令替换:
例 touch ./file-$(date +%F-%H-%M-%S).txt
bash支持的引号:
``:命令替换
“”:弱引用,可以实现变量替换
‘’:强引用,不完成变量替换
文件名通配:
*:任意长度的任意字符
?:任意单个字符
[]:匹配指定范围内的任意单个字符
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
#man 7 glob
r w x
文件:
r:可读,可以看此文件类型
w:可写,可以编辑或删除此文件
x:可执行
目录:
r:可以对此目录执行ls列出内部文件
w:可以在此目录创建文件
x:可以使用cd切换进此目录,也可以使用ls -l 查看详细信息
用户管理:
useradd [options] USERNAME
-u 指定UID
-g 指定GID(基本组)
-G GID,... 指定附加组
-c “指定注释信息”
-d 指定家目录
-s 指定shell
-M 不创建家目录
-r 添加系统用户
userdel [选项] USERNAME(默认不删除家目录)
-r 连同家目录一起删
id:查看用户账号属性
finger:检索用户账号的信息
修改用户账号信息:
usermod
-u 改UID
-g 改基本组
-a -G 追加附加组 不使用-a 会覆盖原来的附加组
-c 修改注释信息
-d -m 修改家目录 -m会移动此前的文件至新的家目录
-s 改shell
-L 锁定用户
-U 解锁
chsh:改用户shell
chfn:修改注释信息
密码管理
passwd USERNAME
--stdin 标准输入读取密码
-l 锁定用户账号
-u 解锁
-d 删除用户密码
pwck:检查用户账号完整性
组管理:
创建组:
groupadd
-g 指定GID
-r 添加系统组
groupmod
-g 改GID
-n 改名字
groupdel
gpasswd 为组设密码
权限管理
chown:改变文件属主
-R 递归修改
--reference=/某个文件 file 把file的属主属组改的和某文件一样
chgrp:修改属组
-R 递归修改
--reference
chmod :修改文件的权限
手动添加用户:
要求 :hive(5000,5000) 附加组 mygroup
改/etc/shadow /etc/passwd /etc/group 添加用户
cp -r /etc/skel /home/hive
chown -R hive:hive /home/hive
umask:遮罩码
666-umask 创建文件的权限(如果计算的文件有执行权限,则加1)
777-umask 创建目录的权限
登录式shell
su - USERNAME
su - l USERNAME
非登录式shell
su USERNAME
图形终端打开命令窗口
自动执行的shell脚本
bash的配置文件
全局配置
/etc/profile,/etc/profile.d/*.sh,/etc/bashrc
个人配置
~/.bash_file,~./bashrc
profile类的文件
设定环境变量
运行命令或脚本
bashrc类的文件
设定本地变量
定义命令别名
登录式shell如何读取配置文件
/etc/profile-->/etc/profile.d/*.sh-->~./bash_profile-->/etc
/bashrc
非登录式shell如何读取配置文件
~./bashrc-->/etc/basrc-->/etc/profile.d/*.sh
系统设定
默认输出设备:标准输出 STDOUT,1 显示器
默认输入设备:标准输入 STDIN,0 键盘
标准错误输出:STDERR,2 显示器
I/O重定向:
linux:
>覆盖输出重定向
>>追加输出
set -C禁止对已存在文件进行输出重定向
set +C关闭上述功能
>|强制覆盖输出
2> 重定向错误输出
2>>追加错误输出
&>重定向标准输出或错误输出至同一个文件
< 输入重定向
<< 在此处生成文档
管道 |
tee:保存成文件并能显示在屏幕上 例:echo "hello" | tee /tmp/aa
文本查找
grep:根据模式搜索文本,将符合模式的行显示出来
-i:忽略大小写
--color:带颜色显示
-v:显示没有被模式匹配的行
-o:只显示被匹配的字符串
-E:扩展的正则表达式
-A #:匹配行的后#行一起显示
-B # :匹配行的前#行一起显示
-C #:匹配行的前后#行一起显示
正则表达式:(默认工作在贪婪模式)
. 任意单个字符
[]:匹配范围内的任意字符
[^]:匹配指定范围外的任意字符
字符集:[:digit:] .....
匹配次数:
*:匹配其前面的字符任意次
.*:任意长度的任意字符
?:匹配其前面的字符1次或0次
\{m,n\}:匹配其前的字符至少m次,至多n次
锚定位置:
^:锚定行首
$:锚定行尾
^$:空白行
\<或\b:其后的任意字符必须作为单词首部出现
/>或\b:其前面的字符必须作为单词的尾部出现
分组:
\(\):
\(ab\)* ab可以出现任意次
扩展正则表达式:egrep
字符匹配:
.
[]
[^]
次数匹配:
*:
?:
+:其前字符至少一次
{m,n}:匹配其前的字符至少m次,至多n次
锚定字符
^
$
\<
\>
分组:
()
\1,\2,\3 ...
或者:
|:or ;;例 a|b