# Linux 常用命令

# 命令的基本格式

[root@localhost ~]#

  • root: 当前登陆用户
  • localhost: 主机名
  • ~: 当前所在目录(家目录) root 在 /root,其他用户在 /home/username
  • #|$: 超级/普通 用户提示符

命令格式:命令 [选项] [参数]

个别命令使用不遵循此格式。当有多个选项时,可以写在一起简化选项与完整选项 -a 等于 --all

ls
ls -[alhdi] # a: 显示文件,包括隐藏文件。l: 显示详细信息。d: 查看目录属性. h:人性化显示文件大小。i: 显示 inode

ls -l
# -rw-r--r--. 1 root root 1426 Jul 18 22:53 anaconda-ks.conf

# 第一位 -: 文件类型,d: 目录类型 l: 软连接
# rw-: u 所有者
# r--: g 所属组
# r--: o 其他人
# . 调调 ACL 权限
# r 读 w 写 x 执行
# 1 代表引用计数
# root 第一个代表所有者
# root 第二个代表所有组
# 1426 大小,字节 b
# 时间:最后一次修改时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 软件操作命令

软件包管理:yum

# 安装软件
yum install xxx

# 卸载软件
yum remove xxx

# 搜索软件
yum search xxx

# 清理缓存
yum clear packages

# 列出已安装
yum list

# 软件包信心
yum info xxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 服务器硬件资源信息

# 内存
free -m

# 硬盘
df -h

# 负载
w/top

# cpu个数和核数
cat /proc/cpuinfo

# 磁盘操作
fdisk
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 文件操作命令

# 文件目录结构

  • 根目录 /
  • 启动目录,保存着用户的启动数据 /boot
  • 特殊文件保存目录 /dev
  • 普通用户家目录 /home
  • 超级用户家目录 /root
  • Linux 中函数库保存位置 /lib
  • 挂载其他盘符目录例如打印机,USB 等 /media /mnt /misc
  • 内存的挂载点,不能直接操作 /proc /sys
  • 临时目录 /tmp
  • 配置目录 /etc
  • 系统相关文档内容 /var
  • 用户程序软件资源目录 /usr
  • 保存系统命令 /bin /sbin /usr/bin /usr/sbin,其中 bin 目录是所有用户可以执行的命令,sbin 是超级用户才可以执行的命令

# 文件权限

权限 数字
r(可读) 4
w(可写) 2
x(可执行) 1
cp -[rpda] # r 复制目录 p 连带文件属性复制 d 若源文件时链接文件,则复制链接属性 a 相当于 pdr
1

# 链接命令 ln

ln -s [源文件] [目标文件]
# 生成链接文件, -s 创建软链接
1
2

硬链接特征:

  1. 拥有相同的 i 节点和存储 block 块,可以看作是同一个文件
  2. 可通过 i 节点识别
  3. 不能跨分区
  4. 不能针对目录使用

软链接特征:

  1. 类似 Windows 快捷方式
  2. 软链接拥有自己的 I 节点和 Block 块,但是数据块中只保存原文件的文件名和 I 节点号,并没有实际的文件数据
  3. lrwxrwxrwx: l 软链接,软链接的文件权限都为 rwxrwxrwx
  4. 修改任意文件,另一个都改变
  5. 删除原文件,软链接不能使用

# 文件搜索、查找、读取

命令 解释
tail 从文件尾部读取
head 从文件头部读取
cat 预览整个文件
more 分页读取
less 可控分页
grep 搜索关键字
find 查找文件,比 location 慢,但是非常强大
wc 统计个数
locate 文件搜索,yum install mlocate,配置文件在 /etc/updatedb.conf
whereis 系统命令所在路径
which 系统命令所在路径及别名
whatis 查看系统命令是干什么的
# 在 file 中查找 text 文本
grep 'text' file

# 在 file 中查找文本并显示行号
grep -n 'text' file

# 统计文件行数
wc -l

# 查找当前文件加下所有以 .conf 结尾的文件
find . -name '*.conf'

# 按类型查找
find . -type d # 文件夹
find . -type f # 文件

# 查找20天内更新过的文件
find . -ctime -20

locate [文件名]
# 在后台数据库中按文件名搜索,搜索速度快,/var/lib/mlocate 为 locate 命令所搜索的后台数据库,数据库不是实时更新,所以刚新建的文件搜不到
updatedb
# 更新数据库

whereis [命令名]
# 搜索命令所在路径及帮助文档所在位置
# 选项: -b 只查找可执行文件 -m 只查找帮助文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 环境变量

PATH 环境变量: 定义的是系统搜索命令的路径,通过 : 分割

echo $PATH
# /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
1
2

# 系统用户操作命令

命令 解释
useradd 添加用户
adduser 添加用户
userdel 删除用户
passwd 设置密码

useradd 与 adduser 区别

# sudo 提权

给 newming 用户提权

visudo

# 修改文件,增加一行退出保存就可以了
## Allows people in group wheel to run all commands
%newming ALL=(ALL) ALL
1
2
3
4
5

http://www.ruanyifeng.com/blog/2014/03/server_setup.html

# 文件下载上传

# 服务器文件下载
wget http://www.baidu.com
curl -o test.html http://www.baidu.com

# 本地文件上传到服务器
scp -P port file root@ip:path
# 本地下载服务器文件
scp -P port root@ip:path file
1
2
3
4
5
6
7
8

# chmod

# 修改文件权限
sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/

# 修改文件所有者
sudo chown -R newming:newming /data
1
2
3
4
5

# 查看登录用户信息

# w 命令

查看当前系统登录的用户信息

w
1

命令输出:

  • USER: 登录的用户名
  • TTY: 登录终端
  • FROM: 从哪个IP地址登录
  • LOGIN@: 登录时间
  • IDLE: 用户闲置时间
  • JCPU: 指的是和该终端连接的所有进程占用的时间,这个时间不包含过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
  • PCPU: 指当前进程所占用的时间
  • WHAT: 当前正在运行的命令

# who 命令

who
1

命令输出:

  • 用户名
  • 登录终端
  • 登陆时间(登录来源 IP 地址)

# 查询当前登录和过去登录的用户信息

last 命令默认是读取 /var/log/wtmp 文件数据

last
1

命令输出:

  • 用户名
  • 登录终端
  • 登录 IP
  • 登录时间
  • 退出时间(在线时间)

# lastlog

查看所有用户的最后一次登录时间

lastlog 命令默认是读取 /var/log/lastlog 文件内容

lastlog
1

命令输出:

  • 用户名
  • 登录终端
  • 登录 IP
  • 最后一次登录时间