Linux中的一些命令详解
一、命令行格式
1.1、何为命令?
- 在Linux操作系统中,凡是在字符操作界面中输入能够完成特定操作和任务的字符串都可以称为命令
- 命令通常只代表实现某一类功能的程序的名称
命令的格式:命令字 +选项+参数(中间用空格隔开)
选项包含段格式选项和长格式选项,段格式选项使用“-”符号引导后面通常跟一个字母,长格式选项使用“--”符号引导通常后面接完整单词
1.2、获得命令帮助
help:
1 [root@localhost ~]# help echo 2 #内部命令查看帮助 3 echo: echo [-neE] [参数 ...] 4 将参数写到标准输出。 5 6 在标准输出上显示 ARG 参数后跟一个换行。 7 8 选项: 9 -n 不要追加换行 10 -e 启用下列反斜杠转义的解释 11 -E 显式地抑制对于反斜杠转义的解释 12 13 `echo' 对下列反斜杠字符进行转义: 14 \a 警告(响铃) 15 \b 退格 16 \c 抑制更多的输出 17 \e 转义字符 18 \f 格式提供 19 \n 换行 20 \r 回车 21 \t 横向制表符 22 \v 纵向制表符 23 \\ 反斜杠 24 \0nnn 以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是 25 0到3个八进制数字 26 \xHH 以 HH (十六进制)为值的八比特字符。HH可以是 27 一个或两个十六进制数字 28 29 退出状态: 30 返回成功除非有写错误发生。
--help (查看外部命令帮助)
[root@localhost ~]# ls --help
man
1 [root@localhost ~]# whatis ls 2 ls (1) - 列目录内容 3 ls (1p) - list directory contents 4 [root@localhost ~]# whatis passwd
# 可以查看命令的章节 5 passwd (5) - (未知的主题) 6 sslpasswd (1ssl) - compute password hashes 7 passwd (1) - update user's authentication tokens 8 [root@localhost ~]#
info
1 [root@localhost ~]# info ls
二、目录操作
1 [root@localhost ~]# pwd //显示当前路径2 /root 3 [root@localhost ~]# cd /bin 4 [root@localhost bin]# pwd [-lp] // -p 显示真实路径 5 /bin 6 [root@localhost bin]#
2.1、cd
命令(cd) | 效果 |
~ | 切换到当前用户的宿主目录(家目录) |
- | 到前一次目录 |
.(一个点号) | 以当前工作目录为起点 |
.. (两个点号) | 以当前目录的上一级目录为起点 |
2.2、ls
格式:ls [选项] [文件或目录]
选项 | 效果 | 实操 |
-l | 以长格式显示文件和目录列表 |
1 [root@localhost ~]# ls -l
|
-a |
显示全部包括隐藏文件 | 1 [root@localhost ~]# ls -a |
-A | 显示全部文件或隐藏文件,但不包括 . 和 .. | 1 [root@localhost ~]# ls -A |
-d | 仅列出目录本身,而不是列出目录内的文件数据 |
1 [root@localhost ~]# ls -d |
-h | 人性化显示 | 1 [root@localhost ~]# ls -h |
-R | 递归显示该目录及该目录的子目录下的所有内容 | 1 [root@localhost ~]# ls -R |
--color | 显示颜色 | 1 [root@localhost ~]# ls --color |
-S | 以文件容量大小排序 | 1 [root@localhost ~]# ls -S |
-i | indoe号 | 1 [root@localhost ~]# ls -i |
注意:
ls一般不单独使用 ,要加上选项,否则会显示当前文件夹下所有文件,文件数过大可能会导致死机
ls可以配合通配符去过滤需要的文件
2.3、通配符
通配符的作用:匹配文件中的名字,模糊查找文件
符号 | 效果 |
? | 匹配一个字符 例:f?.txt(f开头的文件) |
* | 匹配所有非隐藏的字符,但不匹配隐藏文件 |
{1....10} | 1~10 |
{a.....z}或[[:lower:]] | a~z(小写) |
{A....Z}或[[:upper:]] | A~Z(大写) |
[123] | 123中的任意一个数 |
[a-z] | a~z中任意一个小写字母 |
[0-9] | 0~9中的任意一个数 |
\ | 转义符(表示原来的意思) |
[^zhao] | 匹配列表中除了z,h,a,o以外的所有字符(可以类推) |
[[:digit:]] | 任意数字相当于0~9 |
实操,列几个例子
ls -a *
[root@localhost ~]# ls -a *
{1...10}.txt anaconda-ks.cfg elsfk.sh initial-setup-ks.cfg
# 本来ls -a 表示显示隐藏文件,和通配符 * 一起使用后表示不显示隐藏文件
1 [root@localhost ~]# touch 1 2 3 #创建 1 2 3
2 [root@localhost ~]# ls [[:digit:]] #显示0-9任意的数字
3 1 2 3 #1 2 3 被显示
2.4、alias 命令别名
- alias 命令别名="命令"
- unalias 删除别名
- \+别名命令 显示原始命令
- alias 直接显示所有别名
1 [root@localhost dev]# alias myvim=vim
# 设置vim的别名myvim 2 [root@localhost dev]# unalias myvim
# 删除别名 3 [root@localhost dev]# myvim 4 bash: myvim: 未找到命令...
2.5、du(disk usage)
选项 | 说明 | 效果 |
-a | 统计占用时的所有文件 | ![]()
|
-h | 人性化显示(以kb计数不显示单位) | ![]()
|
-s | 只统计所占用空间总的大小 | ![]()
|
--max-depth=n | 最大显示到第n层 | ![]()
|
--exclude | 不计入统计 | ![]()
|
du和ls
du:统计的当前文件占磁盘的大小,不足4k按4k算
ls:看到的是真是大小
三、增、删、改、查
3.1、增 创建目录(mkdir),创建文件(touch)
mkdir
选项 | 说明 |
-p | 递归创建文件夹 |
-v | 显示详细过程 |
touch
格式 :touch+文件名
3.2、删 “rm”
格式:rm 【选项】要删除的文件或目录
选项 | 说明 |
-f | 强制删除 |
-i | 交互 |
-r | 递归(删除目录需要用到) |
实操
1 [root@localhost opt]# ll 2 总用量 0 3 drwxr-xr-x. 2 root root 6 3月 26 2015 rh 4 -rw-r--r--. 1 root root 0 9月 21 16:22 zhao 5 -rw-r--r--. 1 root root 0 9月 21 16:28 zhao.txt
#当前有zhao,rh,zhao.txt三个文件 6 [root@localhost opt]# rm -rf zhao.txt
#删除zhao.txt文件 7 [root@localhost opt]# ls 8 rh zhao 9 [root@localhost opt]#
3.3、改 (cp、mv、rename)
cp(copy)备份,复制
选项 | 说明 |
-f | 覆盖目标同名文件或目录不提醒,强制覆盖 |
-i | 覆盖目标同名文件或目录提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 递归复制所有文件及子目录 |
-a | 完整保留所有的信息包括连接文件 |
-v | 可视化 |
-u | 相当于增备,差异备份 |
-b | 先备份(只保留最近) |
1 [root@localhost data]# cp -r /etc/ /opt/ 2 #复制文件夹要加 -r 不加不让复制 3 [root@localhost data]# cp -r /etc/ /opt/etc.bak 4 #改名字 5 [root@localhost data]# cp -r /etc/ /opt/etc.bak 6 #变成 etc.bak 的子目录
mv,rename(移动,改名)
- rename格式:rename 旧字符 新字符 目标文件
- mv格式: mv 要移动的文件 要去的地方
[root@test1 opt]# rename txt txt.bak *.txt
#把 txt 改成 txt.bak
[root@test1 opt]# rename txt txt.bak * #将txt改成txt.bak [root@test1 opt]# ls a.txt.bak E.txt.bak j.txt.bak N.txt.bak R.txt.bak w.txt.bak A.txt.bak f.txt.bak J.txt.bak o.txt.bak s.txt.bak W.txt.bak b.txt.bak F.txt.bak k.txt.bak O.txt.bak S.txt.bak x.txt.bak B.txt.bak g.txt.bak K.txt.bak p.txt.bak t.txt.bak X.txt.bak c.txt.bak G.txt.bak l.txt.bak P.txt.bak T.txt.bak y.txt.bak C.txt.bak h.txt.bak L.txt.bak q.txt.bak u.txt.bak Y.txt.bak d.txt.bak H.txt.bak m.txt.bak Q.txt.bak U.txt.bak z.txt.bak D.txt.bak i.txt.bak M.txt.bak rh v.txt.bak Z.txt.bak e.txt.bak I.txt.bak n.txt.bak r.txt.bak V.txt.bak
3.4、查 (find)
find格式:find [查找范围] [查找条件表达式]
查找类型 | 关键字 | 说明 |
按名字查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
按inode号查找 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
最大搜索目录深度 |
-maxdepth level |
将你的文件以分级的形式查找 |
最小搜索目录深度 |
-mindepth level |
同上 |
实例
[root@test1 opt]# find /etc/ -name passwd #查找名字叫 passwd的文件 /etc/pam.d/passwd /etc/passwd [root@test1 opt]# find /etc/ -name *.conf #查找所有.conf 结尾的 ,不要在当前路径下找自己路径下的文件 /etc/resolv.conf /etc/fonts/conf.d/57-dejavu-serif.conf /etc/fonts/conf.d/65-1-vlgothic-gothic.conf /etc/fonts/conf.d/31-cantarell.conf /etc/fonts/conf.d/65-0-lohit-nepali.conf /etc/fonts/conf.d/59-liberation-mono.conf /etc/fonts/conf.d/65-0-lohit-bengali.conf /etc/[root@test1 opt]# find /mnt -user root #查找 用户为root的用户 ./rh ./rh/aaa [root@localhost boot]# find ./ -name "vm*" #查找vm开头的 [root@localhost boot]# find /boot/ -size -10M -a -name "*img" #小于10M 的img文件
TIPS:查看硬件信息的一些命令
- 查看cpu:lscpu
- 查看内存大小:free
- 查看硬盘和分区情况:lsblk
- 查看机器架构:arch
- 查看内核版本:uname -r