目录
一.shell
二,内部命令与外部命令
三,命令行格式
四,编辑Linux命令行的辅助操作
五,获得命令帮助的方法
【Linux系统下一切皆文件】
一,shell
Linux系统中运行的一种特殊程序
在用户和内核之间的翻译官(解释器)
用户登录Linux系统时,自动加载一个shell程序
bash是Linux系统中默认使用是shell程序
文件位于/bin/bash
过程:
用户输入命令,传递给shell,shell解释命令(二进制),
传递给系统内核,内核识别二进制,调用硬件执行。
二,内部命令与外部命令
内部命令:
集成于shell解释器程序内部的一些特殊指令,亦称之为内建指令
属于shell的一部分
没有单独对应的系统文件
自动载入内存,可以直接使用
常驻内存,执行效率高
外部命令:
能够完成特定功能的脚本文件或二进制程序
属于shell解释器程序之外的命令
每个外部命令对应系统中的一个文件
必须知道其对应的文件位置,有shell加载后才能执行
从硬盘中调用指定文件去执行
查看内部命令:enable
禁用内部命令:enable -n
type cd cd是shell的内嵌(内部命令)
type -a ll ll 是 `ls -l --color=auto' 的别名(外部命令 )
whereis ls 查看ls命令在哪个目录下ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
type -a echo echo 是 shell 内嵌,echo 是 /usr/bin/echo
第一次命令执行完后,存在缓存,下次可快速执行
hash 查看命令执行次数 -d清除指定命令缓存 -r清除hash表
命中 命令
3 /usr/sbin/service
1 /usr/bin/hostname
which ping /usr/bin/ping 查看命令路径
三,命令行格式:
命令字 【选项】【参数】[英文字符区分大小写]
命令字:是整条命令中最关键的一部分,唯一确定一条命令
选项:短格式选项:使用’-‘符号引导
长格式选项:使用’--‘符号引导
参数:命令字的处理对象
可以是文件名,目录(路径)名或用户名等内容
个数可以是零到多个
四,编辑Linux命令行的辅助操作
Tab键:自动补齐
反斜杠"":强制换行
ctrl+u组合键:清空至行首
ctrl十K组合键:清空至行尾
ctrl十L组合键:清屏
ctrl十c组合键:取消本次命令编辑
ctrl+E组合键:光标跳到行尾
ctrl+A组合键:光标跳到行头
五,获得命令帮助的方法
内部命令help:查看Shell内部命令的帮助信息
命令的"--help”选项:适用于大多数Linux外部命令
使用man命令阅读手册页
使用“个”,“!"方向键滚动一行文本
使用Page Up和Page Down键翻页
按Q或q键退出阅读环境
man命令
man ls l col -b > lshelp.txt
在这个例子中,col是一个命令程序,用于过滤文本中的一些特殊控制字符;另外还使用了"|I"和">"符号,这是 shell环境中的两种特殊功能应用,分别称为管道、重定向输出。其含义及作用如下所述。
管道:用竖杠符号"|"表示,用于将前面命令的屏幕输出结果作为后面命令的操作对象(输入)。就好像一根管道一样,从这头塞入内容,从另一头出来。
重定向输出:用大于符号">"表示,前面的命令成功执行以后,其屏幕输出结果将保存到">"号后边指定的文件中,而不是直接输出到屏幕,因此称为重定向。
ls :列表显示目录内容(常用选项、可结合通配符)命令字
-l#将文件信息属性详细列出,通常直接使用ll,因为设置了别名
-R#递归显示,比如一个目录下还有文件,则把那个文件也一起列出
-d#查看目录本身信息,不显示目录下的内容
-i#显示inode值(字节)
-h#友好显示文件大小
-a#遍历所有文件及目录
( ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-A#跟-a 唯一的不同是不列出当前目录和上一层目录
ls -lh
ls -ld(只显示当前文件夹具体信息)
【dr-xr-x---. 2 root root 135 12月 14 19:08
文件所有者 属组 文件大小】
xshell颜色区别
【ls --color=no 设置为无
vi /etc/DIR_COLORS设置文件颜色,重启后生效】
黑色数据文件,
深蓝色是目录,
绿色可执行文件,
黄色块设备文件,
红色压缩包,
天蓝色连接文件(快捷方式)
Linux文件类型
-普通文件
d 是目录(drrectory)
b 块设备block
p 管道文件pipe
s 套接字文件socket
l 符号链接文件link
通配符
"?"匹配一个字符
"*"匹配所有的文件,不匹配 . 开头的隐藏文件
. * 包括删除目录
alias:别名
alias lh='ls -lh'设置lh为ls -lh的别名
unalias lh 删除别名
vi /root/.bashrc进入后
编辑别名,永久保存,必须重启才生效
du :统计目录及文件空间占用情况
-a统计磁盘空间占用时包括所有的文件
-h友好显示
-s显示占用空间的总大小(文件或整个目录的大小)
du -sh *具体显示文件占用大小
mkdir:创建新的目录
mkdir 【选项】目录位置及名称
-p 一次性创建嵌套的多层目录
mkdir -p /aa/bb/cc
mkdir {a..z}
创建文件
touch 文件
touch aa bb创建两个空文件,名为aa和bb
echo “xxxx.txt”> xxx
vi直接编辑文件 vi aa.txt
ln:软硬链接区别:
软链接:ln -s 相当于快捷方式,源文件删除后,无法查看,可以跨任何设备,支持文件夹
硬链接:ln 不能跨设备,建立链接,无法对文件夹创建
cp:复制文件或目录
cp 【选项】 源文件或目录 目标文件或目录
目录需要加-r 递归
cp a.txt /dev/ 文件可以直接执行
-f 覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i 覆盖目标同名文件或目录时提醒用户确认
-p 复制时保持源文件的权限,属主及时间标记等属性不变
-r 复制目录时必须使用选项,表示递归复制所有文件及子目录
-a 保留权限
cp -v 常用于备份
rm:删除指定的文件或目录
rm 【选项】 删除的文件或目录
-i 删除时提醒用户确认
-r 递归删除整个目录树
-f 不提醒,直接强制删除
删除空目录 rmdir
mv:用来为文件或目录改名、或将文件或目录移入其它位置
若目标位置与源位置相同,相当于执行重命名操作
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
将文件 aaa 改名为 bbb :
mv aaa bbb
将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv info/ logs
再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为:
mv /usr/runoob/* .
find :【查找文件或目录位置】 【查找条件类型】
采用递归方式,根据目录的名称,类型,大小等不同属性
-name 按名字查找
-size 按文件大小查找
find /data/ -size 4M(大小4M的文件)
find /data/ -size +4M(大于4M的文件)
find /data/ -size -4M(小于4M的文件)
-user 按文件属主查找
-type 按文件类型查找
-a 表示而且
-o 表示或者
【设置 find 命令的查找条件时,若需要使用“”或“?”通配符,最好将文件名用双引号括起 来,以避免当前目录下符合条件的文件干扰查找结果
find /boot -size +1024k -a/-o -name "vmlinuz"
使用“-a”“-o”组合两个条件,前者表示两个条件必须同时满足, 后者表示只需满足其中任何一个条件即可】
find /boot -type d
find /boot ! -type d 查找目录下的非文件夹
find /boot -type d | xargs chmod 777 -R 查找目录类型并赋予权限
寻找指定的文件并显示大小:find /etc/ -size +1M |xargs du -sh
详细显示:find /etc/ -size +1M |xargs ls -l
(xargs后只能根命令 -参数,别名无效)
查找存在的用户的文件
find /home -user 用户名
find /home -user 用户名 -group 组名
总结
1.Shell在用户和内核之间充当“翻译官”
2.Linux命令分为内部命令和外部命令
3.获得Linux命令帮助的方法:help或man