第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/boduo

cp

  • 命令名称: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/longze

ls

  • 命令名称:ls
  • 命令英文原意:list
  • 命令所在路径:/bin/ls
  • 执行权限:所有用户
  • 功能描述:显示目录文件
  • 语法ls 选项 [文件或目录]
选项说明
-a显示所有文件,包括隐藏文件
-l详细信息显示
-d查看目录属性
-h人性化显示,给文件大小自动增加单位显示
-ii接点

分页查看:

ls | less
ls | more

touch

  • 命令名称: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/services

tac

  • 命令名称:tac
  • 命令所在路径:/usr/bin/tac
  • 执行权限:所有用户
  • 语法tac [文件名]
  • 功能描述:显示文件内容(反向列示)

示例:

tac /etc/issue

more

  • 命令名称:more
  • 命令所在路径:/bin/more
  • 执行权限:所有用户
  • 语法more [文件名]
  • 功能描述:分页显示文件内容
操作说明
(空格)或f翻页
(Enter)换行
q或Q退出

示例:

more /etc/services

less

  • 命令名称:less
  • 命令所在路径:/usr/bin/less
  • 执行权限:所有用户
  • 语法less [文件名]
  • 功能描述:分页显示文件内容(可向上翻页)
操作说明
pageup往上翻一页
pagedown往下翻一页
往上翻一行
往下翻一行
回车键往下换行
空格键往下换一页
/ + 关键字高亮显示搜索文件,N键(next)查找下一个

示例:

less /etc/services
  • 命令名称:head
  • 命令所在路径:/usr/bin/head
  • 执行权限:所有用户
  • 语法head [文件名]
  • 功能描述:显示文件前面几行
选项说明
-n指定行数

示例:

head -n 20 /etc/services

tail

  • 命令名称:tail
  • 命令所在路径:/usr/bin/tail
  • 执行权限:所有用户
  • 语法tail [文件名]
  • 功能描述:显示文件后面几行
选项说明
-n指定行数
-f动态显示文件末尾内容

示例:

tail -n 18 /etc/services

ln

  • 命令名称:ln
  • 命令英文原意:link
  • 命令所在路径:/bin/ln
  • 执行权限:所有用户
  • 语法ln -s [原文件] [目标文件]
  • 功能描述:生成链接文件
选项说明
-s创建软链接

软链接

ln -s /etc/issue /tmp/issue.soft
# 创建文件/etc/issue的软链接/tmp/issue.soft
# 软连接相当于Windows里的快捷方式

软链接特点:

  1. lrwxrwxrwx 文件权限都是可读可写可执行
  2. 文件大小只是符号链接
  3. /tmp/issue.soft -> /etc/issue 箭头指向源文件

硬链接

ln /etc/issue /tmp/issue.hard
# 创建文件/etc/issue的硬链接/tmp/issue.hard
# 源文件的备份文件,并且实时更新

硬链接特点:

  1. 拷贝 cp -p + 同步更新
  2. 通过i节点识别
  3. 不能跨分区
  4. 不能针对目录使用

du

du -sh test
# 显示test文件的大小

权限管理命令

返回目录 | 返回顶部

chmod

  • 命令名称:chmod
  • 命令英文原意:change the permissions mode of a file
  • 命令所在路径:/bin/chmod
  • 执行权限:所有用户
  • 语法chmod [{ugoa}{+-=}{rwx}] [文件或目录]
  • 功能描述:改变文件或目录权限
符号含义说明
uuser所有者
ggroup所属组
oother其他人
aall所有人

权限的数字表示:

  • 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的所有者为shenchao

chgrp

  • 命令名称:chgrp
  • 命令英文原意:change file group ownership
  • 命令所在路径:/bin/chgrp
  • 执行权限:所有用户
  • 语法chgrp [用户组] [文件或目录]
  • 功能描述:改变文件或目录的所属组

示例:

chgrp lampbrother fengjie
# 改变文件fengjie的所属组为lampbrother

umask

  • 命令名称:umask
  • 命令英文原意:the user file-creation mask
  • 命令所在路径:Shell内置命令
  • 执行权限:所有用户
  • 语法umask [-S]
  • 功能描述:显示、设置文件的缺省权限
选项说明
-S以rwx形式显示新建文件缺省权限

示例:

umask -S
# u=rwx,g=rx,o=rx

默认情况:

  • mkdir 创建的目录权限 drwxr-xr-x
  • touch 创建的文件权限 -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 ls

grep

  • 命令名称: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 lisi

passwd

  • 命令名称: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.gz

gunzip

  • 命令名称:gunzip
  • 命令英文原意:GNU unzip
  • 命令所在路径:/bin/gunzip
  • 执行权限:所有用户
  • 语法gunzip [压缩文件]
  • 功能描述:解压.gz的压缩文件

示例:

gunzip test.gz
# 或者
gzip -d test.gz

tar

  • 命令名称: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.zip

bzip2

  • 命令名称: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

  • 命令名称: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.com

netstat

  • 命令名称:netstat
  • 命令所在路径:/bin/netstat
  • 执行权限:所有用户
  • 语法netstat [选项]
  • 功能描述:显示网络相关信息
选项说明
-tTCP协议
-uUDP协议
-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 apache

nmap扫描

首先需要安装nmap:

yum -y install nmap

查询所有服务

service --status-all

服务管理详见 服务管理 章节