一、Linux 命令基础
1.1、Shell
Linux系统中运行的一种特殊程序
在用户和内核之间充当“翻译官
用户登录Linux系统时,自动加载一个Shell程序
Bash是Linux系统中默认使用的Shell程序
总结:
Linux操作系统下一切都是文件
Shell(翻译官):接收用户的命令将其解释,然后传给内核来执行。
理解:
打开游戏的一瞬间要交给shell然后shell调用内核来打开,然后游戏需要的内存都是需要shell来调用内核然后分配的。
1.2、Linux命令的分类
内部命令:
(1)集成于shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令
(2)属于Shell的一部分
(3)没有单独对应的系统文件
(4)自动载入内存,可以直接使用
外部命令:
(1)Linux系统中能够完成特定功能的脚本文件或二进制程序
(2)属于Shell解释器程序之外的命令
(3)每个外部对应了系统中的一个文件
(4)必须知道其对应的文件位置,由Shell加载后才能执行
1.3、基础命令
enable –n cd 禁用内部命令
enable cd 开启内部命令
hash -r 清除所有
hash -d 清除部分
find --help可查帮助
[root@localhost /]# whereis ls //whereis 可以查找命令具体的位置所在
ls: /usr/bin/ls /usr/share/man/manl/ls.1.gz /usr/share/man/manlp/ls.lp.gz
[root@localhost ~]# type –a echo (type –a 即可看内部又可看路径)
echo 是 shell 内嵌
echo 是 /usr/bin/echo
外部命令存放于echo $PATH 一个一个找,找到为止,找不到就报无命令
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:root/bin
外部命令使用过后会被记录在内存(缓存,但是会占用内存,临时性的)加快读取速度
[root@localhost ~]# type useradd
useradd 是/user/sbin/useradd
[root@localhost ~]# useradd wu
[root@localhost ~]# type useradd
Useradd 已被哈希 (/usr/sbin/useradd)
[root@localhost ~]# hash //或者使用hash
命中 命令
1 /usr/bin/dd //前面数字代表用过几次
2 /usr/sbin/useradd
1 /usr/bin/whoami
3 /usr/bin/ls
[root@localhost ~]# hash –d dd //清楚dd命令缓存 –r全清
[root@localhost ~]# hash
命中 命令
2 /usr/sbin/useradd
1 /usr/bin/whoami
3 /usr/bin/ls
[root@localhost ~]# which ping //外部命令的磁盘路径-a 所有/usr/bin/
[root@localhost ~]# which help //内部命令找不到
/usr/bin/which:no help in(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# whereis echo //相关文档的帮助的命令
echo: /usr/bin/echo /usr/share/man/manl/echo.1.gz /usr/share/man/manlp/echo.1p.gz
ls --help长格式
ls –h短格式
1.4、Linux命令行的格式
Linux命令行的格式2-1
通过的命令行使用格式
命令字 [选项] [参数]
命令字
(1)是整条命令中最关键的一部分
(2)唯一确定一条命令
选项
(1)短格式选项:使用”-”符号引导
(2)长格式选项:使用”–”符号引导
Linux 命令行的格式2-2
通用的命令行使用格式
命令字 [选项] [参数]
参数
(1)命令字的处理对象
(2)可以是文件名、目录(路径)名或者用户名等内容
(3)个数可以是零到多个
1.5、Linux常用命令
内部命令:内部命令被构建在shell之中。当执行shell命令行,内部命令行的执行速度非常快。这是因为没有其他的进程因为执行者条命令而被创建。比如说,当我们执行“cd”命令时,没有进程被创建。在执行过程中只是简单的改变当前的目录。
外部命令:外部命令并没有被构建在shell中。这些可执行的外部命令保存在一个独立的文件当中。当一个外部命令被执行时,一个新的进程即被创建同时命令被执行。比如说,当我们执行“ls”(通常被保存在/bin目录下)命令时,然后、bin/ls被执行
编辑Linux命令行的辅助操作
(1)Tab键:自动补齐
(2)反斜杠“\”:强制换行(反斜杠用的时候上一个不能加空格,不然就是说下一行是空格)
(3)Ctrl+U组合键:清空至行首
(4)Ctrl+K组合键:清空至行尾
(5)Ctrl+L组合键:清屏
(6)Ctrl+C组合键:取消本次命令编辑
(7)Ctrl+E组合键:光标跳到行尾
(8)Ctrl+A组合键:光标跳到行头
1.6、获得命令帮助的方法
(1)内部命令help
1.查看Shell内部命令的帮助信息
(2)命令的“–help”选项
2.适用于大多数Linux外部命令
(3)使用man命令阅读手册页
1.使用“上箭头” “下箭头”方向键滚动一行文本
2.使用Page Up和Page Down键翻页
3.按Q或q键退出阅读环境
4.按“\”键查找内容
1、命令行帮助help和–help
显示命令的帮助信息,命令的参数和用法等
2、man手册的使用
Linux的命令手册大全
用法:man cd
查找翻页:n向下 N向上
man ls | col –b > lshelp.txt 或 sz lshelp.txt 将手册拷贝到lshelp.txt
在这个例子中,col是一个命令程序,用于过滤文本中的一些特殊控制字符:另外还使用了“|”和“>”符号,这是shell环境中的两种特殊功能应用,分别称为管道、重定向输出。其含义即作用如下所述。
管道:用竖杠符号“|”表示,用于将前面命令的屏幕输出结果作为后面命令的操作对象(输入)。就好像一根管道一样,从这头塞入内容,从另一头出来。
重定向输出:用大于符号“>”表示,前面的命令成功执行以后,其屏幕输出结果将保存到“>”号后边指定的文件中,而不是直接输出到屏幕,因此称为重定向。
小结:
Shell在用户和内核之间充当“翻译官”
Linux命令分为内部命令和外部命令
获得Linux命令帮助的方法
二、Linux 相关的一些命令
2.1、切换工作目录 -cd
切换工作目录:cd(相对路径、绝对路径)
cd /home #后面跟绝对路径,切换到home目录
cd ./home #后面跟相对路径,切换到home目录
cd ~ #切换到当前用户的家目录
cd #切换到当前用户的家目录
cd ~user #切换到某一个用户的家目录,只有root才行,别的用户只能在自己家
cd - #切换到上一次执行操作的目录
cd … #切换到上一层目录(父目录)
cd …/…/ #如何切换到父目录的父目录
.是当前,…是上层
所有用户都在home路径下
绝对路径:cd / 这样出来的是绝对路径
相对路径:cd ./或…/ 或直接home这样的是相对路径
2.2、目录和文件的管理命令
查看当前工作目录:pwd
[root@localhost ~]# pwd
/root
2.3、列表显示目录内容ls
命令字 【选项】 【参数】
操作 功能 要执行的对象
-l #将文件信息属性详细列出,通常直接使用11,因为设置了别名
-R #递归显示,比如一个目录下还有文件,则把那个文件也一起列出
-d #查看目录本身信息,不显示目录下的内容
-i #显示inode值(inode值出现问题会无法更改日记)
-h #友好显示(文件的大小可显示)
-a #遍历所有文件及目录
(ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-A #跟-a 唯一的不同是不列出当前目录和上一层目录(不包括.和…的文件)
ls -lh
黑色的是数据文件,绿色是可执行文件,黄色是快设备文件,红色是压缩包,天蓝色是链接文件。
-普通文件
d目录文件 directory
b块设备文件block
p 管道文件 pipe
s 套接字文件 socket
l 符号连接文件link
2.4、通配符
ls .*
ls ceshi/*.txt
ls /var/log/*.log(只要是i.log的会全部显示出来)
ls –lh /var/log/*.log
ls -lh /dev/sd?1\
符号 | 效果
?: 匹配一个字符 f?.txt
*:匹配所有非隐藏的字符无论多长多短,但不匹配"." 开头的文件,即隐藏文件
{1…10}:1到10
{a…z}:a b c …z
{A…Z}:ABC …Z
[123]:取其中之一有就显示没有也无所谓
[a-z]:范围需要注意
[0-9]:匹配数字范围(0123456789)
:转义符,表示原来的意思
[[ :lower:]]:小写字母表示a-z
[ [ :upper: ]]:大写字母表示A-Z
[ [:digit:]]:任意数字,相当于0-9
例如:mkdir {e…z} 生成e到z
mkdir weitianb{1…10} 生成10个weitianb文件
案例:
[root@localhost mnt]# ll
#长格式
总用量 0
drwxr-xr-x 3 root root 16 8月 21 10:39 aa
第一个字段 d 代表文件类型比如 d是目录 – 是普通文件
第2-9(rwxr-xr-x)字母表示该文件的权限
root 文件所有者
root 文件所属组
16 文件大小
21 10:39 文件的最近使用时间
aa 文件或目录名称
2.5、设置别名-alias
通过别名机制简化常用的、比较的命令
alias命令别名=”命令”
例如:
alias myls =‘ls -alh’(别名是myls)
unalisa myls是删除别名
[root@localhost mnt]# vim /root/.bashrc(在此命令下可永久保存alias别名,不然alias别名开机后会自动消失)
2.6、统计目录及文件空间占用情况-du
统计指定目录(或文件)所占用磁盘空间的大小
du [选项] [文件或目录]
常用选项
-a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h:以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s:只统计所占用空间总的(summary)大小,而不是统计每个子目录,文件的大小
例如:统计出/var/log****目录所占用空间的大小
du -sh /var/log/
du -a 所有文件递归显示(包括隐藏文件)
du -sh * 更加友好的显示
du -s 文件总大小 du -sh(带单位)
du -h,du -ah,du -sh*都是友好显示
du –as不能同时使用(du:不能既显示总用量,同时又显示每个项目)