linux常用命令
基础操作
快捷键
# 清屏
Ctrl + L
或者
clear
# 快速补齐
[Tab]
# 终止执行的命令
[ctrl + c]
# 挂起正在执行的命令
[ctrl + z]
# 恢复
fg xxx
开关机,重启
#关机
poweroff
halt
init 0
# 设置运行级别
init level
#init 0 - 停机(千万不能把initdefault 设置为0 )
#init 1 - 单用户模式,只root用户进行维护
#init 2 - 多用户,不能使用NFS(Net File System) 不联网
#init 3 - 完全多用户模式(标准的运行级)
#init 4 - 安全模式
#init 5 - X11 (xwindow) 图形化界面模式
#init 6 - 重新启动 (千万不要把initdefault 设置为6 )
#重启
reboot
init 6
#退出登录
exit
查看主机信息
# 查看系统相关信息
uname
-a 显示主机名、内核版本、硬件平台等详细信息
-r 显示内核版本
# 查看主机名
hostname
# 查看IP地址信息
ifconfig/hostname -i/ip a/ip address
# 查看当前用户名
whoami
# 显示目前登入系统的用户信息
w
# 查看当前登录的用户
who
# 查看系统版本
cat /etc/issue
cat /etc/*-release
用户管理
添加用户
useradd 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
# 添加新用户tom
useradd tom
# 添加新用户tom,指定家目录
useradd -d /home/tom -m tom
删除用户
userdel 选项 用户名
-r 把用户的主目录一起删除
# 删除用户tom及它的家目录
userdel -r tom
修改用户
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
usermod 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
# 将用户tom的登录Shell修改为ksh,主目录改为/home/z
usermod -s /bin/bash -d /home/z tom -m
用户口令的管理
passwd 选项 用户名
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
# 修改tom的口令
passwd tom
# 指定tom为空口令
passwd -d sam
# 锁定tom的账号
passwd -l sam
切换用户
su 用户名
以系统管理者的身份执行指令
sudo command
-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次
确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username
的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者
root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
用户组管理
增加用户组
groupadd 选项 用户组
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除用户组
groupdel 用户组
修改用户组
groupmod 选项 用户组
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
用户组切换
newgrp
# 切换到root组
newgrp root
用户信息与密码的配置文件
用户信息文件 /etc/passwd
密码文件 /etc/shadow
用户组文件 /etc/group
组密码 /etc/gshadow
文件与目录管理
列出目录
ls
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
切换目录
cd 绝对路径或相对路径
显示目前所在的目录
pwd -P
-P:显示出确实的路径
创建新目录
mkdir [-mp] 目录名称
-m :配置文件的权限喔
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
删除空的目录
rmdir [-p] 目录名称
-p :从该目录起,一次删除多级空目录
复制文件或目录
cp [-adfilprsu] 来源档(source) 目标档(destination)
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination
移除文件或目录
rm [-fir] 文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
移动文件与目录
mv [-fiu] source destination
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
文件内容查看
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,它可以往前翻页!G - 移动到最后一行 g - 移动到第一行 q / ZZ - 退出 less 命令
head 只看头几行
tail 只看尾巴几行
# 只看前三行
head -3 xxx
# 只看后三行
tail -3 xxx
创建文件
touch filename
压缩和解压缩
查找命令
find
-name pattern:按文件名查找,支持使用通配符 * 和 ?。
-type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。
-size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。
-mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。
-user username:按文件所有者查找。
-group groupname:按文件所属组查找。
实例
find -name file.txt 查找当前目录下名为 file.txt 的文件:
find -name "*.c" 将当前目录及其子目录下所有文件后缀为 .c 的文件列出来
find -type f 将当前目录及其子目录中的所有文件列出:
find /home -size +1M 查找 /home 目录下大于 1MB 的文件
find /var/log -mtime +7 查找 /var/log 目录下在 7 天前修改过的文件:
find . -ctime 20 将当前目录及其子目录下所有最近 20 天前更新过的文件列出,不多不少正好 20 天前的:
find . -ctime +20 将当前目录及其子目录下所有 20 天前及更早更新过的文件列出:
grep
网络管理
查看与配置网络状态
# 查看网卡信息
ifconfig
ip addr/a
查看DNS配置文件
vi /etc/resolv.conf
重启网络
service network restart
/etc/init.d/network restart
网络连接配置文件
CentOS7
/etc/sysconfig/network-scripts/ifcfg-xxx
DEVICE=eth0
#关联的设备名称
BOOTPROTO={static|dhcp|none|bootp}
#表示引导协议static|none表示静态;dhcp表示动态
IPADDR=192.168.10.10
#设置IP地址
NETMASK=255.255.255.0
#设置子网掩码
GATEWAY=192.168.10.1
#设置网关
ONBOOT=yes|no
#开机时是否自动激活网络接口
HWADDR=00:1E:0B:8F:B0:D0
#硬件地址要与硬件中的地址保持一致可省
DNS1=202.106.0.20
#指定DNS地址
USERCTL=yes|no
#表示是否允许普通用户启用或禁用此接口
PEERDNS=yes|no
#表示是否在BOOTPROTO为dhcp时接受由dhcp服务器指定的dns地址
进程管理
查看进程
# 列出所有运行中/激活进程
ps -a
# 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等
ps -aux
# 显示所有进程并且扩展显示输出
ps -ef
# 查找指定进程
ps -xxx | grep xx
查看进程树
# 以可视化方式显示进程,通过显示进程的树状图来展示进程间关系
pstree [pid]
实时监视系统中不同的进程所使用的资源
top
# 退出:q
结束进程
kill -9 <pid>
# 结束ping
ps -aux | grep ping
kill -9 pid
磁盘管理
https://www.runoob.com/linux/linux-filesystem.html
Linux 磁盘管理常用三个命令为 df、du 和 fdisk
df
英文全称:disk full:列出文件系统的整体磁盘使用量
df [-ahikHTm] [目录或文件名]
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
实例
# 将系统内所有的文件系统列出来!
df
# 将容量结果以易读的容量格式显示出来
df -h
# 将系统内的所有特殊文件格式及名称都列出来
df -aT
du
查看使用空间
du [-ahskm] 文件或目录名称
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
实例
# 只列出当前目录下的所有文件夹容量
du
# 检查根目录底下每个目录所占用的容量
du -sm /*
fdisk
Linux 的磁盘分区表操作工具
Linux 的磁盘分区表操作工具
实例
# 列出所有分区信息
fdisk -l