一、linux命令

SHELL

文件位于/bin/bash

查看linux是否有es linux查看sh_当前目录

cat /etc/shells

查看linux是否有es linux查看sh_查看linux是否有es_02

常见的linuxshell有sh、bash、csh、tcsh、ash  其中bash shell是linux默认的shell

查看系统默认shell命令  echo $SHELL

LINUX命令分类

内部命令

 

外部命令

 

集成于 Shell 解释器程序内部的一些特殊指令,也称为内建(Built-in)指令

Linux系统中能够完成特定功能的脚本文件或二进制程序

属于 Shell 的一部分

属于 Shell 解释器程序之外的命令

没有单独对应的系统文件

每个外部命令对应了系统中的一个文件

自动载入内存,可以直接使用

必须知道其对应的文件位置,由 Shell 加载后才能执行

 

查看linux是否有es linux查看sh_当前目录_03

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等。

通用的命令行使用格式

查看linux是否有es linux查看sh_查看linux是否有es_04

 命令字

是整条命令中最关键的一部分

唯一确定一条命令

查看linux是否有es linux查看sh_当前目录_05

 

选项

短格式选项:使用“-”符号引导

多个单字符选项可以组合在一起使用   ----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简单

 

查看linux是否有es linux查看sh_子目录_06

目录和文件基本操作

pwd 命令

cd 命令

ls 命令

du 命令

显示当前的工作目录

Pwd

 将用户的工作目录更改到其他位置

格式

 

说明

cd  目标位置

切换到目标位置

cd  ~

cd 

若不指定目标位置,切换到当前用户的宿主目录

cd  -

切换到上一次执行 cd 命令之前所在的目录

Cd ..

切换到上级目录

Cd .

当前目录  比如:cd ./haha   ----切换到当前目录下的haha目录

目录操作

绝对目录:从根目录开始的路径表示方式

相对目录:从当前目录开始的路径表示方式

示例:cd ..  相对路径表示法进入上级目录。

查看linux是否有es linux查看sh_子目录_07

 

 显示目录中内容,包括子目录和文件相关属性信息

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

根据目标文件的大小进行查找
 一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件
 常用的容量单位包括 kB(注意 k 是小写)、M、G

find . -type f -empty            #查找大小为0的文件或空目录

find . -type f -size +1000000c -print    #查长度大于1Mb的文件

find . -type f -size +2k            #搜索当前目录下大于2KB的文件

按文件属主查找

-user

根据文件是否属于目标用户进行查找

按文件类型查找

-type

根据文件的类型进行查找
 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
 块设备是指成块读取数据的设备(如硬盘、内存等),字符设备是指按单个字符读取数据的设备(如键盘、鼠标等)

find . -type d -print     #只列出当前目录所有的子目录
find . ! -type d -print  #只列出当前目录的非子目录(文件)
find . -type f -print     #只列出当前目录所有的文件
find . -type l -print     #只列出当前目录的所有符号链接
find . -type c -print    #只列出当前目录的所有字符设备
find . -type b -print    #只列出当前目录的所有块设备
find . -type s -print    #只列出当前目录的所有套接字
find . -type p -print    #只列出当前目录的所有Fifo

扩展

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)