通过终端软件进行编辑
- GUI
- Xshell
shell 软件,shell编程语言
- bash
- csh
特性不同
操作系统
- 操作系统也是一种特殊的程序
- 调度硬件资源
- 运行在内存里面
- 由代码构成
shell(翻译官):在操作系统和人之间进行翻译
通过AscⅡ码编码表将二进制翻译成高级语言 ASCII码 - 基本ASCII码和扩展ASCII码,最全的ASCII码对照表 (asciim.cn)
还有UTF-8等编译程序
centos7默认的shell软件类型
- /bin/bash(最后有“/”一定是文件夹,没有“/”可能是文件也有可能是文件夹)
- 翻译
- 补全功能
- 自带内部命令等功能
命令:
cat /etc/shells 查看系统支持的shell类型
Bash
bash是可以多开的,多开的bash相对是独立的
Linux命令的分类
type +命令:可以查看命令是外部命令还是内部命令
[root@localhost /]# type cd
cd 是 shell 内嵌
[root@localhost /]# type ls
ls 是 `ls --color=auto' 的别名
内部命令
- 内部命令和bash软件是一体的,bash中集成了很多命令
- 没有独立的文件
- 不用独立安装
- 直接运行在内存中
外部命令
- 不在shell(bash)软件中,由独立的执行文件
- 需要额外独立安装
- 系统需要知道文件的位置才可以运行
- 运行在硬盘,光驱等存储介质
系统规定了几个文件夹,如果你的命令在这几个文件夹中,那么是不需要写路径的
[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 /]# which cd
/usr/bin/cd
[root@localhost /]# cd 既属于内部命令又属于外部命令,目的是为了双重保险,担心内部没有cd命令
[root@localhost /]# hash
命中 命令
1 /usr/bin/bash
1 /usr/bin/rm
1 /usr/bin/sh
9 /usr/bin/ls
举例:
- ls第一次运行
- 先判断是外部还是内部命令,
- 如果是内部直接执行
- 如果是外部命令,去规定的路径找,
- 找到执行
- 找不到报错
- ls不是第一次运行
- 先判断是内部还是外部
- 如果是内部直接执行
- 如果是外部去查hash缓存
- 按照缓存提示去找
- 找到执行
- 找不到直接报错
命令找不到的原因:
- 没有安装该命令软件(安装该命令)
- hash缓存有误(清理hash表)
- 不在指定路径下(需要使用绝对路径,或者将命令复制到规定文件夹下)
Linux的哲学思想
二进制程序:电脑可以直接运行的程序,效率高
非二进制程序:电脑需要通过bash翻译后运行,效率低
Linux命令行的格式
- 通用的命令行使用格式
[命令字] [空格] [选项] [空格] [参数]
一定要空格
命令字:你执行任务,需要挑选相对应的命令
选项:修饰加强命令,可以一次有多个
参数:对谁使用该命令,可以一次有多个
对象: 1. 文件
-
文件夹
-
用户名
编辑Linux命令行
Tab 为补全快捷键
- 补全的对象是命令
- 内部命令
- echo $PATH下的命令可以补全
如果命令唯一,直接补全
如果命令不唯一,会显示全部
- 补全的对象是文件名
- 规定路径下的可以补全
- 指明补全对象
\ 为强制换行快捷键 一般用于写脚本,保证界面美观且容易排错
[root@localhost /]# l\ 强制换行
>
Ctrl+U:清空至行首
Ctrl+K:清空至行尾
Ctrl+L:清屏(强制将界面内容移动到最顶格)
Ctrl+C:取消本次命令编辑
上下键:回看执行过的命令
Ctrl+R:搜索执行过的命令
Ctrl+S:锁屏
Ctrl+Q:解锁
Ctrl+A:光标移动到最前端
End:光标移动到最末尾
“;”:执行第一命令后再执行第二命令
man命令
[root@localhost /]# man 1 file
FILE(1) General Commands Manual FILE(1)
NAME
file - 确定文件类型
总览
file [ -bcnsvzL ] [ -f 命名文件 ] [ -m 幻数文件 ] file ...
描述
本手册页说明了3.27版本 file 命令的使用. File 命令试图检查每个参数以判定文件的类型.
检查共有三组,按如下顺序进行:文件系统检查,幻数检查,以及语言检查. 文件系统
检查成功则输出文件类型.
输出的类型一般会包含以下的词中的一个: text (文件中仅有 ASCII 字符,可以用 ASCII
终端读此文件,以保证内容的可靠性), executable (文件中保存的是程序编译后的结果,一些UNIX
内核或其它内核能理解这类文件), 或者 data 表示所有其它类型文件(data
一般为二进制文件或者不可打印的).
但是有的常用的文件格式(如core文件、tar包),虽然也包含二进制数据, 却不属于这一类
如果要修改 /usr/share/magic 或者程序本身, preserve these keywords . 当文件为``text''
类型时,认为此文件为可读文件. 不要象在Berkeley环境中那样做 - 要把``shell commands
text''改为``shell script''.
....
Linux目录结构
- bin:普通用户存放二进制文件
- sbin:超级管理员使用的二进制文件
- etc:存放配置文件
- mnt:挂载点
- opt:存放第三方软件(外部命令)
- root:超级管理员的家目录
家目录:系统每一个用户都会有一个自己的家目录
普通用户的家目录
举例:
lisi的家目录 /home/lisi/
zhangsan的家目录 /home/zhangsan/
超级管理员的家目录 /root
-
var/log:存放日志文件
-
boot:存放开机启动文件
- dev:存放硬件设备,如硬盘,光驱等
-
lib/lib64:库文件,存放通用依赖文件
-
home:存放普通用户的家目录
-
proc:反应内存的使用情况
[root@localhost /]# ls /proc
1 1400 1534 299 399 44 567 727 77 devices loadavg swaps
10 1404 1551 3 400 4557 58 728 770 diskstats locks sys
11 1410 16 30 41 4700 595 733 776 dma mdstat sysrq-trigger
111 1411 1649 300 411 4844 596 734 777 driver meminfo sysvipc
1143 1419 1657 308 412 4861 597 735 8 execdomains misc timer_list
1145 1424 17 309 42 4878 606 736 805 fb modules timer_stats
1146 1427 18 31 425 4905 633 737 818 filesystems mounts tty
1152 1439 2 310 426 4908 656 738 821 fs mpt uptime
1157 1448 20 311 427 5 657 739 834 interrupts mtrr version
1158 1467 2063 312 4279 507 658 741 9 iomem net vmallocinfo
1160 1483 21 313 428 5093 659 745 acpi ioports pagetypeinfo vmstat
12 1489 22 314 429 5118 660 746 asound irq partitions zoneinfo
1296 1493 23 317 43 52 661 749 buddyinfo kallsyms sched_debug
13 1495 235 32 430 525 662 750 bus kcore schedstat
1301 15 25 33 431 532 663 756 cgroups keys scsi
1323 1504 27 34 432 533 7 760 cmdline key-users self
1327 1508 28 35 433 54 702 765 consoles kmsg slabinfo
1328 1514 29 356 434 541 704 766 cpuinfo kpagecount softirqs
1385 1520 298 359 435 56 706 769 crypto kpageflags stat
7. usr:备份根(小根)
小根目录
[root@localhost /]# cd /usr
[root@localhost usr]# ls
bin etc games include lib lib64 libexec local sbin share src tmp
根目录
[root@localhost usr]# cd /
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
小根目录与根目录相似
Linux操作
路径的作用:描述这个文件在系统中的位置
/mnt/
/opt/
/opt/123
第一个“/”为根目录,第二个“/”为分隔符
绝对路径:从根开始描述文件的位置
相对路径:从当前文件夹开始描述文件的位置
cd的用法(只能对文件夹操作)
".":表示当前文件夹(cd .表示前往当前文件夹)
"..":表示上级文件夹(cd ..表示前往上级文件夹)
"~":当前用户的家目录(cd ~前往当前用户家目录)
"-":回到上一次所在的目录
list(ls)的用法
ls [选项] ...[参数]...
-a:显示包括.和..隐藏文件
[root@localhost /]# ls -a
. bin dev home lib64 mnt proc run srv tmp var
.. boot etc lib media opt root sbin sys usr
-A:显示除.及..隐藏文件
[root@localhost /]# ls -A
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
-l:使用长格式显示文件
[root@localhost /]# ls -l
总用量 28
lrwxrwxrwx. 1 root root 7 3月 26 19:30 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 3月 26 19:35 boot
drwxr-xr-x. 20 root root 3360 3月 27 08:28 dev
drwxr-xr-x. 138 root root 8192 3月 27 08:28 etc
drwxr-xr-x. 3 root root 20 3月 26 19:35 home
lrwxrwxrwx. 1 root root 7 3月 26 19:30 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 3月 26 19:30 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 11月 5 2016 media
drwxr-xr-x. 2 root root 6 11月 5 2016 mnt
drwxr-xr-x. 3 root root 16 3月 26 19:33 opt
dr-xr-xr-x. 174 root root 0 3月 27 08:28 proc
dr-xr-x---. 14 root root 4096 3月 27 08:32 root
drwxr-xr-x. 40 root root 1180 3月 27 08:28 run
lrwxrwxrwx. 1 root root 8 3月 26 19:30 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 11月 5 2016 srv
dr-xr-xr-x. 13 root root 0 3月 27 08:28 sys
drwxrwxrwt. 23 root root 4096 3月 27 09:12 tmp
drwxr-xr-x. 13 root root 155 3月 26 19:30 usr
drwxr-xr-x. 21 root root 4096 3月 26 19:37 var
-R:递归显示子目录
[root@localhost /]# ls -R test
test:
123
test/123:
-d:显示目录,但不显示内容