第2章 常用命令
📝 Linux学习笔记 - 第2章 🎯 共9节
本章目录
文件处理命令
命令格式
命令 [-选项] [参数]
例:ls -la /etc
- 个别命令不遵循此格式
- 当有多个选项时,可以写在一起
- 简化选项与完整选项
-a等于--all - 中括号[]中的是可选参数
文件类型
-rw-r--r--
| 符号 | 类型 |
|---|---|
| - | 二进制文件 |
| d | 目录 |
| l | 软链接文件 |
权限位说明
rw- r-- r--
| rw- | r— | r— |
|---|---|---|
| u所有者 | g所属组 | o其他人 |
| r读取 | w写入 | x执行 |
mkdir
- 命令名称:mkdir
- 命令英文原意:make directories
- 命令所在路径:/bin/mkdir
- 执行权限:所有用户
- 语法:
mkdir -p [目录名] - 功能描述:创建新目录
| 选项 | 说明 |
|---|---|
| -p | 递归创建 |
示例:
mkdir -p /tmp/Japan/boduo
# 递归创建
mkdir /tmp/Japan/longze /tmp/Janpan/cangjing
# 同时创建多个目录cd
- 命令名称:cd
- 命令英文原意:change directory
- 命令所在路径:shell内置命令
- 执行权限:所有用户
- 语法:
cd [目录] - 功能描述:切换目录
示例:
cd /tmp/Janpan/boduo
# 切换到指定目录
cd ..
# 返回上一级目录pwd
- 命令名称:pwd
- 命令英文原意:print working directory
- 命令所在路径:/bin/pwd
- 执行权限:所有用户
- 语法:
pwd - 功能描述:显示当前目录
示例:
pwd
# 显示当前工作目录rmdir
- 命令名称:rmdir
- 命令英文原意:remove empty directories
- 命令所在路径:/bin/rmdir
- 执行权限:所有用户
- 语法:
rmdir [目录名] - 功能描述:删除空目录
示例:
rmdir /tmp/Japan/boduocp
- 命令名称:cp
- 命令英文原意:copy
- 命令所在路径:/bin/cp
- 执行权限:所有用户
- 语法:
cp -rp [原文件或目录] [目标目录] - 功能描述:复制文件或目录
| 选项 | 说明 |
|---|---|
| -r | 复制目录 |
| -p | 保留文件属性 |
示例:
cp -r /tmp/Japan/cangjing /root
# 将目录/tmp/Japan/cangjing复制到目录/root下
cp -rp /tmp/Japan/boduo /tmp/Japan/longze /root
# 将/tmp/Japan目录下的boduo和longze目录复制到/root下,保持目录属性mv
- 命令名称:mv
- 命令英文原意:move
- 命令所在路径:/bin/mv
- 执行权限:所有用户
- 语法:
mv [原文件或目录] [目标目录] - 功能描述:剪切文件、改名
rm
- 命令名称:rm
- 命令英文原意:remove
- 命令所在路径:/bin/rm
- 执行权限:所有用户
- 语法:
rm -rf [文件或目录] - 功能描述:删除文件
| 选项 | 说明 |
|---|---|
| -r | 删除目录 |
| -f | 强制执行 |
示例:
rm /tmp/yum.log
# 删除文件/tmp/yum.log
rm -rf /tmp/Japan/longze
# 删除目录/tmp/Japan/longzels
- 命令名称:ls
- 命令英文原意:list
- 命令所在路径:/bin/ls
- 执行权限:所有用户
- 功能描述:显示目录文件
- 语法:
ls 选项 [文件或目录]
| 选项 | 说明 |
|---|---|
| -a | 显示所有文件,包括隐藏文件 |
| -l | 详细信息显示 |
| -d | 查看目录属性 |
| -h | 人性化显示,给文件大小自动增加单位显示 |
| -i | i接点 |
分页查看:
ls | less
ls | moretouch
- 命令名称:touch
- 命令所在路径:/bin/touch
- 执行权限:所有用户
- 语法:
touch [文件名] - 功能描述:创建空文件
示例:
touch Japanlovestory.list
touch program file
# 创建program和file两个文件,不建议用空格的名称
touch "program file"
# 创建带有空格的文件名program file时需要加""双引号
touch /tmp/japanlovestory.list
# 创建绝对路径的文件cat
- 命令名称:cat
- 命令所在路径:/bin/cat
- 执行权限:所有用户
- 语法:
cat [文件名] - 功能描述:显示文件内容
| 选项 | 说明 |
|---|---|
| -n | 显示行号 |
示例:
cat /etc/issue
cat -n /etc/servicestac
- 命令名称:tac
- 命令所在路径:/usr/bin/tac
- 执行权限:所有用户
- 语法:
tac [文件名] - 功能描述:显示文件内容(反向列示)
示例:
tac /etc/issuemore
- 命令名称:more
- 命令所在路径:/bin/more
- 执行权限:所有用户
- 语法:
more [文件名] - 功能描述:分页显示文件内容
| 操作 | 说明 |
|---|---|
| (空格)或f | 翻页 |
| (Enter) | 换行 |
| q或Q | 退出 |
示例:
more /etc/servicesless
- 命令名称:less
- 命令所在路径:/usr/bin/less
- 执行权限:所有用户
- 语法:
less [文件名] - 功能描述:分页显示文件内容(可向上翻页)
| 操作 | 说明 |
|---|---|
| pageup | 往上翻一页 |
| pagedown | 往下翻一页 |
| ↑ | 往上翻一行 |
| ↓ | 往下翻一行 |
| 回车键 | 往下换行 |
| 空格键 | 往下换一页 |
| / + 关键字 | 高亮显示搜索文件,N键(next)查找下一个 |
示例:
less /etc/serviceshead
- 命令名称:head
- 命令所在路径:/usr/bin/head
- 执行权限:所有用户
- 语法:
head [文件名] - 功能描述:显示文件前面几行
| 选项 | 说明 |
|---|---|
| -n | 指定行数 |
示例:
head -n 20 /etc/servicestail
- 命令名称:tail
- 命令所在路径:/usr/bin/tail
- 执行权限:所有用户
- 语法:
tail [文件名] - 功能描述:显示文件后面几行
| 选项 | 说明 |
|---|---|
| -n | 指定行数 |
| -f | 动态显示文件末尾内容 |
示例:
tail -n 18 /etc/servicesln
- 命令名称:ln
- 命令英文原意:link
- 命令所在路径:/bin/ln
- 执行权限:所有用户
- 语法:
ln -s [原文件] [目标文件] - 功能描述:生成链接文件
| 选项 | 说明 |
|---|---|
| -s | 创建软链接 |
软链接
ln -s /etc/issue /tmp/issue.soft
# 创建文件/etc/issue的软链接/tmp/issue.soft
# 软连接相当于Windows里的快捷方式软链接特点:
lrwxrwxrwx文件权限都是可读可写可执行- 文件大小只是符号链接
/tmp/issue.soft -> /etc/issue箭头指向源文件
硬链接
ln /etc/issue /tmp/issue.hard
# 创建文件/etc/issue的硬链接/tmp/issue.hard
# 源文件的备份文件,并且实时更新硬链接特点:
- 拷贝
cp -p+ 同步更新 - 通过i节点识别
- 不能跨分区
- 不能针对目录使用
du
du -sh test
# 显示test文件的大小权限管理命令
chmod
- 命令名称:chmod
- 命令英文原意:change the permissions mode of a file
- 命令所在路径:/bin/chmod
- 执行权限:所有用户
- 语法:
chmod [{ugoa}{+-=}{rwx}] [文件或目录] - 功能描述:改变文件或目录权限
| 符号 | 含义 | 说明 |
|---|---|---|
| u | user | 所有者 |
| g | group | 所属组 |
| o | other | 其他人 |
| a | all | 所有人 |
权限的数字表示:
- r ---- 4
- w ---- 2
- x ---- 1
例如:rwx rw- r-- 对应 7 6 4
递归修改: -R 递归修改
示例:
chmod g+w testfile
# 赋予文件testfile所属组写权限
chmod -R 777 testdir
# 修改目录testfile及其目录下文件为所有用户具有全部权限文件目录权限总结
| 代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
|---|---|---|---|
| r | 读权限 | 可以查看文件内容 | 可以列出目录中的内容 |
| w | 写权限 | 可以修改文件内容 | 可以在目录中创建、删除文件 |
| x | 执行权限 | 可以执行文件 | 可以进入目录 |
chown
- 命令名称:chown
- 命令英文原意:change file ownership
- 命令所在路径:/bin/chown
- 执行权限:所有用户
- 语法:
chown [用户] [文件或目录] - 功能描述:改变文件或目录的所有者
示例:
chown shenchao fengjie
# 改变文件fengjie的所有者为shenchaochgrp
- 命令名称:chgrp
- 命令英文原意:change file group ownership
- 命令所在路径:/bin/chgrp
- 执行权限:所有用户
- 语法:
chgrp [用户组] [文件或目录] - 功能描述:改变文件或目录的所属组
示例:
chgrp lampbrother fengjie
# 改变文件fengjie的所属组为lampbrotherumask
- 命令名称:umask
- 命令英文原意:the user file-creation mask
- 命令所在路径:Shell内置命令
- 执行权限:所有用户
- 语法:
umask [-S] - 功能描述:显示、设置文件的缺省权限
| 选项 | 说明 |
|---|---|
| -S | 以rwx形式显示新建文件缺省权限 |
示例:
umask -S
# u=rwx,g=rx,o=rx默认情况:
mkdir创建的目录权限drwxr-xr-xtouch创建的文件权限-rw-r--r--没有可执行权限
修改默认权限:
umask 023
# 需要用 777-754=023,类似于反掩码
# 如果需要修改默认权限为 rwxr-x-r-- (754)
# 需要用 777-754=023文件搜索命令
find
- 命令名称:find
- 命令所在路径:/bin/find
- 执行权限:所有用户
- 语法:
find [搜索范围] [匹配条件] - 功能描述:文件搜索
按文件名搜索
find /etc -name init
# 在目录/etc中查找文件init
find /etc -iname init
# 不区分大小写
find / -name "*log*"
# 通配符匹配,*匹配任意字符按文件大小搜索
find / -size +204800
# 在根目录下查找大于100MB的文件
# 1块=512字节 100MB=102400KB=204800块
# +n 大于 -n 小于 n 等于按所有者搜索
find /home -user root
# 在/home目录下查找所有者为root的文件按时间属性搜索
find /etc -mmin -5
# 在/etc下查找5分钟内被修改过属性的文件和目录
# -amin 访问时间 access
# -cmin 文件属性 change
# -mmin 文件内容 modify多条件连接
find /etc -size +163840 -a -size -204800
# 在/etc下查找大于80MB小于100MB的文件
# -a 两个条件同时满足 and
# -o 两个条件满足任意一个即可 or对搜索结果执行操作
find /etc -name inittab -exec ls -l {} \;
# 在/etc下查找inittab文件并显示其详细信息
# -exec/-ok 命令 {} \; 对搜索结果执行操作
find /etc -name *.log -ok rm {} \;
# 询问删除按文件类型搜索
find /tmp -type d
# -f 文件 -d 目录 -l 软链接文件根据i节点查找
find . -inum 1234 -exec rm {} \;
# 根据i节点查找并删除文件locate
- 命令名称:locate
- 命令英文原意:
- 命令所在路径:/usr/bin/locate
- 执行权限:所有用户
- 语法:
locate 文件名 - 功能描述:在文件资料库中查找文件
示例:
locate passwd
# 快速查找文件
updatedb
# 更新文件数据库
# 新建的文件如果搜不到,执行updatedb更新数据库which
- 命令名称:which
- 命令所在路径:/usr/bin/which
- 执行权限:所有用户
- 语法:
which 命令 - 功能描述:搜索命令所在目录及别名信息
示例:
which ls
# 显示命令路径和别名whereis
- 命令名称:whereis
- 命令所在路径:/usr/bin/whereis
- 执行权限:所有用户
- 语法:
whereis [命令名称] - 功能描述:搜索命令所在路径及帮助文档所在位置
示例:
whereis lsgrep
- 命令名称:grep
- 命令所在路径:/bin/grep
- 执行权限:所有用户
- 语法:
grep -iv [指定字串] [文件] - 功能描述:在文件中搜寻字串匹配的行并输出
| 选项 | 说明 |
|---|---|
| -i | 不区分大小写 |
| -v | 排除指定字串 |
示例:
grep mysql /root/install.log
# 在文件中搜索包含mysql的行
grep -v "^#" /etc/inittab
# 排除以#开头的注释行帮助命令
man
- 命令名称:man
- 命令英文原意:manual
- 命令所在路径:/usr/bin/man
- 执行权限:所有用户
- 语法:
man [命令或配置文件] - 功能描述:获得帮助信息
示例:
man ls
# 查看ls命令的帮助信息
man services
# 查看配置文件services的帮助信息
# 注意:配置文件不要写绝对路径,直接写文件名man手册分章节:
- 1:命令的帮助
- 5:配置文件的帮助
man 5 passwd
# 查看passwd配置文件的帮助(第5章节)手册内操作:
/关键词搜索n下一个匹配
whatis
whatis ls
# 得到命令的简短描述信息apropos
apropos passwd
# 搜索和passwd相关的所有手册info
info ls
# 类似man的在线文档帮助help
- 命令名称:help
- 命令所在路径:Shell内置命令
- 执行权限:所有用户
- 语法:
help 命令 - 功能描述:获得Shell内置命令的帮助信息
示例:
help umask
# 查看umask命令的帮助外部命令获取帮助:
ls --help
# 外部命令通用的简短帮助用户管理命令(基础)
useradd
- 命令名称:useradd
- 命令英文原意:add a new user
- 命令所在路径:/usr/sbin/useradd
- 执行权限:root
- 语法:
useradd 用户名 - 功能描述:添加新用户
示例:
useradd lisipasswd
- 命令名称:passwd
- 命令英文原意:update user’s authentication tokens
- 命令所在路径:/usr/bin/passwd
- 执行权限:所有用户
- 语法:
passwd 用户名 - 功能描述:设置用户密码
示例:
passwd lisi
# root用户可以修改任意用户密码
passwd
# 普通用户修改自己的密码who
- 命令名称:who
- 命令所在路径:/usr/bin/who
- 执行权限:所有用户
- 语法:
who - 功能描述:查看登录用户信息
输出字段:
- 登录用户名
- 登录终端(tty本地终端,pts远程终端)
- 登录时间
- 登录IP地址
w
- 命令名称:w
- 命令所在路径:/usr/bin/w
- 执行权限:所有用户
- 语法:
w - 功能描述:查看登录用户详细信息
显示信息:
- 系统当前时间
- 系统运行时长
- 登录用户数
- 系统平均负载
- 用户、终端、登录IP、登录时间、空闲时间、CPU占用、当前操作
压缩解压命令
gzip
- 命令名称:gzip
- 命令英文原意:GNU zip
- 命令所在路径:/bin/gzip
- 执行权限:所有用户
- 语法:
gzip [文件] - 功能描述:压缩文件
- 压缩后文件格式:.gz
特点:
- 只能压缩文件,不能压缩目录
- 不保留原文件
示例:
gzip test.txt
# 压缩后生成 test.txt.gzgunzip
- 命令名称:gunzip
- 命令英文原意:GNU unzip
- 命令所在路径:/bin/gunzip
- 执行权限:所有用户
- 语法:
gunzip [压缩文件] - 功能描述:解压.gz的压缩文件
示例:
gunzip test.gz
# 或者
gzip -d test.gztar
- 命令名称:tar
- 命令所在路径:/bin/tar
- 执行权限:所有用户
- 语法:
tar 选项[-zcf] [压缩后文件名] [目录] - 功能描述:打包目录
- 压缩后文件格式:.tar.gz / .tar.bz2
| 选项 | 说明 |
|---|---|
| -c | 打包 |
| -v | 显示详细信息 |
| -f | 指定文件名 |
| -z | 打包同时压缩 |
| -x | 解包 |
打包压缩:
tar -zcvf test.tar.gz test
# 将test目录打包并压缩为test.tar.gz解压缩:
tar -zxvf test.tar.gz
# 解压.tar.gz文件bz2格式:
tar -cjf test.tar.bz2 test
# 压缩为bz2格式(压缩率更高)
tar -xjf test.tar.bz2
# 解压bz2格式zip
- 命令名称:zip
- 命令所在路径:/usr/bin/zip
- 执行权限:所有用户
- 语法:
zip 选项[-r] [压缩后文件名] [文件或目录] - 功能描述:压缩文件或目录
- 压缩后文件格式:.zip
| 选项 | 说明 |
|---|---|
| -r | 压缩目录 |
特点:
- Windows和Linux通用
- 保留原文件
示例:
zip test.zip test.txt
# 压缩文件
zip -r test.zip test
# 压缩目录unzip
- 命令名称:unzip
- 命令所在路径:/usr/bin/unzip
- 执行权限:所有用户
- 语法:
unzip [压缩文件] - 功能描述:解压.zip的压缩文件
示例:
unzip test.zipbzip2
- 命令名称:bzip2
- 命令所在路径:/usr/bin/bzip2
- 执行权限:所有用户
- 语法:
bzip2 选项 [-k] [文件] - 功能描述:压缩文件
- 压缩后文件格式:.bz2
| 选项 | 说明 |
|---|---|
| -k | 产生压缩文件后保留原文件 |
示例:
bzip2 -k test
# 压缩并保留原文件bunzip2
- 命令名称:bunzip2
- 命令所在路径:/usr/bin/bunzip2
- 执行权限:所有用户
- 语法:
bunzip2 选项 [-k] [压缩文件] - 功能描述:解压缩
| 选项 | 说明 |
|---|---|
| -k | 解压缩后保留原文件 |
示例:
bunzip2 -k test.bz2网络命令
write
- 命令名称:write
- 命令所在路径:/usr/bin/write
- 执行权限:所有用户
- 语法:
write <用户名> - 功能描述:给用户发信息,以Ctrl+D保存结束
示例:
write lisi
# 给在线用户lisi发消息wall
- 命令名称:wall
- 命令英文原意:write all
- 命令所在路径:/usr/bin/wall
- 执行权限:所有用户
- 语法:
wall [message] - 功能描述:发广播信息
示例:
wall Hello everyone!
# 给所有在线用户发广播ping
- 命令名称:ping
- 命令所在路径:/bin/ping
- 执行权限:所有用户
- 语法:
ping 选项 IP地址 - 功能描述:测试网络连通性
| 选项 | 说明 |
|---|---|
| -c | 指定发送次数 |
示例:
ping -c 4 192.168.1.1
# 发送4次数据包后停止ifconfig
- 命令名称:ifconfig
- 命令英文原意:interface configure
- 命令所在路径:/sbin/ifconfig
- 执行权限:root
- 语法:
ifconfig 网卡名称 IP地址 - 功能描述:查看和设置网卡信息
示例:
ifconfig
# 查看网卡信息
ifconfig eth0 192.168.1.100
# 临时设置eth0网卡IP
ifconfig eth0:1 192.168.1.101
# 给eth0网卡多绑定一个ip地址(虚拟网卡)- 命令名称:mail
- 命令所在路径:/bin/mail
- 执行权限:所有用户
- 语法:
mail [用户名] - 功能描述:查看发送电子邮件
示例:
mail root
# 给root发邮件
# 输入主题、内容,Ctrl+D发送
mail
# 查看收件箱last
- 命令名称:last
- 命令所在路径:/usr/bin/last
- 执行权限:所有用户
- 语法:
last - 功能描述:列出目前与过去登入系统的用户信息
示例:
last
# 查看所有登录记录和重启记录lastlog
- 命令名称:lastlog
- 命令所在路径:/usr/bin/lastlog
- 执行权限:所有用户
- 语法:
lastlog - 功能描述:检查某特定用户上次登录的时间
示例:
lastlog
# 查看所有用户最后一次登录时间
lastlog -u 1000
# 查看指定UID用户的登录记录traceroute
- 命令名称:traceroute
- 命令所在路径:/bin/traceroute
- 执行权限:所有用户
- 语法:
traceroute - 功能描述:显示数据包到主机间的路径
示例:
traceroute www.baidu.comnetstat
- 命令名称:netstat
- 命令所在路径:/bin/netstat
- 执行权限:所有用户
- 语法:
netstat [选项] - 功能描述:显示网络相关信息
| 选项 | 说明 |
|---|---|
| -t | TCP协议 |
| -u | UDP协议 |
| -l | 监听 |
| -r | 路由 |
| -n | 显示IP地址和端口号 |
示例:
netstat -tlun
# 查看本机监听的端口
netstat -an
# 查看本机所有的网络连接
netstat -rn
# 查看本机路由表setup
- 命令名称:setup
- 命令所在路径:/usr/bin/setup
- 执行权限:root
- 语法:
setup - 功能描述:配置网络
- 备注:RedHat系列专有
mount
- 命令名称:mount
- 命令所在路径:/bin/mount
- 执行权限:所有用户
- 语法:
mount [-t 文件系统] 设备文件名 挂载点 - 功能描述:挂载文件系统
示例:
mount -t iso9660 /dev/sr0 /mnt/cdrom
# 挂载光盘
umount /mnt/cdrom
# 卸载光盘
# 注意:不能在挂载目录内执行卸载命令关机重启命令
shutdown
- 命令名称:shutdown
- 语法:
shutdown [选项] 时间 - 功能描述:关机/重启命令(相对更安全,会正确保存服务)
| 选项 | 说明 |
|---|---|
| -c | 取消前一个关机命令 |
| -h | 关机 |
| -r | 重启 |
示例:
shutdown -h now
# 现在关机
shutdown -h 22:00
# 晚上10点关机
shutdown -r now
# 现在重启
shutdown -c
# 取消上一个关机命令其他关机命令
halt
poweroff
init 0重启命令
reboot
init 6系统运行级别
| 级别 | 说明 |
|---|---|
| 0 | 关机 |
| 1 | 单用户 |
| 2 | 不完全多用户,不含NFS服务 |
| 3 | 完全多用户 |
| 4 | 未分配 |
| 5 | 图形界面 |
| 6 | 重启 |
runlevel
# 查询系统运行级别
cat /etc/inittab
# 修改系统默认运行级别
# id:3:initdefault: 代表默认运行级别为3
# 注意:不要把默认运行级别设为0或6,否则系统无法正常启动退出登录命令
logout
# 退出登录服务器相关命令
查看apache
ps aux | grep apachenmap扫描
首先需要安装nmap:
yum -y install nmap查询所有服务
service --status-all服务管理详见 服务管理 章节