目录
前言
与Windows系统不同的,Linux系统更多是在命令下进行管理与配置。这边主要为初学者介绍一下linux的命令基础。
一、什么是Shell?
shell是一个用C语言编写的程序,他是用户使用Linux的桥梁,在用户和内核之间充当着“翻译官”的角色。它既是一种语言命令,又是一种程序设计语言,它给用户提供了一个界面,让用户能够通过这个界面访问操作系统内核的服务。
二、Linux基础命令
1.Linux内部命令和外部命令的区别
内部命令 | 外部命令 |
---|---|
集成于Shell解释器程序内部的一些特殊指令,称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件(在bash中) | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置。由Shell加载后才能执行 |
2.查看内部外部命令
- 查看所有的内部命令
[root@localhost ~]# enable
- 查看内部还是外部命令(type+命令)
[root@localhost ~]# type cd
cd 是 shell 内嵌 //内嵌代表内部命令
[root@localhost ~]# type -a ls
ls 是 `ls --color=auto' 的别名 //别名代表外部命令
ls 是 /usr/bin/ls
ls 是 /bin/ls
3.通用命令行使用格式
命令字:是整条命令中最关键的一部分,唯一确定一条命令
选项:短格式“-”符号引导,字母,分大小写
长格式“--”引导,单词
参数:命令字的处理对象,可以是文件名,目录(路径)名或用户名等内容。它的个数可以是零到多个。
例如下面这条命令,其中type是命令字,-a是选项,ls是参数
[root@localhost ~]# type -a ls
4.编辑Linux命令行的辅助操作
Tab 键:自动补齐
反斜杠“\”:强制换行
Ctrl+U组合键:清空至行首
Ctrl+K组合键:清空至行尾
Ctrl+L组合键:清屏
Ctrl+C组合键:取消本次命令编辑
Ctrl+E组合键:光标跳至行尾
Ctrl+A组合键:光标跳至行头
Ctrl+D组合键:结束当前命令窗口
5.获得命令帮助
- help命令
查看shell内部命令用“help”
查看Linux外部命令用“–help” - man命令
1.显示cd命令的帮助信息
[root@localhost ~]# man cd
2.使用man命令阅读手册页
在man手册中使用“↑”“↓”方向键滚动一行文本,使用Page up和Page down 翻页,按Q或q退出阅读环境,按“/”查找内容,查找参数翻页“n”“N”
三、Linux 常用命令
1.相对路径和绝对路径
- 绝对路径:从根目录算起的路径叫做绝对路径
也就是说,带“/”为绝对路径 - 相对路径:从当前目录算起的路径叫做相对路径
相对路径的表现形式:
2.查看当前工作目录pwd
显示用户当前所在的工作目录位置
[root@localhost ~]# pwd
/root
3.切换工作目录cd
格式 | 说明 |
---|---|
cd目标位置 | 切换到目标位置 |
cd ~ | 若不指定目标位置,切换到当前用户的宿主目录 |
cd | 若不指定目标位置,切换到当前用户的宿主目录 |
cd - | 切换到上一次执行cd命令之前所在的目录 |
cd … | 回到当前目录的上一层 |
cd …/…/ | 回到上上层 |
4.列表显示目录ls
常用选项:
格式 | 说明 |
---|---|
-L | 将文件信息属性详细列出,通常直接使用"I I" 因为设置了别名 |
-R | 递归显示,比如一个目录下还有文件,则把那个文件也一起列出 |
-d | 查看目录本身信息,不显示目录下的内容 |
-i | 显示inode值 |
-h | 友好显示已单位为例 |
-a | 遍历所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) |
-A | 跟-a 唯一的不同是不列出当前目录和上一层目录 |
通配符
格式 | 说明 |
---|---|
? | 匹配文件名中的 一个未知字符 |
* | 匹配文件名中的 任意多个字符 |
5.设置别名alias
- alias #查看系统当前所有可用别名
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
- 设置别名:alias ll=‘ls -lt’
[root@localhost ~]# alias ll='ls -lt'
- 查看添加的别名
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -lt' //上一步添加的别名
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
6.删除别名unalias
- 删除上面创建的
[root@localhost ~]# unalias ll
- 再查看一下系统当前所有可用别名
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
- 删除成功
7.统计目录和文件空间占用情况du
[root@localhost ~]# du
常用选项:
格式 | 说明 |
---|---|
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 显示出每一个文件以及大小,单位是KB,MB,GB |
-s | 显示文件或整个目录的大小,默认单位是KB,但不会把他们显示出来 |
- sh* | 生产环境常这样搭配使用统计当前目录下所有文件的大小并显示出来,常用于磁盘水位过高的情况 |
8.创建新目录 mkdir
- mkdir [选项] 目标位置及名称
[root@localhost ~]# mkdir /opt/cui
- 选项 -p 一次性创建嵌套的多层目录
[root@localhost ~]# mkdir -p a/b/c
[root@localhost ~]# tree a
a
└── b
└── c
2 directories, 0 files
9.创建文件 touch
- 创建多个文件
[root@localhost opt]# touch a b c d
[root@localhost opt]# ls
a b c cui d rh sj
- 创建多个连续的TXT文件
[root@localhost opt]# touch {1..9}.txt
[root@localhost opt]# ls
1 2 3 4 5 6 7 8 9 a c d sj
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
10.创建链接文件 ln
ln 命令用于为文件或目录建立链接文件(类似于 Windows 系统中的快捷方式),提高 用户定位文件或定位目录的效率
链接文件包括软链接和硬链接两种类型,其中软链接又称为符号链接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同。
ln -s 创建软链接,相当于创建一个快捷方式。
ln 创建硬链接,相当于复制了一份副本。
软链接建立时原始文件可以不存在,如果删除源文件之后又重新建立源文件,那么软链接照样可以用,软链接文件的大小就是软链接文件本身的文件名字符长度!
可以给目录做软链接,为了防止目录被删。
11.复制、删除、移动目录和文件
- 复制常用选项"cp"
格式 | 说明 |
---|---|
-a | 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容 |
-d | 复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式 |
-f | 覆盖已经存在的目标文件而不给出提示 |
-i | 与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖 |
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 |
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件 |
-l | 不复制文件,只是生成链接文件 |
- 删除文件或目录"rm"
格式 | 说明 |
---|---|
-f | 删除文件和目录时不进行提醒,强制删除 |
-i | 删除文件或目录时提醒用户确认 |
-r | 删除目录时必须使用此选项,表示递归删除整个目录树(谨慎使用) |
- 移动文件或目录"mv"
移动文件或目录/改名mv
用法:mv [文件名] [目录名]
mv [文件名] [文件名]
-i:若指定目录已有同名文件,则先询问是否覆盖旧文件
-f:在 mv 操作要覆盖某已有的目标文件时不给任何指示
当在同一目录下用mv就是改名,如果是跨目录使用mv的话就是移动,相当于剪切的操作。
12.查找文件或目录 find
- which
查找命令/文件存放目录
which 命令用于查找 Linux 命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量 PATH 决定(可以执行“echo $PATH”命令查看),
这个范围也是 Linux 操作系统在执行命令或程序时的默认搜索路径。
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost ~]#
- find
查找文件或目录find:采用递归方式2,根据目标的名称、类型、大小等不同属性进行精细查找
不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
-name 按名称查找
-size 按大小查找
-user 按文件属主
-type 按类型查找:普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)、链接(l)
块设备指的是成块读取数据的设备(如硬盘、内存等),而字符设备指的是按单个字符读取数据的设备(如键盘、鼠标等)
当我们需要同时使用多个查找条件时,我们可以使用逻辑运算符“-a” “-o”,分别表示而且(and)、或者(or)
下面二个操作使用了二个查找条件,一个是“超过1024K”另一个是“名称以vmlinuz开头”,分别用”-a“和”-o“二个条件,前者表示二个条件必须同时满足,后者只需要满足任何一个即可:
[root@localhost ~]# find /boot -size +14k -a -name "vmlinuz*"
/boot/vmlinuz-3.10.0-957.el7.x86_64
/boot/vmlinuz-0-rescue-df7fd912ebf2440b980159d0ef18be01
[root@localhost ~]# find /boot -size +1024k -o -name "vmlinuz*"
/boot/efi/EFI/centos/MokManager.efi
/boot/efi/EFI/centos/mmx64.efi
/boot/efi/EFI/centos/shim.efi
/boot/efi/EFI/centos/shimx64-centos.efi
/boot/efi/EFI/centos/shimx64.efi
/boot/efi/EFI/BOOT/BOOTX64.EFI
/boot/grub2/fonts/unicode.pf2
/boot/System.map-3.10.0-957.el7.x86_64
/boot/vmlinuz-3.10.0-957.el7.x86_64
/boot/initramfs-0-rescue-df7fd912ebf2440b980159d0ef18be01.img
/boot/vmlinuz-0-rescue-df7fd912ebf2440b980159d0ef18be01
/boot/initramfs-3.10.0-957.el7.x86_64.img
/boot/initramfs-3.10.0-957.el7.x86_64kdump.img
总结
- 说这么多无非就是增删改查,要记,很重要。
- rm -rf 千万不能随便使用。