Linux 常用命令
ls 显示目录
ls + 目录/正则表达式
-l == ll 列表显示
-a 显示出隐藏文件
-h 显示文件大小(不能单独使用)
cd 切换目录
. 当前目录
.. 上一级目录
../.. 上上级目录
- 上一次目录
~ 用户目录
pwd 显示当前目录绝对路径
yum 安装软件包
-y 所有询问都选择yes
locale 系统字符集查询
-a 查询系统可用的所有字符集
将显示在终端的内容重定向到文件
> filename 文件不存在自动新建,存在则清空后再写入
>> filename 文件不存在自动新建,存在则直接追加写入
more 查看长文件
可用空格进行翻页,Enter向下翻一行
常配合'|'一起使用
eg: ls -alh | more
less 支持前后翻页
pageup 向上翻一页
pagedown或空格 向下翻一页
Enter 向下翻一行
支持vim常用翻页操作
head 从开头显示文件内容
-n num filename 显示文件开头num行
tail 从尾部显示多行
显示指定行:tail -n num 文件
动态显示:tail -f 文件
touch 创建文件
mkdir 创建文件夹
-p 可以创建 A/B/C 这类文件夹
rmdir 删除文件夹
rm 可以删除文件和文件夹(删除后恢复很难)
-r 递归删除(删除文件夹必须加)
-f 强制删除
-i 交互式
+ 正则表达式
# 删除当前目录下文件名含有2013的文件
find . -name *.exe -type f -exec rm -rf {} \;
su 切换为root用户
- username 切换到username用户家目录
ln 创建连接文件
ln filename 创建硬链接
-------- <- 源文件
| 数据 | <- ln1
-------- <- ln2
ln -s filename 创建软连接
--------
| 数据 | <- 源文件 <- ln1
--------
cat 查看文件
+ >/>> 将查看的内容重定向
+ 文件1 + 文件2 顺序查看文件(配合重定向合并文件)
grep 在文件中搜索
-n + '正则' + 文件名 显示对应的行号
-i 忽略大小写
-v + '正则' 查找除了正则的内容
egrep 比 grep -E更适合使用正则
egrep '0{2}' = grep -E '0\{2\}'
man + commend_name 查看命令帮助信息
chmod 修改文件属性
drwxrw-r-x username groupname 4096 10月 21 11:08 filename
d 文件类型
rwx 文件拥有者username的权限
rw- 文件拥有者username对应组groupname的权限
r-x 其他用户的权限
4096 文件大小
10月 21 11:08 文件最后一次修改时间
'r' 读
'w' 写
'x' 执行
'-' 没有对应权限
eg:chmod u/g/o/a +/-/= rwx 文件名
u 文件拥有者
g 文件拥有者同一组的用户
o 其他用户
a 所有用户
+ 添加
- 撤销
= 设定
数字法
4 -> r
2 -> w
1 -> x
eg: r--r--r-- -> 444
rwxr----x -> 741
chmod 777 文件夹 不修改文件夹内的文件
chmod 777 文件夹 -R 递归修改文件夹及其内的所有文件
mv 移动(剪切)/重命名
mv old_name new_name 重命名
-f 禁止交互式
gzip 压缩
-d 解压
-人压缩有所子目录
zip 压缩
zip filename 没有文件时自动创建
unzip -d 路径 filename.zip 解压(路径不存在可自动生成)
tar 打包,压缩
-c 打包
-v 显示进度
-f 制定文件名称,f后面一定是tar所以放最后
-x 解包
eg:tar -cvf filename.tar */路径 将所有当前路径/指定路径下的全部文件打包到filename.tar
tar -zcvf filename.tar.gz * 打包并用gzip压缩
tar -zxvf filename.tar.gz * 解包并用gzip解压
tar -jcvf filename.tar.bz2 * 打包并用bzip2压缩
tar -jxvf filename.tar.bz2 * 解包并用bzip2解压
tar ... -C 路径 解压缩到指定路径中
which 查看命令路径
ifconfig 查看ip信息
ifconfig ethname down 关闭ethname网卡
ifconfig ethname up 开启ethname网卡
ifconfig ethname 查看ethname网卡信息
ping 测试网络连接
ssh 远程登入
ssh username@host
who 查看当前登入的用户
whoami 查看当前登录
exit 登出
useradd 添加用户
-m 自动建主目录
-d /home/username 指定用户登录的指定目录(如果不使用,默认为/home目录下)
-g 用户组 添加到某个用户组
eg:useradd -m -d /home/username
userdel 删除用户
userdel username 删除用户但不删除主目录
userdel username -r 删除用户和其主目录
passwd username 修改用户的密码
su 切换到root用户
su - username 切换到username用户
sudo 指令添加root权限
groups username 查看用户所在的组
groupadd 添加组
groupdel 删除组
usermod -g newgroups username 修改用户的用户组
usermod -a -G newgroups username 给用户添加一个新的用户组
给用户添加sudo权限
sudo usermod -a -G adm username
sudo usermod -a -G sudo username
chown username filename 修改文件的拥有者
chgrp groupname filename 修改文件拥有者的用户组
cal 查看当前日历
cal -y 显示整年日历
cal -y number 显示number日历
date 查看或设置时间
date [MMDDhhmm[[CC]YY][.SS]]
eg: date 011313142016.15 2016年1月13日13点14秒15分
data + format
%Y(2016) = %y(16) 年
%m 月
%d 日
%H 时
%M 分
%S 秒
eg: date '+%Y:%m:%d' 2017:9:1
jobs 查看当前运行的程序
Ctrl + Z stop程序
bg %num 切换到后台运行
fg %num 切换到前台运行
ps 查看进程信息
-a 显示终端上的所有进程,包括其他用户的进程
-u 显示进程的详细状态
-x 显示没有控制终端的进程
-w 显示加宽,以便显示更多的信息
-r 只显示还在运行的进程
USER PID %CPU %MEN VSZ RSS TTY STAT START TIME COMMAND
执行者 进程号 CPU 内存量 命令/程序
top 动态显示进程
M 按内存使用量排序
P 根据CPU排序
T 按进程运行时间的长短排序
U 根据输入的用户名查找
K 根据输入的PID来杀死进程
q 退出
h 帮助
kill PID 杀死进程号为PID的进程
-9 在使用kill后没有终止进程时,强制终止进程
reboot 重启
shutdown
-r now 重启,会给别的用户提示
-h now 关机
-r/-h 20:05 在20:05时重启/关机
-r/-h +10 在分钟后重启/关机
init 0 关机
init 6 重启
df 检测磁盘空阿
-a 显示所有文件系统
-m 以1024字节为单位
-t 显示各指定文件系统的磁盘空间使用情况
-T 显示文件系统
du 检测当前目录磁盘存储空间
-h 转换单位
-a 递归显示所有
-S 显示指定文件或目录占用的数据块
-b 以字节为单位显示磁盘占用情况
-l 计算所有文件大小,对硬链接多次计算
du -sh filename/目录 显示文件或目录的大小
wc 统计指定文件中的字节数、数字、行数,并将统计结果显示输出
-c 统计字节数
-l 统计行数
-m 统计字符数,这个标志不能与-c标志一起使用
-w 统计字数,一个字被定义为空白、跳格或换行字符分隔的字符串
-L 打印最长行的长度
vim / vi
命令模式
Shift + 2个z 保存并推出
k 光标上
j 光标下
H 光标左
L 光标右
M 光标移到中间行
L 光标移到尾行最后一行行首
umn + G 光标移动到指定行
num + yy 从所在行复制到num行
p 粘贴
num + dd 从所在行剪切到num行
u 撤销
Ctrl + r 反撤销
w 向后移动一个字
b 向前移动一个字
{ 按段向上移动
} 按段向下移动
Ctrl + d 向下翻半屏
Ctrl + u 向上翻半屏
Ctrl + f 向下翻一屏
Ctrl + b 向上翻一屏
gg 光标到文件头
G 光标到文件末尾
Ctrl + n 自动补全(编辑格式)
x 删除后面一个字符
X 删除前面一个字符
D 往后删除全部到行末
do 往前删除全部到行首
dw 删一个单词
>> 文本右缩进
<< 文本左缩进
. 执行上命令
v + 上/下 进行多选
r 替换
^ 移到行首
$ 移到行末
Home + d 删除到行首
Shift + d 删除到行尾
末行模式
w 保存
!强制
q 退出
q! 不保存退出
wq = x 保存并退出
set number 显示行号
set nonumber 关闭行号
set fileencoding 查看文件编码
/ + 搜索的内容
n 向下找
N 向上找
noh 取消高亮
:%s/A/B/g 将所有的A替换为B
:1,10s/A/B/G 1到10行的A替换为B
:!'shell命令' 执行对应的shell命令
I/A/O/i/a/o 命令模式 -> 编辑模式
I 从光标所在行的行首开始编辑
i 从光标前开始编辑
A 从光标所在行的行末开始编辑
a 从光标后开始编辑
O 从光标上方开始编辑
o 从光标下方开始编辑
Shift + ; 命令模式 -> 末行模式
Esc 编辑模式 -> 命令模式
Esc 末行模式 -> 命令模式
fdisk 磁盘操作
fdisk -l 查看全部磁盘情况
fdisk disk_name 对磁盘分区
mkfs.ext3 new_disk 对分区格式化
mount -a 挂载所有分区
cp 复制
cp file 目录
cp -r 目录 新目录
查看文件编码
file --mime-encoding filename
!$ 选择上一个命令最后一个参数
vim 配置 显示行号 tab配置
编辑 vimrc 添加
set nu
set ts=4
set expandtab
set autoindent
uniq 用于报告或忽略文件中的重复行,一般与sort命令结合使用
-c 或 ——count 在每列旁边显示该行重复出现的次数;
-d 或 --repeated 仅显示重复出现的行列;
-f <栏位> 或--skip-fields=<栏位> 忽略比较指定的栏位;
-s <字符位置> 或 --skip-chars=<字符位置> 忽略比较指定的字符;
-u 或 ——unique:仅显示出一次的行列;
-w <字符位置> 或 --check-chars=<字符位置> 指定要比较的字符。
netstat 用于显示各种网络相关信息
-a (all)显示所有选项,netstat默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。(重要)
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名(macOS中表示协议 -p protocol)
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计 (重要)
-c 每隔一个固定时间,执行该netstat命令
echo $? 查看上一个命令的执行结果(原理是打印刚刚执行完的进程提供给系统内核的退出码)
返回0表示成功
放回0以外的值表示失败