一、linux命令
SHELL
文件位于/bin/bash

cat /etc/shells

常见的linuxshell有sh、bash、csh、tcsh、ash 其中bash shell是linux默认的shell
查看系统默认shell命令 echo $SHELL
LINUX命令分类
内部命令
| 外部命令
|
集成于 Shell 解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于 Shell 的一部分 | 属于 Shell 解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由 Shell 加载后才能执行 |

Echo $PATH
内部命令实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。比如:exit,history,cd,echo等。
外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin......等等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。
通用的命令行使用格式

命令字
是整条命令中最关键的一部分
唯一确定一条命令

选项
短格式选项:使用“-”符号引导
多个单字符选项可以组合在一起使用 ----ls -a ls -l ls -al
长格式选项:使用“--”符号引导
参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
编辑 Linux 命令行的辅助操作
Tab 键
反斜杠“\” ---如果输入一行命令内容过长,终端会自动换行,也可以通过插入反斜杠\强制换行
Ctrl+U 快捷键 -------快速删除光标之前的所有字符内容
Ctrl+K 快捷键-----快速删除从点前光标处到行尾的所有字符
Ctrl+L 快捷键-----快速清空屏幕显示
Ctrl+C 快捷键----取消当前命令
如何获得命令帮助
问题
如何能快速、正确使用命令完成操作?
取得帮助方法
使用help 命令
Help pwd
使用“--help”选项
使用man 手册页 (pageup pagedown翻页 q退出)
help:大多数GNU工具都有--help 选项,用来显示工具的一些信息,用法
man:--(manual)显示系统的手册页,也就是查看帮助文档,如果系统没有文档,是不会显示这些帮助信息的,比help要详细
info:是一个基于菜单的超文本系统,是由GNU项目开发并由Linux发布,包括一些关于Linux Shell,工具,GNU项目开发程序说明文档,不但显示一些选项,还会有一些范例
注:一般man用的比较多,比help细,比info简单

目录和文件基本操作
pwd 命令
cd 命令
ls 命令
du 命令
显示当前的工作目录
Pwd
将用户的工作目录更改到其他位置
格式
| 说明 |
cd 目标位置 | 切换到目标位置 |
cd ~ cd | 若不指定目标位置,切换到当前用户的宿主目录 |
cd - | 切换到上一次执行 cd 命令之前所在的目录 |
Cd .. | 切换到上级目录 |
Cd . | 当前目录 比如:cd ./haha ----切换到当前目录下的haha目录 |
目录操作
绝对目录:从根目录开始的路径表示方式
相对目录:从当前目录开始的路径表示方式
示例:cd .. 相对路径表示法进入上级目录。

