文章目录
- 命令格式
- date
- hwclock,clock
- halt, poweroff (关机)
- screen命令
- 安装screen
- echo 显示字符
- tab键
- history 命令行历史
- 获得帮助
- man (详细的帮助文件)
- info (查看GNU工具的文档)
- 通过本地文档获取帮助
- 第三方应用官方文档
- 网站和搜索
- 文件系统与目录结构
- Linux上的应用程序的组成部分
- Linux下的文件类型
- CentOS 7目录变化
- pwd (显示当前工作目录)
- 绝对和相对路径
- cd (改变目录 使用绝对或相对路径):
- ls (列出目录内容)
- stat (查看文件状态)
- 文件通配符
- touch (创建空文件和刷新时间)
- cp (复制文件和目录)
- file (查看文件类型)
- mv (移动和重命名)
- rm (删除)
命令格式
-
多个选项以及多参数和命令之间使用空白字符分隔
-
取消和结束命令执行:Ctrl+c,Ctrl+d
-
多个命令可以用;符号分开
-
一个命令可以用\分成多行
date
显示和设置系统时间
- date +%s
- date -d
hwclock,clock
-
hwclock,clock: 显示硬件时钟
-
-s, --hctosys 同步成硬件时钟时间
-
-w, --systohc 以系统时钟为准,校正硬件时钟
-
时区 /etc/localtime
-
显示日历:cal –y
halt, poweroff (关机)
—重启:reboot
- -f: 强制,不调用shutdown
- -p: 切断电源
- 关机或重启:shutdown
—shutdown
shutdown [OPTION]… TIME [MESSAGE]
-
-r: reboot
-
-h: halt
-
-c:cancel
-
TIME:无指定,默认相当于 +1
-
now: 立刻,相当于+0
-
+m: 相对时间表示法,几分钟之后;例如 +3
[root@localhost ~]# shutdown -h +3
- hh:mm: 绝对时间表示,指明具体时间
#who 用户登录信息查看命令
- whoami: 显示当前登录有效用户
- who: 系统当前所有的登录会话
- w: 系统当前所有的登录会话及所做的操作
[root@localhost ~]# whoami
root
[root@localhost ~]# who
hai :0 2019-03-20 23:19 (:0)
hai pts/0 2019-03-20 23:19 (:0)
root pts/1 2019-03-20 23:21 (192.168.20.1)
root pts/2 2019-03-21 01:38 (192.168.20.1)
root pts/3 2019-03-21 01:41 (192.168.20.1)
[root@localhost ~]# w
02:28:06 up 3:09, 3 users, load average: 0.01, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
hai :0 :0 23:19 ?xdm? 1:06 0.22s /usr/li
hai pts/0 :0 23:19 46:46 0.07s 0.60s /usr/li
root pts/1 192.168.20.1 02:27 6.00s 0.04s 0.02s w
screen命令
-
可以远程协助
-
执行长时间任务,screen下远程软件崩溃也可运行
-
screen –S[SESSION]:创建新screen会话
-
screen –x [SESSION]:加入screen会话
-
exit:退出并关闭screen会话
-
Ctrl+a,d:剥离当前screen会话
-
screen -ls:显示所有已经打开的screen会话
-
screen -r [SESSION]:恢复某screen会话
安装screen
挂载光盘
-
mount: 挂载命令
+设备名 -
mount /dev/sr0 (空格)/mnt
-
df 查看挂载点
可选择挂在 mnt (mount)目录
[root@localhost ~]# mount /dev/sr0 /mnt mount: /dev/sr0 is write-protected, mounting read-only
mount: /dev/sr0 is already mounted or /mnt busy
/dev/sr0 is already mounted on /run/media/hai/CentOS 7 x86_64
/dev/sr0 is already mounted on /mnt
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 104806400 4327696 100478704 5% /
devtmpfs 915772 0 915772 0% /dev
tmpfs 931612 0 931612 0% /dev/shm
tmpfs 931612 10752 920860 2% /run
tmpfs 931612 0 931612 0% /sys/fs/cgroup
/dev/sda3 52403200 32992 52370208 1% /date
/dev/sda1 1038336 178092 860244 18% /boot
tmpfs 186324 4 186320 1% /run/user/42
tmpfs 186324 28 186296 1% /run/user/1000
/dev/sr0 10491772 10491772 0 100% /mnt
```bash
[root@localhost ~]# ls /mnt
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@localhost ~]# rpm -ivh /mnt/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm
warning: /mnt/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing... ################################# [100%]Updating / installing...
1:screen-4.1.0-0.25.20120314git3c29################################# [100%]
echo 显示字符
-
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
-
-E (默认)不支持 \ 解释功能
-
-n 不自动换行
-
-e 启用 \ 字符的解释功能
-
显示变量
echo "$VAR_NAME“
-
echo $PS1 输出-------ps1的变量值
-
强引用 echo ‘echo $PS1’ 六亲不认—echo $PS1
-
弱引用 echo “ echo $PS1” 输出—echo 变量值
-
echo
echo $PS1
什么都认 输出 变量值 即命令有效
用作命令调用命令
echo I am whoami I am root
—启用命令选项-e
若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
- \a 发出警告声
- \b 退格键
- \c 最后不加上换行符号
- \n 换行且光标移至行首
- \r 回车,即光标移至行首,但不换行
- \t 插入tab
- \ 插入\字符
- \0nnn 插入nnn(八进制)所代表的ASCII字符
echo -e ‘\033[43;31;5mmagedu\033[0m’ - \xHH插入HH(十六进制)所代表的ASCII字
—命令行扩展:$( ) 或 ``
- 把一个命令的输出打印给另一个命令的参数
echo "This system's name is $(hostname) “
echo "i am `whoami` “
- 括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5}
file1 file3 file5
rm -f file{1,3,5}
echo {1…10}
echo {a…z}
echo {000…20…2}
tab键
命令补全
-
内部命令:
-
外部命令:
bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令用户给定的字符串只有一条惟一对应的命令,直接补全否则,再次Tab会给出列表 -
路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名如果惟一:则直接补全否则:再次Tab给出列表
history 命令行历史
-
登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
-
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入 !-1 并回车执行 -
!:0 执行前一条命令(去除参数)
-
!n 执行history命令输出对应序号n的命令
-
!-n 执行history历史中倒数第n个命令
-
ctrl-r来在命令历史中搜索命(reverse-i-search)`’:
Ctrl+g:从历史搜索模式退出
要重新调用前一个命令中最后一个参数:
!$ 表示
Esc, .(点击Esc键后松开,然后点击 . 键)
Alt+ .(按住Alt键的同时点击 . 键)
- history
-c: 清空命令历史
-n: 显示最近的n条历史
获得帮助
—whatis 显示命令的简短描述
使用数据库
刚安装后不可立即使用
makewhatis | mandb制作数据库
使用示例:
whatis cal 或 man –f cal
command --help
man and info
/usr/share/doc/
Red Hat documentation
—命令帮助
内部命令: help COMMAND
man bash
外部命令: (1) COMMAND --help
COMMAND -h
(2) 使用手册(manual)
man COMMAND
(3) 信息页
info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google
—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
{ } 表示分组
man (详细的帮助文件)
—注意事项
-
手册页存放在/usr/share/man
-
man页面分组为不同的“章节”
-
man命令的配置文件:/etc/man.config |
man_db.conf -
MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
-
到指定位置下搜索 COMMAND 命令的手册页并显示
man - M /PATH/TO/SOMEWHERE COMMAND -
中文man需安装包man-pages-zh-CN
— man 章节
-
1: 用户命令
-
2: 系统调用
-
3: C库调用
-
4: 设备文件及特殊文件
-
5: 配置文件格式
-
6: 游戏
-
7: 杂项
-
8: 管理类的命令
-
9: Linux 内核API
—man 帮助段落说明
-
帮助手册中的段落说明:
-
NAME 名称及简要说明
-
SYNOPSIS 用法格式说明
-
[] 可选内容
-
<> 必选内容
-
a|b 二选一
-
{ } 分组
-
… 同一内容可出现多次
-
DESCRIPTION 详细说明
-
OPTIONS 选项说明
-
EXAMPLES 示例
-
FILES 相关文件
-
AUTHOR 作者
-
COPYRIGHT 版本信息
-
REPORTING BUGS bug信息
-
SEE ALSO 其它帮助参考#
—man搜索
- /KEYWORD:
以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;
n: 下一个
N:上一个
- ?KEYWORD:
以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字
符大小写;
n: 跟搜索命令同方向,下一个
N:跟搜索命令反方向,上一个
info (查看GNU工具的文档)
-
man常用于命令参考 ,GNU工具info适合通用文档参考。
-
没有参数,列出所有的页面
-
info 页面的结构就像一个网站
-
每一页分为“节点”
-
链接节点之前 *
—info [ 命令 ]
导航info页
-
方向键,PgUp,PgDn 导航
-
Tab键 移动到下一个链接
-
d 显示主题目录
-
Home 显示主题首部
-
Enter进入 选定链接
-
n/p/u/l 进入下/前/上一层/最后一个链接
-
s 文字 文本搜索
-
q 退出 info
通过本地文档获取帮助
-
/usr/share/doc目录
-
多数安装了的软件包的子目录,包括了这些软件的相关原理说明
-
常见文档:README INSTALL CHANGES
-
不适合其它地方的文档的位置
-
配置文件范例
-
HTML/PDF/PS 格式的文档
授权书详情
第三方应用官方文档
- 通过发行版官方的文档光盘或网站可以获得
安装指南、部署指南、虚拟化指南等
红帽知识库和官方在线文档
网站和搜索
http://www.slideshare.net (幻灯片)
Openstack filetype:pdf(搜索pdf文件)
rhca site:redhat.com/docs (搜索docs类型文件)
文件系统与目录结构
##文件系统
-
文件和目录被组织成一个单根倒置树结构
-
文件系统从根目录下开始,用“/”表示
-
根文件系统(rootfs):root filesystem
-
文件名称区分大小写
-
以.开头的文件为隐藏文件
-
路径分隔的 /
-
文件有两类数据:
元数据:metadata
数据:data
-
文件系统分层结构:LSB Linux Standard Base
-
FHS: (Filesystem Hierarchy Standard)
http://www.pathname.com/fhs/
—文件名规则
-
文件名最长255个字节
-
包括路径在内文件名称最长4095个字节
-
文件颜色
蓝色–>目录(文件夹)
绿色–>可执行文件
红色–>压缩文件
浅蓝色–>链接文件
灰色–>其他文件 -
除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。
-
标准Linux文件系统(如ext4),文件名称大小写敏感。例如:
MAIL, Mail, mail, mAiL
—根(…/)目录
-
/bin 基本的二进制命令 不能关联至独立分区,OS启动即会用到的程序
-
/boot 启动文件目录
-
/dev 硬件文件目录 设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问 -
/etc 配置文件 目录
-
/lib 库文件 启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
-
/lib 64 专用于x86_64系统上的辅助共享库文件存放位置
-
/media 移动设备的挂载点
-
/mnt 临时挂载点
-
/opt 第三方软件的安装目录
-
/sbin 管理类的基本命令 管理员运行的二进制程序
-
/tmp 临时文件存储位置
-
/root 管理员的家目录
-
/usr = windows+program file 第二层的分层结构结构二层根
-
/var 变化数据
-
/run 正在运行的数据文件
-
/proc 内存中正在运行的程序 硬盘中不存在
-
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
-
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
-
/usr 二级根目录
/usr universal shared, read-only data
bin: 保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
- /var: variable data files
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
Linux上的应用程序的组成部分
-
二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
-
库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
-
配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
-
帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man,/usr/local/share/doc
Linux下的文件类型
-
-:普通文件
-
d: 目录文件
-
b: 块设备
-
c: 字符设备
-
l: 符号链接文件
-
p: 管道文件pipe
-
s: 套接字文件socket
CentOS 7目录变化
- /bin 和 /usr/bin
- /sbin 和 /usr/sbin
- /lib 和/usr/lib
- /lib64 和 /usr/lib64
pwd (显示当前工作目录)
-
每个shell和系统进程都有一个当前的工作目录
-
CWD:current work directory
-
显示当前shell CWD的绝对路径
-
pwd: printing working directory
-P 显示真实物理路径
-L 显示链接路径(默认)
绝对和相对路径
- 绝对路径
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
- 相对路径名
不以斜线开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
- 基名:basename
- 目录名:dirname
cd (改变目录 使用绝对或相对路径):
cd /home/wang/
cd home/wang
-
cd … 切换至父目录
-
cd 切换至当前用户主目录:
-
cd - 切换至以前的工作目录:
-P 选项
相关的环境变量:
PWD:当前目录路径
OLDPWD:上一次目录路径
ls (列出目录内容)
-
ls [options] [ files_or_dirs ]
-
-a 包含隐藏文件
-
-l 显示额外的信息
-
-R 目录递归通过
-
-ld 目录和符号链接信息
-
-1 文件分行显示
-
–S 按从大到小排序
-
–t 按mtime排序
-
–u 配合-t选项,显示并按atime从新到旧排序
-
–U 按目录存放顺序显示
-
–X 按文件后缀排序
stat (查看文件状态)
-
文件:metadata元数据, data数据
-
三个时间戳:
access time:访问时间,atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变
文件通配符
- ‘*’ 匹配零个或多个字符
- ? 匹配任何单个字符
- ~ 当前用户家目录
- ~mage 用户mage家目录
- ~+ 当前工作目录
- ~- 前一个工作目录
- [0-9] 匹配数字范围
- [a-z]:小写字母
- [A-Z]:大写字母
- [wang] 匹配列表中的任何的一个字符
- [^wang] 匹配列表中的所有字符以外的字符
—预定义的字符类:man 7 glob
-
[:digit:]:任意数字,相当于0-9
-
[:lower:]:任意小写字母
-
[:alnum:]:任意数字或字母
-
[:blank:]:水平空白字符
-
[:space:]:水平或垂直空白字符
-
[:punct:]:标点符号
-
[:print:]:可打印字符
-
[:cntrl:]:控制(非打印)字符
-
[:graph:]:图形字符
-
[:xdigit:]:十六进制字符
touch (创建空文件和刷新时间)
—touch [OPTION]… FILE…
-
-a 仅改变 atime和ctime
-
-m 仅改变 mtime和ctime
-
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳 -
-c 如果文件不存在,则不予创建
cp (复制文件和目录)
- cp [OPTION]… [-T] SOURCE DEST
- cp [OPTION]… SOURCE… DIRECTORY
- cp [OPTION]… -t DIRECTORY SOURCE…
—cp常用选项
-
-i:覆盖前提示 –n:不覆盖,注意两者顺序
-
-r, -R: 递归复制目录及内部的所有内容
-
-a: 归档,相当于-dR --preserv=all
-
-d:–no-dereference --preserv=links 不复制原文件,只复制链接名
-
–preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all
- -p: 等同–preserv=mode,ownership,timestamp
- -v: --verbose
- -f: --force
- -u:–update 只复制源比目标更新文件或目标不存在的文件
- -backup=numbered 目标存在,覆盖前先备份加数字后缀
—拷贝单个文件 cp SRC DEST
-
cp SRC DEST
SRC是文件: -
如果目标不存在:
新建DEST,并将SRC中内容填充至DEST中
- 如果目标存在:
如果DEST是文件:
将SRC中的内容覆盖至DEST中 基于安全,建议为cp命令使用-i选项
如果DEST是目录:
在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
—拷贝多个文件
- cp SRC… DEST
SRC…:多个文件
DEST必须存在,且为目录,其它情形均会出错;
- cp SRC DEST
SRC是目录:此时使用选项:-r
-
如果DEST不存在:
则创建指定目录,复制SRC目录中所有文件至DEST中; -
如果DEST存在:
如果DEST是文件:报错
如果DEST是目录:
file (查看文件类型)
file [options] …
-
-b 列出文件辨识结果时,不显示文件名称
-
-f filelist 列出文件filelist中文件名的文件类型
-
-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
-
-L 查看对应软链接对应文件的文件类型
-
–help 显示命令在线帮助
mv (移动和重命名)
-
mv [OPTION]… [-T] SOURCE DEST
-
mv [OPTION]… SOURCE… DIRECTORY
-
mv [OPTION]… -t DIRECTORY SOURCE…
-
常用选项:
-i: 交互式
-f: 强制
rm (删除)
rm [OPTION]… FILE…
- 常用选项:
- -i: 交互式 (即会有提示)
- -f: 强制删除
- -r: 递归
- –no-preserve-root
示例:
rm -rf /