linux常用命令

文件、目录类

cd                                # 返回 home 目录(相当于cd ~)
cd .. # 返回上一级目录
cd - # 返回上一次所在目录,并显示其目录名
cd xxx # 进入到指定目录xxx
pwd # 显示当前目录的绝对路径
ls -l # 列出文件的详细信息,相当于(ll)
ls | grep "xxx" # 列出包含 "xxx" 关键字的文件
mkdir dir # 创建一个目录
mkdir -p dir/dir # 创建多级目录
mkdir -m 777 dir # 创建权限为 777 的目录
touch file # 创建新的空文件
rmdir dir # 删除空目录
rmdir -p dir/bin # 删除子空目录 bin 和其父空目录 dir
rm -rf dir/bin # 删除一个目录中的一个或多个文件或目录(慎用)
rm -rf xxx *.log # 删除当前目录下所有 ".log" 的文件(慎用)
find fileName -name *.txt | xargs rm -rf # 将查找出来的文件全部删除(慎用)
cp file dir/file # 将文件拷贝到另一文件中
cp -R dir1 dir2 # 拷贝多个目录 (含子目录) 到指定目录
mv dir1 dir2 # 将文件或目录重新命名,或者将文件从一个目录移到另一个目录中

文件查看、处理

cat file                          # 显示文件的内容
cat -n file # 显示文件的行数编号
cat file1 file2 > file3 # 将文件 file1 和 file2 的内容合并之后放入 新文件 file3 中
head file # 显示文件的头 10 行内容
tail file # 显示文件的最后 10 行内容
tail -f file # 显示文件最新追加的内容,并监视文件的变化,常用来跟踪日志文件
more file # 基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容
less file # 作用与 more 十分类似, pageUp 向上翻页, pageDown 向下翻页, 按 q 退出
cat file1 > file2 # 覆盖导入
cat file1 >> file # 追加导入
wc -l [-m][-c][-w] file # 统计行数、字符数、字节数、单词数

文件查询、搜索

grep keyWord                      # 与 cat 或者其他命令搭配使用 cat file | grep keyWord
find dir -name "*.log" # 搜索指定目录下的后缀为 .log 的文件
find dir -name "*.log" -o -name "*.pid" # 搜索指定目录下的 ".log" 文件和 ".pid" 文件
find dir -user user1 # 搜索指定目录下属于 user1 用户的文件

文本编辑 vi / vim 底行模式下

:set nu                           # 显示行号
:set nonu # 不显示行号
:n # 跳转到指定第 n 行
:w file # 另存为
:n1,n2 s/str1/str2/g # 从 n1 行到 n2 行, 将 str1 替换为 str2(从开头到结束 1,$ s/str1/str2/g)
:wq # 保存并退出
:q! # 强制退出不保存

文本编辑 vi / vim 命令模式下

G                                 # 到末行(Shift + g)
gg # 到首行
dd # 删除行或剪切行
u # 撤销
y # 在使用 v 模式选定了某一块的时候,复制选定块到缓冲区用
yw # 复制一个word (nyw或者ynw,复制n个word,n为数字)
yy # 复制一行
nyy # 向下复制 n 行
p # 粘贴

权限管理

chmod 755 dir/file                # 修改指定文件、文件夹的权限
chmod -R 755 dir # 递归修改目录及其子文件、目录的权限
chown user file # 改变文件的所有者
chown -R user dir # 改变目录的所有者
chgrp group1 file # 改变文件的所有者
chgrp -R group1 dir # 改变目录的所属组
chown user1:group1 file # 同时改变文件的所有者和所属组
chown -R user1:group1 dir # 同时改变目录的所有者和所属组
whoami # 查看当前操作用户
who # 查看当前已登录系统的用户
id user1 # 查看用户 user1 的归属 id 信息

压缩、解压

tar -cvf test.tar test.log        # 仅打包,不压缩
tar -xvf test.tar # 直接解包
tar -zcvf test.tar.gz test.log # 打包后,以 gzip 压缩
tar -zcvf test.tar.gz * # 将当前目录下所有文件压缩
tar -zxvf test.tar.gz # 直接解压
tar -zxvf test.tar.gz -C dir # 解压到新目录,只能是 dir 且已经存在
zip test.zip * # 将当前目录下所有文件压缩为 zip
unzip test.zip # 解压缩 zip

用户管理

groupadd group1                   # 创建用户组
groupdel group1 # 删除用户组
groupmod -n group2 group1 # 将 group1 重命名 group2
useradd user1 # 创建用户
useradd -g group1 user1 # 创建 user1 并将其分配到 group1 组下
userdel -r user1 # 删除 user1, "-r" 参数表示同时也删除 home 目录下的相关目录
usermod -g group2 user1 # 改变 user1 的组为 group2
usermod -G group2 user1 # 将 user1 的添加到 group2 组中来,同时保留原来的主组
passwd # 修改当前用户密码
passwd user1 # 修改 user1 用户的密码,仅限 root 用户执行
su user1 # 切换到用户 user1
groups user1 # 查看用户 user1 所属的组

查看命令帮助

help cd                           # 用于内部命令, 如 exithistorycdecho 等常驻内存
ls --help # 主要用于外部命令,可通过 "echo $PATH" 命令查看外部命令的存储路径,如 ls,vi
man ls # 命令手册,可用于所有命令,输入"q"可退出
type cd # 查看命令类型,内部 or 外部及命令位置

系统相关命令

shutdown  -h now                  # 立即关机
shutdown -r now # 立即重启
uname -r # 查看内核版本
cal # 日历
date # 时间、日期
date -s "2015-12-22 08:00" # 修改时间
ntpdate time.nist.gov # 同步当前时间
history # 查看历史命令记录,运行时 "!"+ 命令号,如 !123 运行 编号为 123 的命令
ps -ef # 查看进程
kill pid # 终止进程
kill -9 pid # 强制终止进程
top # 查看当前系统资源使用率
df -h # 查看磁盘信息
free -m # 查看内存信息
du -h file/dir # 查看单个文件/目录大小 -h 表示以 K,M,G
du -sh file/dir # 查看文件/目录总大小
mount -o loop linux.iso /mnt/dir # 加载文件系统到指定的加载点
umount /mnt/dir # 卸载已经加载的文件系统
rpm -ivh xxx.rpm # 安装 rpm 包
rpm -e xxx.rpm # 卸载 rpm 包
yum install xxx # 安装安装包xxx
yum remove xxx # 删除已安装的xxx
wget http://xxxx # 下载远端 zip 包
echo '' > xxx # 清空xxx文件内容