Linux命令
一.基础命令
0.目录文件操作+常用操作
- 进入dir目录
cd dir
- 回到父级目录
cd ..
- 回到上一级
cd -
- 回到根目录
cd ~
- 创建dir目录
mkdir dir
- 删除dir目录
rm -rf dir
- 更改old目录名为new
mv old new
- 复制old目录下所有文件到/data/new下
cp old /data/new
- 查找a.txt文件
find a.txt
- 查看磁盘剩余空间
df -h
- 查看历史操作记录
history
- 查看端口
lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000
- 修改主机名
永久修改 vim /etc/hostname
临时修改 hostname JFSL
- 修改hosts
vim /etc/hosts
- 修改环境信息
vim /etc/profile
source /etc/profile
1.ssh
- 登录远程服务器
ssh 0.0.0.0
ssh root@0.0.0.0
- 启动sshd服务
systemctl start sshd
- 查看sshd服务状态
systemctl status sshd
- 查看ssh信息
ls -al ~/.ssh
- SSH生成、管理和转换认证密钥,支持RSA和DSA
ssh-keygen -t rsa -C "13232707551@163.com"
- 本地主机的公钥复制到远程主机
ssh-copy-id root@192.168.28.128
- 拷贝本机指定公钥到远程主机
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.28.128
- 开启或禁用root登录
vim /etc/ssh/sshd_config
systemctl restart sshd.service
2.账号权限
- 查询当前用户名
whoami
- 添加用户账号(创建用户abc 指定登录系统时指定/data目录,属于abc组)
useradd -d /data abc -m
- 删除用户
userdel abc
- 设置用户密码
passwd root
- 切换用户名
su user
su
- 需要超级管理员权限
sudo xxx命令
- 查看有哪些用户组
cat /etc/group
- 修改用户所在组
usermod -g 用户组 用户名
- 修改文件的权限
chmod u/g/o/a +/-/= rwx 文件
chmod 777 a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17详细参数说明
字母法:chmod u/g/o/a +/-/= rwx 文件
u:拥有者
g:同组者
o:其他人
a:所有,即u、g、o
+ 添加权限
- 去除权限
= 设定权限
rwx:
r :读------>对应的数字是4
w :写------>对应的数字是2
x :执行------>对应的数字是1
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”
3.文件上传下载
安装lrzsz
yum install -y lrzsz
apt-get install lrzsz
上传文件到当前目录
rz + 选择文件
下载a.txt文件到本地
sz a.txt
4.压解缩
- tar相关命令
常用的解压命令tar -zxvf xxx.tar.gz
详细参数说明(看看就行,基本都是只用上面那一条命令解决)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ]
[-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>]
[-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>]
[-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>]
-A或--catenate 新增文件到已存在的备份文件。
-b<区块数目>或--blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。
-B或--read-full-records 读取数据时重设区块大小。
-c或--create 建立新的备份文件。
-C<目的目录>或--directory=<目的目录> 切换到指定的目录。
-d或--diff或--compare 对比备份文件内和文件系统上的文件的差异。
-f<备份文件>或--file=<备份文件> 指定备份文件。
-F<Script文件>或--info-script=<Script文件> 每次更换磁带时,就执行指定的Script文件。
-g或--listed-incremental 处理GNU格式的大量备份。
-G或--incremental 处理旧的GNU格式的大量备份。
-h或--dereference 不建立符号连接,直接复制该连接所指向的原始文件。
-i或--ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
-k或--keep-old-files 解开备份文件时,不覆盖已有的文件。
-K<文件>或--starting-file=<文件> 从指定的文件开始还原。
-l或--one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
-L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
-m或--modification-time 还原文件时,不变更文件的更改时间。
-M或--multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
-N<日期格式>或--newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
-o或--old-archive或--portability 将资料写入备份文件时使用V7格式。
-O或--stdout 把从备份文件里还原的文件输出到标准输出设备。
-p或--same-permissions 用原来的文件权限还原文件。
-P或--absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。
-r或--append 新增文件到已存在的备份文件的结尾部分。
-R或--block-number 列出每个信息在备份文件中的区块编号。
-s或--same-order 还原文件的顺序和备份文件内的存放顺序相同。
-S或--sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
-t或--list 列出备份文件的内容。
-T<范本文件>或--files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。
-u或--update 仅置换较备份文件内的文件更新的文件。
-U或--unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
-v或--verbose 显示指令执行过程。
-V<卷册名称>或--label=<卷册名称> 建立使用指定的卷册名称的备份文件。
-w或--interactive 遭遇问题时先询问用户。
-W或--verify 写入备份文件后,确认文件正确无误。
-x或--extract或--get 从备份文件中还原文件。
-X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。
-z或--gzip或--ungzip 通过gzip指令处理备份文件。
-Z或--compress或--uncompress 通过compress指令处理备份文件。 - 解压gzip文件
gzip -d ge.tar.gz
- 解压zip文件
unzip phpbb.zip
5.进程管理
- 查看xxx服务的进程id
ps -ef|grep xxx
ps -aux | grep xxx
- kill进程(服务=xxx,pid=123)
kill 123
kill -9 123
kill -15 123
killall xxx
- 列出所有运行中/激活进程
ps -a
- kill进程(服务=xxx,pid=123)
kill 123
- ps命令的常用参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行 - 进程的状态说明
1
2
3
4
5
6
7
8
9
10
11
12
135种状态:
1. 运行 ( 正在运行或在运行队列中等待 )
2. 中断 ( 休眠中, 受阻, 在等待某个条件的形成或接受到信号 )
3. 不可中断 ( 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生 )
4. 僵死 ( 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放 )
5. 停止 ( 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行 )
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
二.进阶命令
1.Ubuntu系统替换镜像地址
解决 操作系统“Failed to fetch”错误
备份原文件
cp /etc/apt/sources.list /etc/apt/sources.list_backup
编辑文件内容
vim /etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
11#网易163更新服务器(广东广州电信/联通千兆双线接入),包含其他开源镜像:
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverseupdate镜像
apt-get update
2.SCP服务器间传输文件
scp xxx 用户名@IP:目录
- 简单的命令
scp canal.deployer-1.1.4.gz iyourcar_test@192.168.6.30:/data/iyourcar/canal
3.nginx相关
前提是已经安装好nginx,并且已经配置好环境变量,能直接调用相关命令脚本
查找nginx安装在什么目录
whereis nginx
检查修改后的配置文件
nginx -t
重新加载配置文件
nginx -s reload
启动
service nginx start
停止
service nginx stop
重启
service nginx restart
http重定向到https
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22server {
listen 443;
server_name yangguangren.cn;
ssl on;
root /var/www/yangguangren.cn;
index index.html index.htm;
ssl_certificate 1_www.yangguangren.cn_bundle.crt;
ssl_certificate_key 2_www.yangguangren.cn.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
}
}
server {
listen 80;
server_name www.yangguangren.cn;
rewrite ^(.*)$ https://$host$1 permanent;
}https证书配置
复制1_www.yangguangren.cn_bundle.crt和2_www.yangguangren.cn.key到nginx配置同级目录1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16server {
listen 443;
server_name yangguangren.cn;
ssl on;
root /var/www/yangguangren.cn;
index index.html index.htm;
ssl_certificate 1_www.yangguangren.cn_bundle.crt;
ssl_certificate_key 2_www.yangguangren.cn.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
index index.html index.htm;
}
}配置负载均衡
主要是新增一个upstream
具体四种模式参考负载均衡4种模式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
28
29
30
31upstream xxxproxy {
server localhost:8083;
server x.x.x.x:8083;
}
server {
listen 443;
server_name yangguangren.cn;
ssl on;
root /var/www/yangguangren.cn;
index index.html index.htm;
ssl_certificate 1_www.yangguangren.cn_bundle.crt;
ssl_certificate_key 2_www.yangguangren.cn.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
underscores_in_headers on;
location / {
proxy_pass http://x.x.x.x:4000;
}
# 项目路径 => 主要是这个
location /xxx/ {
proxy_pass http://xxxproxy/project/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
}配置二级域名访问静态资源
例如:se.yangguangren.cn访问/data/xxs/files目录的文件
1.配置域名解析(必须)
给yangguangren.cn域名增加一条A类型的解析记录:主机记录为se,值为nginx所在的服务器ip,记录类型为A.
2.nginx配置,增加一条server监听
server{
listen 80;
server_name se.yangguangren.cn;
root /data/xxs/files;
location / {
autoindex on;
}
}
3.执行命令刷新配置
> nginx -t
> nginx -s reload
4.在/data/xxs/files下创建一个a.txt测试
5.访问http://se.yangguangren.cn/a.txt能正常访问表示成功.
解决访问静态资源出现403错误码
权限问题,更改最顶上的用户为root.或者改对应静态目录的权限
解决静态资源a.txt中文乱码问题
charset ‘utf-8’;
server{ listen 80; server_name se.yangguangren.cn; root /data/xxs/files; charset 'utf-8'; location / { autoindex on; } }
4.七牛相关
https域名配置
例如配置一个https://secret-image.yangguangren.cn用来查看七牛图片
例子 https://secret-image.yangguangren.cn/base_bg.png1.配置SSL证书
1.1 登录七牛管理后台-SSL证书Tab1.2 购买证书或上传自有证书
土豪直接购买,这里选择上传自有证书
1.3 在腾讯云的SSL证书那里申请一个免费的证书
1.4 填写 secret-image 然后直接下一步,下一步
1.5 把证书下载下来 =>选择<其他>类型
1.6 回到七牛云填写申请好的证书内容
2.配置域名
2.1 为空间绑定域名
2.2 配置CNAME复制CNAME信息回到腾讯云DNS解析那里增加一条对应的CNAME记录,然后ping一下看配置是否成功
3.SSL证书和域名绑定
打开访问https控制,选择配置好的证书,确定
三.总结
实在太菜,所以才记录这些命令下来
各种框架软件的命令
更多命令待更新中...
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!