目录
一.Linux概述
1.1、什么是Linux
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
1.2、Linux的优点
1.一切都是文件(包括硬件)
2.当遇到复杂任务,通过不同功能用途的程序组合起来完成
3.不在乎后缀名
4.连配置文件都存储在文本中,方便增删改查
5.避免了用户界面
6.系统中拥有小型,单一用途的程序
二.Linux命令基础
2.1、命令格式
命令 空格 选项 空格 参数
短格式选项:使用 - 符号引导 通常一个字母
短格式选项:使用 - - 符号引导 通常一个完整的单词
参数:文件名、目录;命令字的处理对象、个数可以是零或者多个
2.2、Shell
Shell:Linux系统中运行的一种特殊程序。
在用户和内核之间充当“翻译官”,用户开启后会自动开启,Bash是Linux默认使用的Shell程序,文件位于/bin/bash
2.3、Linux常用快捷键
; 可以隔开命令,执行多个命
Tab 自动补全
反斜杠\ 强制换行
Ctrl+a 光标移到最前
Ctrl+e (end) 光标移到最后
Ctrl+u 清空至行首
Ctrl+k 清空至行尾
Ctrl+w 从当前光标删除到开头
AIT+d 从当前光标删除到末尾
Ctrl+L 清屏
向上下箭头 回看执行过的命令
三.Linux的分类
内部命令 | 外部命令 |
---|---|
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的位置,由shell加载后才能执行 |
内部命令:比如exit、history、cd、source、fg、echo等
外部命令:比如ls、cat等。
四.Linux命令帮助
4.1、内部命令help
help 命令是用于显示 shell 内建命令的简要帮助信息,帮助信息中显示有该命令的简要说明以及一些参数的使用以及说明。
4.2、命令的“–help”选项
外部命令基本上都有一个参数 --help,通过这个参数可以得到相应的帮助。
例:查看ls命令怎么用
4.3、使用man命令阅读手册页
man 命令,它是 Manual pages 的缩写,它是 Linux 系统中在线软件文档的一种普遍的形式,其内容包括计算机程序(包括库和系统调用)、正式的标准和惯例,抽象的概念等。
man命令:可以通过一些参数,快速查询linux帮助手册,并且格式化显示。
可以使用 man 命令查看其本身的使用说明,即:[root@localhost /]# man man
man 手册的内容很多,涉及了 Linux 使用过程中的方方面面,为了便于查找,man 手册被进行了分册(分区段)处理,手册通常被分为以下9个区段:
(按q键退出阅读环境)
如要查看相应区段的内容,就在 man 后面加上相应区段的数字即可。
例:[root@localhost /]# man 5 passwd
使用上下箭头滚动一行文本
使用Page UP和Page Down键翻页
按Q或q键退出阅读环境
按“\”键查找内容
五.目录与文件的基本操作
5.1、查看当前的工作目录
显示用户当前所在的工作目录位置:pwd
例:
[root@localhost opt]# pwd
/opt 当前所在的目录在opt目录
注:/bin是个链接文件,真实地址是/usr/bin
[root@localhost opt]# cd /bin/
[root@localhost bin]# pwd -P
/usr/bin
[root@localhost bin]#
5.2、切换工作目录
切换工作目录-cd
将用户的工作目录更改到其他位置
1.cd ~/cd 回到家目录
[root@localhost ~]# cd /opt/
[root@localhost opt]# cd ~
[root@localhost ~]# cd /opt
[root@localhost opt]# cd
[root@localhost ~]#
2.cd - 切换到上一次目录
[root@localhost ~]# cd /opt
[root@localhost opt]# cd
[root@localhost ~]# cd /opt
[root@localhost opt]# cd /home/
[root@localhost home]# cd -
/opt
[root@localhost opt]#
3.cd. 当前目录
[root@localhost opt]# cd .
[root@localhost opt]#
4.cd. . 上一级目录
[root@localhost ~]# cd ..
[root@localhost /]#
5.cd. . /…返回上两级目录
[root@localhost ~]# cd ..
[root@localhost /]# cd
[root@localhost ~]# cd /opt
[root@localhost opt]# cd /home/
[root@localhost home]# cd /etc/
[root@localhost etc]# cd ../..
[root@localhost /]#
绝对路径:是以/(根)开头的路径,无论文件在哪都能准确找到。
相对路径:是以当前路径为起点往下赵文件。
/ (根)是唯一入口,例如:
/etc/ 绝对路径
/opt/ 绝对路径
问:如果当前目录是/home;以绝对、相对两种路径方式进入/opt目录
[root@localhost home]# cd /opt/ 绝对路径
[root@localhost home]# cd . ./opt 相对路径
5.3、列表显示目录内容
列表显示目录内容 ——ls
格式: ls [选项] [文件或目录]
常用选项:
1.ls -l 长格式显示
[root@localhost opt]# ls -l
总用量 4
drwxr-xr-x. 2 root root 6 9月 1 18:59 111
drwxr-xr-x. 2 root root 6 9月 1 18:59 222
drwxr-xr-x. 2 root root 6 9月 1 18:59 33
-rw-r--r--. 1 root root 2 9月 1 19:09 3.txt
-rw-r--r--. 1 root root 0 9月 1 19:09 aaa
-rw-r--r--. 1 root root 0 9月 1 19:09 bbb
-rw-r--r--. 1 root root 0 9月 1 19:09 ccc
-rw-r--r--. 1 root root 0 9月 1 18:07 f1.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f20.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f2.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f3.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f4.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f5.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f6.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f7.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f8.txt
-rw-r--r--. 1 root root 0 9月 1 18:07 f9.txt
drwxr-xr-x. 3 root root 18 9月 1 19:00 fff
-rw-r--r--. 1 root root 0 9月 1 18:07 f..txt
-rw-r--r--. 1 root root 0 9月 1 19:05 passwd
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
2.ls -a 显示所有(包括隐藏文件)
[root@localhost opt]# ls -a
. .. 111 222 33 3.txt aaa bbb ccc f1.txt f20.txt f2.txt f3.txt f4.txt f5.txt f6.txt f7.txt f8.txt f9.txt fff f..txt passwd rh
3.ls -A 不显示隐藏文件
[root@localhost opt]# ls -A
111 222 33 3.txt aaa bbb ccc f1.txt f20.txt f2.txt f3.txt f4.txt f5.txt f6.txt f7.txt f8.txt f9.txt fff f..txt passwd rh
4.ls -d 显示目录
[root@localhost opt]# ls -d
.
5.ls -h 友好显示
[root@localhost opt]# ls -h
111 222 33 3.txt aaa bbb ccc f1.txt f20.txt f2.txt f3.txt f4.txt f5.txt f6.txt f7.txt f8.txt f9.txt fff f..txt passwd rh
6.ls -R 递归将当前目录下所以的子目录文件显示出来
[root@localhost opt]# ls -R
.:
111 222 33 3.txt aaa bbb ccc f1.txt f20.txt f2.txt f3.txt f4.txt f5.txt f6.txt f7.txt f8.txt f9.txt fff f..txt passwd rh
./111:
./222:
./33:
./fff:
dddd
./fff/dddd:
cccc
./fff/dddd/cccc:
通配符(主要匹配文件夹名称,不能对文本内容进行匹配): 、
“?” 匹配一个字符;* 匹配所有非隐藏的字符无论多长多短 ;{1…10} 1到10
{a…z} abc…z;{A…Z}ABC…Z ;[123]取其中之一有就显示没有就没有
[0-9]匹配所以数字范围;
5.4、设置别名
设置别名-alias
通过别名机制简化常用的、比较长的命令
alias 命令别名=命令
例:
[root@localhost opt]# alias mls="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
[root@localhost opt]# mls
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c5164d80-8dc6-42b4-9d0d-57bece827c34
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.32.101
NTMASK=255.255.255.0
GATEWAY=192.168.32.2
DNS=8.8.8.8
5.5、统计目录及文件空间占用情况
统计目录及文件空间占用情况 ——du
格式:du [选项] [文件或目录…]
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅是统计目录 |
---|---|
-h | 以更人性化的方式显示出结果 |
-s | 只统计所占用空间总大小,而不是统计每个子目录、文件的大小 |
[root@localhost opt]# du
0 ./rh
0 ./111
0 ./222
0 ./33
0 ./fff/dddd/cccc
0 ./fff/dddd
0 ./fff
4 .
[root@localhost opt]# du -a
0 ./rh
0 ./f1.txt
0 ./f2.txt
0 ./f3.txt
0 ./f4.txt
0 ./f5.txt
0 ./f6.txt
0 ./f7.txt
0 ./f8.txt
0 ./f9.txt
0 ./f..txt
0 ./111
0 ./222
0 ./33
0 ./fff/dddd/cccc
0 ./fff/dddd
0 ./fff
0 ./passwd
4 ./3.txt
0 ./aaa
0 ./bbb
0 ./ccc
0 ./f20.txt
4 .
[root@localhost opt]# du -h
0 ./rh
0 ./111
0 ./222
0 ./33
0 ./fff/dddd/cccc
0 ./fff/dddd
0 ./fff
4.0K .
[root@localhost opt]# du -s
4 .
[root@localhost opt]# cd /opt/
[root@localhost opt]# du
0 ./rh
0 ./111
0 ./222
0 ./33
0 ./fff/dddd/cccc
0 ./fff/dddd
0 ./fff
4 .
[root@localhost opt]# du -a
0 ./rh
0 ./f1.txt
0 ./f2.txt
0 ./f3.txt
0 ./f4.txt
0 ./f5.txt
0 ./f6.txt
0 ./f7.txt
0 ./f8.txt
0 ./f9.txt
0 ./f..txt
0 ./111
0 ./222
0 ./33
0 ./fff/dddd/cccc
0 ./fff/dddd
0 ./fff
0 ./passwd
4 ./3.txt
0 ./aaa
0 ./bbb
0 ./ccc
0 ./f20.txt
4 .
[root@localhost opt]# du -h
0 ./rh
0 ./111
0 ./222
0 ./33
0 ./fff/dddd/cccc
0 ./fff/dddd
0 ./fff
4.0K .
[root@localhost opt]# du -s
4 .
5.6、创建新的目录
创建新的目录 ——mkdir(文件名最长为255个字节,可以使用特殊字符,除了/和空字符)
格式:mkdir [选项] 目录位置及名称 (选项可以省略,但目录及名称一定要有)
创建新的目录 ——mkdir -p 递归创建目录
[root@localhost opt]# mkdir -p ddd/eee
[root@localhost opt]# ls
111 33 444 bbb ddd f20.txt f3.txt f5.txt f7.txt f9.txt f..txt rh
222 3.txt aaa ccc f1.txt f2.txt f4.txt f6.txt f8.txt fff passwd
[root@localhost opt]# tree
.
├── 111
├── 222
├── 33
├── 3.txt
├── 444
├── aaa
├── bbb
├── ccc
├── ddd
│ └── eee
├── f1.txt
├── f20.txt
├── f2.txt
├── f3.txt
├── f4.txt
├── f5.txt
├── f6.txt
├── f7.txt
├── f8.txt
├── f9.txt
├── fff
│ └── dddd
│ └── cccc
├── f..txt
├── passwd
└── rh
10 directories, 16 files
5.7、创建空文件
创建空文件 ——touch
更新了文件的时间标记,经常用于创建多个新的文件
格式:touch 文件…
[root@localhost opt]# stat passwd
文件:"passwd"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:68707959 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2021-09-01 19:05:16.933413603 +0800
最近更改:2021-09-01 19:05:16.933413603 +0800
最近改动:2021-09-01 19:05:16.933413603 +0800
创建时间:-
[root@localhost opt]# touch passwd
[root@localhost opt]# stat passwd
文件:"passwd"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:68707959 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2021-09-01 17:53:39.467079469 +0800
最近更改:2021-09-01 17:53:39.467079469 +0800
最近改动:2021-09-01 17:53:39.467079469 +0800
创建时间:-
[root@localhost opt]# ls
111 33 444 bbb ddd f20.txt f3.txt f5.txt f7.txt f9.txt f..txt rh
222 3.txt aaa ccc f1.txt f2.txt f4.txt f6.txt f8.txt fff passwd
[root@localhost opt]# touch 5.txt
[root@localhost opt]# ls
111 3.txt aaa ddd f2.txt f5.txt f8.txt f..txt
222 444 bbb f1.txt f3.txt f6.txt f9.txt passwd
33 5.txt(此时就创建了新文件) ccc f20.txt f4.txt f7.txt fff rh
5.8、创建连接文件
创建连接文件 ——In(一定要用绝对路径)
为文件或目录建立链接文件,类似于Windows系统的快捷方式
链接文件类型:软连接(符号链接 -s)、硬链接(无法对文件夹做连接)
格式:In [-s] 源文件或目录… 链接文件或目标位置
5.9、复制文件或目录
复制文件或目录 —— cp
将需要复制的文件或目录重建一份,并保存为新的文件或目录
格式:cp [选项]… 源文件或目录…目标文件或目录
常用选项:
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不提醒 |
-i | 覆盖目标同名文件或目录时提醒 |
-p | 复制时保持源文件权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用,表示递归复制所有文件及子目录 |
[root@localhost opt]# cp -p ./3.txt /mnt/
[root@localhost opt]# ll /opt/3.txt
-rw-r--r--. 1 root root 2 9月 1 2021 /opt/3.txt
[root@localhost opt]#
5.10、移动文件或目录
移动文件或目录 —— mv
如果目标位置与源位置相同,则相当于执行重命名操作
格式:mv [选项]… 源文件或目录… 目标文件或目录
情况一:重命名
[root@localhost opt]# ls
111 3.txt aaa ccc f20.txt f4.txt f7.txt fff rh
222 444 bbb ddd(旧名字) f2.txt f5.txt f8.txt f..txt s1.bigfile.txt
33 5.txt bigfile.txt f1.txt f3.txt f6.txt f9.txt passwd
[root@localhost opt]# mv ddd DDD
[root@localhost opt]# ls
111 3.txt aaa ccc f20.txt f4.txt f7.txt fff rh
222 444 bbb DDD(新名字) f2.txt f5.txt f8.txt f..txt s1.bigfile.txt
33 5.txt bigfile.txt f1.txt f3.txt f6.txt f9.txt passwd
情况二:移目录
[root@localhost opt]# mv DDD /mnt/
[root@localhost opt]# ls /mnt/
1.txt 3.txt DDD hpasswd passwd
[root@localhost opt]#
5.11、查找命令/存放目录
查找命令/存放目录 —— which
格式:which 命令/文件名
例:查找ls命令
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
例:查找1.txt文件
[root@localhost ~]# which 1.txt
/usr/bin/which: no 1.txt in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
5.12、查找文件或目录
查找文件或目录 —— find
格式:find [查找范围] [ 查找条件表达式]
注意:查找范围必须在前面
find采用递归方式,根据目标的名称,类型,大小等不同属性进行精确查找
find优点:及时查找,支持查找的条件比较多;缺点就是慢
常用查找条件:
按名称查找:“-name”
按文件大小查找:“-size”
按文件属性查找:“-user”
按文件类型查找:“-type”
-name:根据目标文件名称进行查找允许使用通配符 *和?
格式:find(命令字) /etc(查找范围) -name(匹配条件) passwd(文件名)
例:[root@localhost dev]# find /etc/ -name passwd
/etc/pam.d/passwd
/etc/passwd
查找etc目录下passd结尾的文件
例:用通配符查找opt目录下所有结尾为.txt文件
[root@localhost dev]# find /opt/ -name *.txt
/opt/s.txt
/opt/g.txt
/opt/1.txt
-user按文件属主查找 /home是非管理员用户的家目录,管理员用户的家目录在/root
例:查找属于hao1的文件
[root@localhost dev]# find /home/ -user hao1
/home/hao1
/home/hao1/.mozilla
/home/hao1/.mozilla/extensions
/home/hao1/.mozilla/plugins
/home/hao1/.bash_logout
/home/hao1/.bash_profile
/home/hao1/.bashrc
-type:根据文件类型进行查找,类型指的是普通文件(f)、目录(d)、块设备(b)、字符设备文件(c)、链接(l)。
例:查找opt下的目录
[root@localhost dev]# find /opt/ -type d
/opt/
/opt/aaa
/opt/ddd
/opt/ky15
/opt/data
-size:根据文件大小查找,一般使用+号(大于) -号(小于)设置超过或小于指定的大小作为查找条件。比如+50M 就是超过50MB的文件,-50就是小于50MB的文件。
例:查找opt目录下超过50MB的文件
[root@localhost dev]# find /opt/ -size +50M
/opt/99m.img
/opt/100m.img
查找opt目录下小于50MB的文件
[root@localhost dev]# find /opt/ -size -50M
/opt/
/opt/passwd
/opt/jishiben.tar.gz
/opt/aaa
/opt/ddd
/opt/mulu.tar.gz
/opt/ky15
/opt/data
/opt/saaa2
/opt/s.txt
/opt/g.txt
/opt/b.txx
/opt/1.txt