简单命令
在 Linux 系统中命令分为外部命令和内部命令,将磁盘安装的软件(程序)统一称为外部命令
type cmd 用于判断 cmd 是内置命令还是外部命令
[root@node001 ~]# type ifconfig
ifconfig is /sbin/ifconfig
[root@node001 ~]# type cd
cd is a shell builtin
凡是 shell builtin 都为内置命令
shell 是一个外壳,是人机交互最外边的一层,里边是内核 kernel
shell 有命令行形式和像 windows 图形界面形式等
在 Linux 系统中,基于命令行解释执行所输入的字符串的这种实体程序叫 shell,shell 可以是bash、csh、ksh等,其中使用最多的是 bash。bash 其实是一款软件,当 bash 读完配置文件启动后,就会给用户打印 [root@node001 ~]# 提示符,并等待用户输入字符串,当用户输入字符串回车后,bash 就会解释该字符串,从中找到命令并执行,而命令又分为外部命令和内部命令。
file 查看文件类型
[root@node001 ~]# file /sbin/ifconfig
/sbin/ifconfig: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.18, stripped
用命令 file 检查 /sbin 目录下的 ifconfig 文件
ELF 是一种二进制程序的编码格式,类似于windows当中 .exe 程序
[root@node001 ~]# type yum
yum is /usr/bin/yum
[root@node001 ~]# file /usr/bin/yum
/usr/bin/yum: a /usr/bin/python script text executable
[root@node001 ~]# vi /usr/bin/yum
命令 yum 用于安装软件。/usr/bin 目录下的 yum 文件是一个 python 脚本文件。使用 vi 编辑器打开 yum 文件,在第一行会发现 #!/usr/bin/python,因此 yum 脚本实际是由python解释执行。
echo 打印到标准输出,$ 用来取变量
[root@node001 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
bash 解释执行的具体步骤
bash 对空白符很敏感,bash 将输入的字符串根据空白符切割,将得到的第一个元素作为命令 cmd,再判断 cmd 是内部命令(其实就是 bash 自身的一个功能模块)还是外部命令,如果是内部命令则调用自身的功能模块,如果是外部命令则在环境变量 PATH 给定的目录中从左向右寻找该命令。
例如:# ls -l /
bash 会将字符串进行切割,得到命令 ls,判断出 ls 是外部命令,再从给定的环境变量 PATH 中去寻找该命令。
[root@node001 ~]# type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
hash -r 清除缓存
yum install man man-pages -y 安装帮助手册
man 用于查询外部命令的帮助文档,( windows系统中查看软件的帮助文档用 F1 )
manual 共有8类帮助文档。分别为:
- 用户命令( /bin,/usr/bin,/usr/local/bin ) 例如:
# man 1 ls
- 系统调用 例如:
# man 2 read
- 库用户
- 特殊文件(设备文件)
- 文件格式(配置文件的语法)
- 游戏
- 杂项 例如:
# man utf-8
# man ascii
- 管理命令( /sbin,/usr/sbin,/usr/local/sbin )
help 查询内部命令用法
whereis 定位命令位置
ps -fe 进程列表
ifconfig 用来查看、配置网卡
文件系统命令
df -h 显示磁盘使用情况
du -h 显示文件系统使用情况
cd 切换目录
cd .. 返回上一级目录
cd ~ 或 cd 切换到当前用户的家目录
cd - 返回上一次工作目录
ls -l 以长列表格式显示目录内容
pwd 显示当前工作路径
mkdir 创建目录
mkdir -p 创建多级目录
rm 删除
rm -f 删除文件(f 是强制删除)
rm -rf 删除目录(r 是递归删除)
cp 拷贝
mv 移动
ln 创建硬链接文件,不允许给目录创建硬链接
ln -s 创建软连接文件(相当于windows系统中的快捷方式),可以对目录进行链接
mount 挂载
touch 用来修改已经存在的文件的时间戳或创建一个不存在的文件
stat 查看文件元数据信息(相当于windows系统中文件的属性)
其中三个时间戳
access:访问时间
modify:修改时间,文件内容发生了改变
change:改变 metadata (元数据)的时间
文本操作命令
cat 显示文件内容
more 或者 less 分屏显示文件内容(在显示内容时,可以按空格往下翻页或者按键盘 b 往上翻页)
head 默认显示文件内容前十行
head -n 显示文件内容前 n 行
tail 默认显示文件内容后十行
tail -n 显示最后 n 行
tail -f 请自行百度
| 管道,管道就是将前一个命令的标准输出放到后一个命令的标准输入流里边(注意:管道是衔接流的而不是衔接参数)
xargs 会从标准输入流中读取内容,并将读到的内容放到 xargs 后边的字符串的末尾拼上,然后 xargs 会将后边拼接好的字符串进行空白符切割,发现第一个是命令(注意:不能是内部命令),然后将这个命令启动执行并将后边的内容作为选项参数传进去
例如:
[root@node001 ~]# echo "/" | xargs ls -l
total 90
dr-xr-xr-x. 2 root root 4096 Aug 11 19:19 bin
dr-xr-xr-x. 5 root root 1024 Aug 7 07:24 boot
drwxr-xr-x. 18 root root 3680 Oct 27 08:28 dev
drwxr-xr-x. 76 root root 4096 Oct 27 08:27 etc
......
tee 从标准输入读取并写入标准输出和文件
例如:
[root@node001 ~]# ls -l / | tee out.log
total 90
dr-xr-xr-x. 2 root root 4096 Aug 11 19:19 bin
dr-xr-xr-x. 5 root root 1024 Aug 7 07:24 boot
drwxr-xr-x. 18 root root 3680 Oct 27 08:28 dev
drwxr-xr-x. 76 root root 4096 Oct 27 08:27 etc
......