显示目录中内容,包括子目录和文件相关属性信息
ls [选项] [文件或目录… ]
ls –l ------长格式显示
标志
d代表目录
-代表文件
l代表链接
ls –a 连同显示隐藏文件,以.开头的文件或目录
ls –ld 显示目录本身的信息
ls –lh 以友好的表示方式显示信息
常用选项
-l 、 -a 、 -A 、 -d 、 -h 、 -g 、 --color
结合通配符
“?”:匹配文件名中的一个未知字符
“*”:匹配文件名中的任意多个字符
ls --color ---在字符模式中颜色区分文件类型
深蓝色----目录
白色-------文件
绿色----可执行文件
黄色---设备文件
红色------压缩文件
通过别名机制简化常用的、比较长的命令
alias 命令别名 = 命令
设置myls 为ls – alh 的别名
alias myls = ‘ls – alh’
永久保存定义别名的方式
编辑 ~/.bashrc -----个人配置文件
/etc/bashrc -----全局配置文件
alias la='ls -a -l'
==========================================================
统计指定目录(或文件)所占用磁盘空间的大小
du [选项] [文件或目录… ]
选项
| 示例
|
-a
| 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h
| 显示出目录或文件的大小(K、M),默认的大小单位为字节(KB) |
-s
| 只统计每个参数所占用空间总的大小,而不是统计每个子目录、文件的大小 |
df –h显示剩余磁盘空间
mkdir rmdir
创建新的空目录
mkdir [选项] 目录位置及名称
-p:一次性创建嵌套的多层目录
Rmdir删除子目录时,必须是空的。
创建空文件 – touch
更新文件的时间标记
经常用于创建多个新的空文件
touch 文件…
创建链接文件 – ln
为文件或目录建立链接文件
文件类型
软链接,又称符号链接(理解为快捷方式)
硬链接
ln [-s] 源文件或目录… 链接文件或目标位置
| 软链接-s | 硬链接 |
删除原始文件后 | 失效 | 仍旧可用 |
使用范围 | 适用于文件或目录 | 只可用于文件 |
保存位置 | 与原始文件可以位于不同的文件系统中 | 必须与原始文件在同一个文件系统(如一个Linux分区)内 |
取消软链接
Unlink 链接名
如:unlink aa1.txt
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
cp [选项]… 源文件或目录… 目标文件或目录…
选项
| 说明
|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
注意:
复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
复制文件的样式
Cp 文件名子目录中
如:cd /root
cp initial-setup-ks.cfg a1
cp 文件名新文件名
在当前目录复制出一个新文件
支持通配符*?
复制一个目录及里面所有文件到另一个目录中
Cp –r b3 b34
删除指定的文件或目录
rm [选项] 要删除的文件或目录…
常用选项
-f(强制)、-i(友好提示)、-r(连同子目录)
其中rf可以组合使用
猜一猜:下面命令实现的功能
rm -rf public_html/grub/
rm -i public_html/apg.conf
注意:
不要直接删除系统中已有的目录或配置文件,以避免出现意外故障
移动文件或目录mv
mv [选项] … 源文件或目录… 目标文件或目录
将指定的文件或目录转移位置
如果目标位置 与源位置相同,则相当于执行重命名操作
mv mytouch mkfile
mv mkfile public_html/
查找命令/文件存放目录
搜索范围由环境变量 PATH 决定(echo $PATH )
which 命令|程序名
which -a 命令|程序名
查找文件或目录-find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
find [查找范围] [查找条件表达式]
查找类型 | 关键字 | 说明 |
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 find / -name "*.txt" -print #在当前目录中中查.txt文件并显示 find . -name "[A-Z]*" -print #在当前目录中查以大写字母开头的文件并显示
|
按文件大小查找 | -size | 根据目标文件的大小进行查找 find . -type f -empty #查找大小为0的文件或空目录 find . -type f -size +1000000c -print #查长度大于1Mb的文件 find . -type f -size +2k #搜索当前目录下大于2KB的文件 |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找 find . -type d -print #只列出当前目录所有的子目录 |
扩展 | Xargs |
|
|
|
|
find . -type d -empty | xargs rmdir #删除当前目录下所有空文件夹
find . -type f -empty | xargs rm -rf #递归查找当前目录及子目录下所有空文件并删除,rm 的 -r参数表示递归,-f表示强制删除
find . -name "*.txt" | xargs rm -rf #查找当前目录下所有.txt文件并删除
例如:
find . -type f -atime +10 -name "*.txt" -exec cp {} /data \; #找到10天前访问的.txt文件并复制到/data目录中
find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777
find . -type f -user root -exec chown ubuntu {} \; #将当前目录下所有root的文件改为属于ubuntu
find /haha -name “grep.txt” -exec rm -rf {} \; #注意格式:{}后面有空格 \后面有;
find . -name ap* -o -name may* #查找以ap或may开头的文件
find / -name "aa*.log" –ls
find / -size +100M –ls
find /etc -size -10k -ls
find / -user abc -ls
find /root/b35 -type f -ls
各表达式之间使用逻辑运算符
“-a”表示 而且(and)
“-o”表示 或者(or)
find /boot -size +1024k -a -name "vmlinuz*“
find /boot -size +1024k -o -name "vmlinuz*"
知识梳理
查看及切换目录(pwd、cd、ls、du、df)
创建目录和文件(mkdir、touch、ln)
复制、删除、移动目录和文件(cp、rm、mv)
查找目录和文件(which、find)
















