文章目录
一.Shell及Linux命令基础
(一)Shell
1.Linux系统中运行的一种特殊程序
2.在用户和内核之间充当“翻译官”
3.用户登录Linux系统时,自动加载一个Shell程序
4.Bash是Linux系统中默认使用的Shell程序
(文件位于/bin/bash)
(二)Linux命令基础
1.Linux命令的分类
内部命令与外部命令的区别
2.Linux命令行的格式
通用的命令行使用格式
分别对应的功能:操作 功能 要执行的对象 (英文字符区分大小写)
- 命令字
是整条命令中最关键的一部分
唯一确定一条命令
- 选项
短格式选项:使用“-”符号引导(多个单字符选项可以组合在一起使用)
长格式选项:使用“--”符号引导
- 参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
3.编辑Linux命令行的辅助操作
Tab键:自动补齐
反斜杠“\”:强制换行
Ctrl+U组合键:清空至行首
Ctrl+K组合键:清空至行尾
Ctrl+L组合键:清屏
Ctrl+C组合键:取消本次命令编辑
4.获得命令帮助的方法
- 内部命令 help
查看Shell内部命令的帮助信息
- 命令的“–help”选项
适用于大多数Linux外部命令
- 使用man命令阅读手册页
使用"“↑”、“↓”(ENTER)方向键滚动一行文本
使用Page Up和Page Down(空格)键翻页
按Q或q键退出阅读环境
按“\”键查找内容,n键向下查找,N键向上查找
二.Linux命令帮助
(一)查看当前的工作目录-pwd(绝对路径)
pwd命令用于显示用户当前所在的工作目录位置,工作目录是用户操作文件或其他子目录的默认位置起点。
(二)切换工作目录-cd
将用户的工作目录更改到其他位置
补充:cd … 切换到上一层目录(父目录)
绝对路径:以根目录为起点的路径叫绝对路径 cd /
相对路径:以当前目录为起点的路径
相对路径表现形式
(三)列表显示目录内容-ls
- 显示目录中内容,包括子目录和文件相关属性信息
- 常用选项
-l #将文件信息属性详细列出,通常直接使用ll,因为设置了别名
-R #递归显示,比如一个目录下还有文件,则把那个文件也一起列出
-d #查看目录本身信息,不显示目录下的内容
-i #显示inode值
-h #友好显示文件大小
-a #遍历所有文件及目录(ls内定将文件名或目录开头为“.”的视为隐藏档,不会列出)
-A #跟-a唯一的不同是不列出当前目录和上一层目录
颜色区别:
色数据文件 TXT
绿色 可执行文件
黄色 块设备文件
红色 压缩包
蓝色 文件夹
天蓝色 连接文件(快捷方式)
- 结合通配符
“?”:匹配文件名中的一个未知字符
“*”:匹配文件名中的任意多个字符
“[]”:表示可以匹配字符组中的任意一个字符[abc]、[a-f]
(四)设置别名-alias
- 通过别名机制简化常用的、比较长的命令
alias命令别名=‘命令’(=等号两边都不要空格,命令用‘’单引号)
示例:设置myls为ls -alh的别名
alias myls=‘ls -alh’
- 取消别名
unalias 命令别名
(五)统计目录及文件空间占用情况-du
- 统计指定目录(或文件)所占用磁盘空间的大小
- 常用选项
-a :统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h : 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s : 只统计所占用空间总的大小,而不是统计每个子目录、文件的大小
- 示例:
统计出/var/log目录所占用空间的大小
(六)创建新目录-mkdir
- 创建新的空目录
- 示例:
在当前目录下创建名为public_html的子目录
创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc
(七)创建空文件-touch命令
-
更新文件的时间标记
-
经常用于创建多个新的空文件
- 示例
创建两个空文件,文件名分别为aa和bb
(八)创建链接文件-ln
-
为文件和目录建立链接文件,类似于windows系统的快捷方式
-
链接文件类型
软链接(又称为符号链接ln-s)
建立软连接时源文件需要使用绝对路径表示。源文件位置不变,软链接文件位置不管在哪都有用,相对路径改变文件位置将失效。
例:ln -s 源文件或目录…链接文件或目标位置
硬链接
ln 源文件或目录…链接文件或目标位置
源文件以绝对路径表示,硬链接相对于创建一个别名文件,源文件删除后仍然有用。
- 示例
ln -s 创建软链接,相当于创建一个快捷方式
ln 创建硬链接,相当于复制了一份副本
- 硬软链接区别:
硬链接不能跨分区建立连接,无法对文件夹创建
删除硬件连接可以继续访问硬链接
软链接可以跨设备,可以支持文件夹
软链接删除源文件不能访问
(九)复制文件或目录-cp
- 将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
- 常用选项
注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在。
(十)删除文件或目录-rm
-
删除指定的文件或目录
-
常用选项
-f:删除文件或目录时不进行提醒,而直接强制删除。
-i:删除文件或目录时提醒用户确认。(y表示删除,n表示不删除)
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。
常见用法:rm -rf /*
删除空目录:rmdir
注:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。
- 示例
(十一)移动文件或目录/改名-mv
-
将指定的文件或目录转移位置
-
如果目标位置与源位置相同,则相当于执行重命名操作
用法:mv [文件名] [目录名]
mv [文件名] [文件名]
-i:若指定目录已有同名文件,则先询问是否覆盖旧文件
-f:在mv操作要覆盖已有的目标文件时不给任何指示
当在同一目录下用mv就是改名,如果是跨目录使用mv的话就是移动,相当于剪切的操作。
- 示例
(十二)查找命令/文件存放目录-which
搜索范围由环境变量PATH决定(echo $PATH)
或
which命令用于查找Linux命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量PATH决定(可以执行“echo $PATH”命令查看),这个范围也是Linux操作系统在执行命令或程序时的默认搜索路径。
示例
(十三)查找文件或目录-find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
常用查找条件类型
1.Find工具-name参数案例:
find /etc -name “resol*.conf”
find /data/ -name “*.txt” #查找/data/目录以.txt结尾的文件
find /data/ -name “[A-Z]*” #查找/data/目录以大写字母开头的文件
find /data/ -name “test*” #查找/data/目录以test开头的文件
2.Find工具-size参数案例
find /data/ -size +1M #查文件大小大于1Mb的文件
find /data/ -size 4M #查文件大小为10M的文件
find /data/ -size -1M #查文件大小小于1Mb的文件
-size +4M 表示4M以上不包括4M
-size 4M 表示3M到4M,且不包括3M
-size -4M 表示3M以内包括3M
3.Find工具-type参数案例:
find /boot -type d
find /data/ -type d #查找/data/目录下的文件夹
find /data/ ! -type d #查找/data/目录下的非文件夹
find /data/ -type 1 #查找/data/目录下的链接文件
find /data/ -type d|xargs chomd 755 -R #查目录类型并将权限设置为755
find /data/ -type f|xarge chomd 644 -R #查文件类型并将权限设置为644
4.查找存在的用户的文件
find /home -user 用户名
find /home -user 用户名 -group 组名
设置find命令的查找条件时,若需要使用“*”或“?”通配符,最好将文件名用双引号括起来,以避免当前目录下符合条件的文件干扰查找结果。
find /boot -size +1024k -a/-o -name “vmlinuz*”
使用““-a”"-o"组合两个条件,前者表示两个条件必须同时满足,后者表示只需满足其中任何一个条件即可。
扩展:
- xargs
可以和管道配合
find ./ -maxdepth 1 -type f -print0 |xarge -o ls -lh
-atime #访问时间
Linux中日志放在/var/log sylog
- -mtime #文件内容修改时间
-ctime #文件属性修改时间
ctime #以天为单位 cmin #以分钟为单位
find ./ -name “syslog.*.gz” -mtime -5 -exec ls -lh ( ) :
#+5是五天以前 -5是五天以内
在当前目录下(包含子目录),删除所有txt文件
find ./ -name “*.txt” -exec rm { } :
在当前目录下(包含子目录),查找所有txt文件并找出含有字符串“bin”的行
find ./ -name “*.txt” -exec grep “bin” { } :
- 多条件查找
-a:并且 -o:或者
[root@locaihost~]#find /mnt -user root -a -size +5m -o -type d
[root@localhost~]#find /mnt -user root -o -size +5m
-not表示非:即反向选择
[root@locaihost~]#find /mnt -not -user root
按权限查找:-perm
[root@localhost~]#find /bin/ -perm 755 #等于0755权限的文件或目录
[root@localhost~]#find /bin/ -prem -644 #-prem -644 至少有644权限的文件或目录
nd ./ -name “*.txt” -exec grep “bin” { } :
- 多条件查找
-a:并且 -o:或者
[root@locaihost~]#find /mnt -user root -a -size +5m -o -type d
[root@localhost~]#find /mnt -user root -o -size +5m
-not表示非:即反向选择
[root@locaihost~]#find /mnt -not -user root
按权限查找:-perm
[root@localhost~]#find /bin/ -perm 755 #等于0755权限的文件或目录
[root@localhost~]#find /bin/ -prem -644 #-prem -644 至少有644权限的文件或目录