Linux命令
–用来实现某一类功能的指令或程序
–命令的执行依赖于解释器(例如:/bin/bash)
用户poweroff -----》 解释器(翻译官) ----》内核-------》 硬件
[root@localhost ~]# cat /etc/shells #查看系统的解释器
++++++++++++++++++++++++++++++++++++++++++++
命令行的一般格式
基本用法
命令字 [选项]… [参数1] [参数2]…
打 工具 朋友
[root@localhost ~]# ls -l /root/
[root@localhost ~]# ls --help
[root@localhost ~]# ls -ld /root/
+++++++++++++++++++++++++++++++++++++++++++++++++++
pwd — Print Working Directory
用途:查看当前工作目录
cd — Change Directory
用途:切换工作目录
格式:cd [目标文件夹位置]
目录夹位置:
. 当前目录
… 父目录(上一层)
~user 用户user的家目录
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost ~]# pwd
[root@localhost ~]# cd .
[root@localhost ~]# cd …
[root@localhost ~]# pwd
[root@localhost ~]# cd …
[root@localhost ~]# pwd
[root@localhost ~]# cd …
[root@localhost ~]# pwd
[root@localhost ~]# cd …
[root@localhost ~]# pwd
[root@localhost ~]# cd ~tom #切换到用户tom的家目录
[root@localhost ~]# pwd
[root@localhost ~]# useradd zs #创建用户zs
[root@localhost ~]# cd ~zs
[root@localhost ~]# pwd
[root@localhost ~]# cd ~root
[root@localhost ~]# pwd
ls — List
格式:ls [选项]… [目录或文件名]
常用命令选项
-l:以长格式显示
-A:显示所有内容包含隐藏数据
-d:显示目录本身(而不是内容)的属性
-h:提供易读的容量单位(K、M等)
-R:递归显示内容
[root@localhost ~]# ls -l /etc/passwd
[root@localhost ~]# ls -A /root/
[root@localhost ~]# ls /root/
[root@localhost ~]# ls -l -h /etc/passwd
[root@localhost ~]# ls -lh /etc/passwd
[root@localhost ~]# ls -l /root/
[root@localhost ~]# ls -ld /root/
[root@localhost ~]# ls -R /
[root@localhost ~]# ls -R /opt/
[root@localhost ~]# ls --help
+++++++++++++++++++++++++++++++++++++++++++++++
别名:简化复杂的命令
创建别名:alias 别名=具体命令
查看别名:alias
取消别名: unalias 别名
[root@localhost ~]# alias
[root@localhost ~]# alias hn=‘hostname’
[root@localhost ~]# hn
[root@localhost ~]# alias
[root@localhost ~]# unalias hn
[root@localhost ~]# hn #报错
[root@localhost ~]# alias
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
创建目录
mkdir — Make Directory
格式:mkdir [-p] [/路径/]目录名…
-p:当父目录不存在时,连父目录一起创建
[root@localhost ~]# mkdir /opt/aa
[root@localhost ~]# ls /opt/
[root@localhost ~]# mkdir /opt/aa/bb/cc/dd/ee
[root@localhost ~]# mkdir -p /opt/aa/bb/cc/dd/ee
[root@localhost ~]# ls -R /opt/
[root@localhost ~]# mkdir /abc/bcd
[root@localhost ~]# mkdir -p /abc/bcd
[root@localhost ~]# ls -R /abc/
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
rm 删除
rm —Remove
–格式: rm [选项] [文件或目录]
常用命令选项:
-r :递归删除整个目录
-f:强制删除,不提示
[root@localhost ~]# ls /opt/
1.txt aa abc a.txt bcd b.txt rh
[root@localhost ~]# rm /opt/1.txt
rm:是否删除普通空文件 “/opt/1.txt”?y
[root@localhost ~]# ls /opt/
[root@localhost ~]# rm /opt/abc
rm: 无法删除"/opt/abc": 是一个目录
[root@localhost ~]# rm -r /opt/abc
rm:是否删除目录 “/opt/abc”?y
[root@localhost ~]# ls /opt/
aa a.txt bcd b.txt rh
[root@localhost ~]# rm -r /opt/b.txt
rm:是否删除普通空文件 “/opt/b.txt”?y
[root@localhost ~]# ls /opt/
aa a.txt bcd rh
[root@localhost ~]# rm -r /opt/aa/
[root@localhost ~]# rm -rf /opt/aa/
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
mv 移动
mv --Move
–格式: mv [选项] 原文件(需要移动的文件) 目标路径
移动案例:
[root@localhost ~]# mkdir /opt/nsd10
[root@localhost ~]# touch /opt/1.txt
[root@localhost ~]# ls /opt/
1.txt nsd10
[root@localhost ~]# mv /opt/1.txt /opt/nsd10/
[root@localhost ~]# ls /opt/
nsd10
[root@localhost ~]# ls /opt/nsd10/
1.txt
改名:在路径不变的情况下移动
[root@localhost ~]# mv /opt/nsd10/ /opt/abc
[root@localhost ~]# ls /opt/
abc
[root@localhost ~]# ls /opt/abc/
1.txt
++++++++++++++++++++++++++++++++++++++++++++++++++
cp 复制
cp --Copy
–格式:cp [选项] 原文件 目标路径
常用选项:
-r:递归复制整个目录
-p:保持原文件属性不变
[root@localhost ~]# cp /etc/passwd /opt/ #将/etc/passwd文件拷贝到/opt目录下
[root@localhost ~]# ls /opt/
[root@localhost ~]# head -2 /etc/passwd
[root@localhost ~]# head -2 /opt/passwd
[root@localhost ~]# cp /etc/shells /opt/
[root@localhost ~]# ls /opt/
[root@localhost ~]# cp /boot/ /opt/ #报错
[root@localhost ~]# ls /opt/
[root@localhost ~]# cp -r /boot/ /opt/ #拷贝目录时必须加上-r
[root@localhost ~]# ls /opt/
复制时强制覆盖: \临时取消别名
[root@localhost ~]# \cp -r /boot/ /opt/
复制支持两个以上参数:
–永远把最后一个参数作为目标,其他的所有参数都是源
[root@localhost ~]# cp -r /etc/hosts /home/ /root/anaconda-ks.cfg /opt/
[root@localhost ~]# ls /opt/
复制常和. 连用, . 表示当前目录
[root@localhost ~]# cd /opt/
[root@localhost opt]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 .
[root@localhost opt]# ls
复制时改名,在目标路径下写名
[root@localhost opt]# cp /etc/passwd /opt/tmp.txt
[root@localhost opt]# ls /opt/
[root@localhost opt]# head -2 /opt/tmp.txt
[root@localhost opt]# head -2 /etc/passwd
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
快捷键
Tab键:自动补全
–可以补齐命令字,选项,参数,文件路径,软件名,服务名
1下tab键补齐
2下tab键查找
[root@localhost opt]# ls /e(tab)/s(tab)ysco(tab)nfig/netw(tab)ork-(tab)/ifcfg-e(tab)
Ctrl +l : 清空整个屏幕
Ctrl +c : 废弃当前编辑的命令行
[root@localhost opt]# ping 127.0.0.1 #ctrl +c 结束
ESC + . 或ALT + . : 粘贴上一个命令的参数
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
通配符:针对不确定的文档名称,以特殊字符表示
– *:任意多个任意字符
– ?:单个字符
– [a-z]:多个字符或连续范围中的一个,若无则忽略
– {a,min,xy}:多组不同的字符串,全匹配
[root@localhost ~]# ls /boot/vm* #显示/boot目录下以vm开头的数据
[root@localhost ~]# ls /etc/tab #显示/etc/目录下以tab结尾的数据
[root@localhost ~]# ls /etc/.conf #显示/etc/目录下以.conf结尾的数据
[root@localhost ~]# ls /dev/tty? #显示/dev/目录下以tty开头后面有一个数据的
[root@localhost ~]# ls /dev/tty?? #显示/dev/目录下以tty开头后面有2个数据的
[root@localhost ~]# ls /etc/??tab
[root@localhost ~]# ls /etc/*tab
[root@localhost ~]# ls /etc/?tab
[root@localhost ~]# ls /dev/tty[1-3] #显示/dev/tty1,/dev/tty2,/dev/tty3
[root@localhost ~]# ls /dev/tty[5-8]
[root@localhost ~]# ls /dev/tty{2,6,8} #显示/dev/tty2,/dev/tty6,/dev/tty8
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
重定向:将屏幕信息保存到文件中
覆盖重定向: >
追加重定向: >>
[root@localhost ~]# ls --help > /opt/ls.txt
[root@localhost ~]# cat /opt/ls.txt
[root@localhost ~]# cat /etc/redhat-release
[root@localhost ~]# cat /etc/redhat-release > /opt/ls.txt
[root@localhost ~]# cat /opt/ls.txt
[root@localhost ~]# cat /proc/meminfo > /opt/ls.txt
[root@localhost ~]# cat /opt/ls.txt
[root@localhost ~]# cat /etc/redhat-release > /opt/ls.txt
[root@localhost ~]# ls --help >> /opt/ls.txt
[root@localhost ~]# cat /opt/ls.txt
重定向常和echo连用,echo是输出信息的
[root@localhost ~]# echo nihao
[root@localhost ~]# echo hello
[root@localhost ~]# echo 123
[root@localhost ~]# echo hello > /opt/hello.txt
[root@localhost ~]# cat /opt/hello.txt
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
管道:
| 管道操作:将前面命令的输出结果,传递给后面命令当作后面命令的参数
[root@localhost ~]# ifconfig ens33 | head -2
[root@localhost ~]# ls --help | less
[root@localhost ~]#
grep文本内容过滤工具
格式:grep [选项] ‘匹配模式’ 文本文件…
^:匹配关键字在文件的行首(以什么开头)
$:匹配关键字在文件的末尾(以什么结尾)
-i:忽略大小写
-v:取反匹配
例:
[root@localhost ~]# grep ‘127’ /etc/hosts #查找/etc/hosts文件包含127的行
[root@localhost ~]# grep ‘root’ /etc/passwd #查找/etc/passwd文件包含root的行
[root@localhost ~]# grep ‘^root’ /etc/passwd #查找/etc/passwd文件以root开头的行
[root@localhost ~]# grep ‘bashKaTeX parse error: Expected 'EOF', got '#' at position 21: …c/passwd #̲查找/etc/passwd文件…’ /etc/passwd #查找/etc/passwd文件不以bash结尾的行
[root@localhost ~]# cat /etc/redhat-release
[root@localhost ~]# grep ‘centos’ /etc/redhat-release
[root@localhost ~]# grep -i ‘centos’ /etc/redhat-release
[root@localhost ~]# grep ‘CentOS’ /etc/redhat-release
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
find查找文件
–根据预设的条件递归查找对应的文件(/proc目录不占用硬盘空间大小,在内存上存储数据)
格式: find [目录] [条件1]
常用条件表示:
-type:按类型查找(f:文本文件;d:目录;l:快捷方式)
-name:按名称查找
-size:按大小查找(+|- 文件大小(k,M,G))
-user:用户名,文件所有者查找(所有者:文件的创建者)
-mtime:按时间查找
练习15分钟
[root@localhost ~]#find /dev/ -type l #查找/dev目录的是快捷方式
[root@localhost ~]# find /dev/ -type f
[root@localhost ~]# find /boot -type f #查找/boot目录的是文本文件的
[root@localhost ~]# find /boot -type d #查找/boot目录的是目录的
[root@localhost ~]# find /root -type d
[root@localhost ~]# find /etc/ -name “tab" #查找/etc/目录下以tab结尾的
[root@localhost ~]# find /etc/ -name "vm” #查找/etc/目录下以vm开头的
[root@localhost ~]# find /etc/ -name “passwd”
[root@localhost ~]# find /etc/ -name “passwd”
[root@localhost ~]# find /boot/ -size +10M #查找/boot目录下大于10M的
[root@localhost ~]# ls -lh /boot/
[root@localhost ~]# find /boot/ -size -1M
[root@localhost ~]# find /boot/ -size -1024k
[root@localhost ~]# find /boot/ -size -1024K #报错,k要小写
[root@localhost ~]# find /home/ -user tom
[root@localhost ~]# find / -user tom
[root@localhost ~]# find /opt/ -mtime -2 #查找2天之内修改过的文件
[root@localhost ~]# find /opt/ -mtime +2 #查找2天之前修改过的文件
find与wc连用
[root@localhost ~]# wc /etc/passwd
[root@localhost ~]# wc -l /etc/passwd #统计文件行数
[root@localhost ~]# find /etc/ -name “tab"
[root@localhost ~]# find /etc/ -name “tab" | wc -l
[root@localhost ~]# find /etc/ -name ".conf”
[root@localhost ~]# find /etc/ -name ".conf” | wc-l
[root@localhost ~]# find /etc/ -name “*.conf” | wc -l
-a:并且(所有条件都要满足,默认是-a)
-o:或者(满足其一即可)
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# mkdir /opt/nsd
[root@localhost ~]# touch /opt/nsd1.txt
[root@localhost ~]# touch /opt/nsd2.txt
[root@localhost ~]# ls /opt/
[root@localhost ~]# find /opt/ -name “nsd*”
[root@localhost ~]# find /opt/ -name “nsd*” -a -type f #查找nsd开头的并且是文件
[root@localhost ~]# find /opt/ -name “nsd*” -a -type d #查找nsd开头的并且是目录
[root@localhost ~]# find /opt/ -name “nsd*” -o -type d
[root@localhost ~]# find /opt/ -name “nsd*” -type d
[root@localhost ~]# find /boot/ -name “vm*”
[root@localhost ~]# find /boot/ -name “vm*” -exec cp {} /opt ; #查找/boot目录以vm开头的并拷贝到/opt目录下
[root@localhost ~]# ls /opt/
[root@localhost ~]# find /boot -size +10M -type f
[root@localhost ~]# find /boot -size +10M -type f -exec cp {} /opt/ ; #查找/boot目录下大于10M的文件拷贝到/opt目录下
[root@localhost ~]# ls /opt/
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
vim文本编辑器
格式:vim [[/目录/]文件名]
若目标文件不存在,则新建空文件并编辑
若目标文件已存在,则打开此文件并编辑
[root@A ~]# vim /opt/a.txt
命----i 键 或 o 键----->插入模式(按Esc回到命令模式)
令
模
式----: 键----->末行模式(按Esc回到命令模式)