首先,先了解一下什么是shell?
Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送到内核去执行。Shell也被称为Linux的命令解释器,Shell是一种高级程序设计语言。
[root@localhost ~]# echo $SHELL 查看当前的shell类型
/bin/bash
[root@localhost ~]# cat /etc/shells 查看当前系统安装的shell
/bin/sh
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
在shell中可执行的命令有两类:内部命令和外部命令。
一.内部命令与外部命令
内部命令
由shell自带,而且通过某种命令形式提供,在系统启动时就调入内存,是常驻内存的,所以执行效率高。
外部命令
在文件系统路径下有所对应的可执行程序文件,用户需要时才从硬盘中读入内存。
type命令可以分辨内部命令与外部命令
enable既可以查看内部命令,同时也可以判断是否为内部命令
当执行一条命令时的查找顺序:别名(alias)>内部命令>外部命令:hash
PATH
也就是说当一条命令执行时
1.先去判断它是否是别名
2.判段命令是否是内部命令
3.看hash是否为空,若不为空,则去hash表中指定的路径查找
若以上三步都不执行,则按照path路径挨个查找。
二.常用的简单命令
screen命令:
screen -S 会话名 创建新screen会话
screen -x 会话名 加入已创建的screen会话
screen -ls 显示所有已经打开的screen会话
exit 退出并关闭screen会话
echo命令:
$() 或 `` 把一个命令的输出打印给另一个命令的参数
$(()) 或$[] 进行运算
使用${}或"$变量名" 划定变量名的起止范围
history命令:显示当前终端的历史记录
bash快捷键:
Ctrl+l 清屏,相当于clear命令
Ctrl+o 执行当前命令,并重新显示本命令
Ctrl+s 阻止屏幕输出,锁定,但仍可以运行命令。
Ctrl+q 允许屏幕输出
Ctrl+c 强制结束
Ctrl+d 正常终止
Ctrl+z 挂起(暂停)命令
man中的章节
1.用户命令
2.系统调用
3.C库调用
4.设备文件
5.配置文件格式
6.游戏
7.杂项
8.管理类的命令
9.Linux 内核API
以上章节 1,5,8章节是重点常用章节
man -w ls 查看文件路径
man 5 passwd 显示第五章节内容
三.文件管理
Linux文件系统是一个树形结构,为了有序地管理那些文件,人们习惯把这些文件当做是硬盘上的有序的树状结构,正如我们熟悉的'MS-DOS'(磁盘操作系统)就是一个例子。大的分枝包括更多的分枝,分枝的末梢是树的叶子或者普通的文件。
文件有两类数据:元数据(metadata)
数据(data)
文件名规则:蓝色-->目录
红色-->压缩文件
绿色-->可执行文件
浅蓝色-->链接文件
灰色-->其他文件
ls用法
ls -a 显示所有文件
ls -A 显示所有文件,除.、..
ls -l 长列出
-rw-r--r--. 1 root root 2193 Jul 14 17:28 passwd
文件类型|owner权限group权限other权限|硬链接数|owner|group|文件大小(bytes)|mtime|文件名
(文件类型 在长列出时能够看到)
-: 普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 软链接
p: 管道文件
s: 套接字文件
ls -R 递归
ls -ld 显示指定目录的详细信息。
ls -1 竖显示
ls -S 按文件大小降序排列
ls -t 按修改时间(mtime)从新到旧排列
ls -ut 按访问时间(atime) 从新到旧排列
ls -U 按文件存放的先后顺序
ls -X 按文件后缀排序
ls -i 显示inode号
时间戳:
atime 访问时间
mtime 文件数据修改时间
ctime 文件元数据修改时间
四.硬链接和软链接
硬链接
创建硬链接会增加额外的记录项以引用文件
对应于同一个文件系统上一个物理文件
每个目录引用相同的inode号
创建时链接数递增
不能跨越驱动器或分区
语法:ln filename linkname(不能跨分区)
软连接
一个符号链接指向另一个文件
ls -l 的显示链接的名称和引用的文件
一个符号的链接内容是它引用文件的名称
可以对目录进行
可以跨分区
指向的是另一个文件的路径
语法:ln -s filename linkname(可以跨分区,源被删除,链接也不可用)
五.重定向和管道
把输出和错误重新定向到文件: 命令 操作符号 文件名
支持的操作符号包括:
把标准输出重定向到文件 2> 把标准错误重定向到文件 &> 把全部输出重定向到文件 文件不存在时,>和>> 都能创建新文件,文件已存在时 >表示覆盖,>>表示追加 2>&1 把错误的结果转成正确的结果 1>&2 把正确的结果转成错误的结果