常用的 Linux Shell 命令

自己平时有可能会用到的 Shell 命令,之前用 Evenote 记录的比较零散,重新整理了下,以后慢慢补充。

文件操作

查看文件所属用户
ls -al
动态打印日志
tail -f /var/log/error.log
给指定目录的所属用户权限赋予指定人
# 把directry目录下的所有用户指向someone
$ sudo chown -R someone:staff directory
用户组相关操作

查看用户组

groups

查看各用户与组的关联情况

id

添加新用户组

sudo groupadd mynewgroup

添加已存在的用户到一个组

usermod -a -G exampleGroup exampleUserName

改变用户主要的组

usermod -g groupName userName
查看文件内容
cat filename
查看目录所占磁盘容量
du dir # 显示dir的总容量以及次目录的容量,KB为单位
du -s dir # 显示dir的容量
测试用户目录权限
sudo -u admin stat /home # 测试用户admin对目录 /home 对权限
scp 获取远程服务器上的文件
# 把远程服务器/root目录下的remote.tar.gz文件下载到本地/home目录下,
# 并保存为local.tar.gz
# -P 表端口参数,2222为端口号
$ scp -P 2222 root@www.example.com:/root/remote.tar.gz /home/local.tar.gz
scp 获取远程服务器上的文件目录
# 把远程服务器/root/remote内容拷贝到本地/home/local目录下,
# -P 表端口参数,2222为端口号
# -r 表示目录拷贝
$ scp -P 2222 -r root@www.example.com:/root/remote /home/local
scp 上传本地文件到远程服务器
# 把本地文件/home/local.tar.gz上传到远程服务器/root目录下,
# 并命名为remote.tar.gz
# -P 表端口参数,2222为端口号
$ scp -P 2222 /home/local.tar.gz root@www.example.com:/root/remote.tar.gz
scp 上传本地目录到远程服务器
# 把本地文件/home/local上传到远程服务器/root/remote目录下,
# -P 表端口参数,2222为端口号
# -r 表示目录上传
$ scp -P 2222 -r /home/local root@www.example.com:/root/remote

ssh

执行 ssh 登录后,继续执行命令
ssh -t www.example.com "cd /home" #登录www.example.com服务器,并切换到/home下

网络操作

端口占用查询
netstat -an | grep 8080 # 方法一
lsof -i tcp:8080 # 方法二

系统

linux 查看指定应用
# 查看系统中的java应用
$ ps -aux | grep java
查看系统服务限制
ulimit -a # 查看所有限制信息
用户切换
# 切换用户到ziv
$ su ziv

Mysql

sql 备份
mysqldump -u root -p dbname>/home/backup_20170208.sql
导入 Sql 脚本
source /home/backup.sql

防火墙

CentOS

# 防火墙状态查看
$ systemctl status firewalld.service
# 防火墙停止
$ systemctl stop firewalld.service
# 禁止firewall开机启动
$ systemctl disable firewalld.service

Vim

移动行

# 向下移动一行
$ ddp
# 向上移动一行(注意 P 是大写)
$ ddkP

最后修改于 2017-02-08