Linux基础操作

2019-04-03  本文已影响0人  zxhnext

一、配置公钥

打开虚拟机上的 ~/.ssh文件夹
方法1:

ssh-keygen -t rsa -C "你自己的名字" -f "你自己的名字_rsa" # -t 后面rsa是加密方式 
ssh-copy-id -i "公钥文件名" 用户名@服务器ip或域

方法2:

ssh-keygen -t rsa -b 4096 -C "随意写" #生成公钥,私钥
eval "$(ssh-agent -s)" #开启ssh代理
ssh-add ~/.ssh/id_rsa #把ssh的key加入代理中
ssh-add -K ~/.ssh/id_rsa # 添加到config文件中,不用再在config文件中手动添加

免密登录时在本机生成密钥对,将公钥推到服务器上

ssh-copy-id -i "公钥文件名" 用户名@服务器ip或域

当配置服务器免密登录时,将本机的公钥提到服务器上,服务器的.ssh文件夹中会有一个authorized_keys来存放公钥

二、服务器基础操作

hostnamectl # 主机基本信息
hostnamectl -h # 帮助
hostnamectl set-hostname zxh-MAC #修改操作系统名字
fdisk -l #查看挂载盘大小
df -h #查看硬盘使用情况
free -m #内存查看

# 常用快捷键
ctrl + s #暂时挂机,睡眠,暂停屏幕输出
ctrl + q #退出睡眠,恢复屏幕输出
ctrl+c #结束正在运行的程序【ping、telnet等】 ctrl+d 结束输入或退出shell
ctrl+l #清屏,等同于Clear
control a // 行首
control e // 行尾

# vi命令
i #可编辑状态
esc键 #回到命令状态
:wq #保存退出
:q! #不保存退出

# 服务管理命令

systemctl #列出全部服务
q #退出服务列表状态
systemctl start mysqld #启动mysql(stop停止,restart重启,d是守护进程的意思)
systemctl start httpd #启动xampp(disable开机禁用,enable取消禁用)
systemctl start nginx #启动nginx
systemctl start sshd #不启动sshd是无法从远程访问服务器的
# 命令行下载
yum install #下包(ubuntu下是apt apt-get)
# curl、wget
wget http://www.baidu.com #下载百度首页
curl http://www.baidu.com -o index.html  #(-o index.html,指定下载到本地后文件名字,不加就是把下载的内容呈现出来,并不会下载)
yum install perl openssh git #安装git

# 安全
# 修改 /etc/ssh/sshd_config文件
# port 范围0 ~ 65536,0~1024一般被系统占用,最好不要使
PermitEmptyPosswords no # 是否允许空密码
AllowUsers # 设置用户
PermitRootLogin no # 关闭root用户登录

sudo chmod 777 + 文件夹 #使文件夹可写,可读

#配置banner
cd /etc/ssh
vi sshd.config
# /banner #查找banner
# 修改为 /etc/ssh-issue
# 然后编辑这个文件
systemctl restart sshd

三、文件操作

#1.从服务器复制文件到本地:
scp root@192.168.1.100:/data/test.txt /home/myfile/
# root@192.168.1.100 root是目标服务器(有你需要拷贝文件的服务器)的用户名,192.168.1.100是IP地址,后面紧跟的 “:” 不要忘记,/data/test.txt 是目标服务器中你要拷贝文件的地址,接一个空格,后面的 /home/myfile/ 是本地接收文件的地址。

#2.从服务器复制文件夹到本地:

scp -r root@192.168.1.100:/data/ /home/myfile/
#只需在前面加 -r 即可,就可以拷贝整个文件夹。

#3.从本地复制文件到服务器:
scp -i zxhnext_rsa /filename root@192.168.1.1:/
scp /home/myfile/test.txt root@192.168.1.100:/data/
 
#4.从本地复制文件夹到服务器:

scp -r /home/myfile/ root@192.168.1.100:/data/

四、# 进程,线程,协程

  1. 多进程就是可以打开多个软件(进程比线程消耗资源多,切换进程和线程也会浪费cpu,操作系统在进程,线程的调度过程中浪费了时间)
  2. 一个操作可以启动多个进程,一个进程可以启动多个线程
  3. 普通进程被终止时他的子进程也被终止
  4. 守护进程不占用终端资源(比如向屏幕输出,比如nginx)
ps aux | grep nginx # 查看nginx进程 master为主进程,一般pid小的为主进程
kill + pid #终止守护进程
kill -9 pid # 强制退出命令
pkill + 进程名称 # 同上 kill原理是通过系统发给某个进程退出的命令,有的程序在便携时候会忽略这个命令,这是使用9号命令强制退出
  1. 进程的目的就是担当分配系统资源(CPU时间、内存)的实体,程序跑起来进程就跟着出现了
  2. 进程状态。S为睡眠进程,Z为僵尸进程(程序退出了但是还在进程里)或孤儿进程,父进程退出了,子进程还在(父子关系依赖失效导致)
  3. 网络相关,读写硬盘的都是io密集型
    计算密集型就是cpu密集型,比如解码视频,转换为一帧一帧等等

五、centos添加,删除用户组

usermod 选项 用户名 #修改已经存在的用户
userdel -r 用户名 #删除用户表示自家目录一起删除
groupadd 选项 组名 #添加新组
groupmod 选项 组名 #修改已经存在的组
groupdel 组名  #删除已经存在的特定组。

adduser test # 添加用户 test
passwd test # 修改test密码
userdel test # 删除用户test
userdel -r test # 删除用户以及用户目录
groupadd sudo # 新建一个sudo用户组
useradd -G sudo test # 创建一个新用户test,同时加入suso附加组中
useradd -d /var/ftp/pub -M ftpadmin # 创建一个新用户ftpadmin,指定目录是/var/ftp/pub,不创建自家目录(-M)
usermod -G sudo zh888 # 表示将zh888添加到附加组sudo组中去,zh888是已经新建好存在的用户
userdel -r zhh888 # 表示删除zh888和/home中的目录一起删除
groupdel sudo # 表示删除sudo组

passwd passwd 选项 用户名 # 用户名账号名//禁止用户账户口令
passwd -l 用户名 # 表示查看用户账户口令状态
passwd -S 用户名 # 表示恢复用户账号
passwd -u 用户名 # 表示删除用户账户口令

六、设置网络

ifup + 网卡名 #启动网卡
ifdown + 网卡名 #禁用网卡
ss -anp | grep 80 // 查看端口并过滤80端口 
netstat -anp | grep 80 // 查看端口并过滤80端口 

在Virtual Box中安装好CentOS 7的minimal后,第一件事就是设置网络访问。
首先需要用 nmtui 命令进入 Network Manager,如下:


image

选择 Edit a connection 来配置你的网络连接:


image
选择Edit进入DHCP配置:
image
选择IPv4 CONFIGURATION为Automatic,并且勾选Automatically connect选项(按空格键)。

最后返回命令行,输入:

service network restart

来重新网络服务,此时就可以正常连接网络了。如果是在Virtual Box中,注意Virtual Box的网络连接模式需要设置为NAT。
有了网络连接后,在CentOS 7 minimal中,默认net-tools是没有预先安装的。现在有了网络连接后,就可以使用

yum install net-tools

来安装网络工具,安装完毕之后,诸如ifconfig等命令就都能用了。

七、linux基础操作demo

使用 mkdir 命令创建目录

mkdir $HOME/testFolder

使用 cd 命令切换目录

cd $HOME/testFolder

使用 cd ../ 命令切换到上一级目录

cd ../

使用 mv 命令移动目录

mv $HOME/testFolder /var/tmp

使用 rm -rf #命令删除目录

rm -rf /var/tmp/testFolder

使用 ls 命令查看 [/etc] 目录下所有文件和文件夹

ls /etc

/etc 目录默认是 *nix 系统的软件配置文件存放位置

文件操作

使用 touch 命令创建文件

touch ~/testFile

执行 ls 命令, 可以看到刚才新建的 testFile 文件

ls ~

使用 cp 命令复制文件

cp ~/testFile ~/testNewFile

使用 rm 命令删除文件, 输入 y 后回车确认删除

rm ~/testFile

使用 cat 命令查看 .bash_history 文件内容

cat ~/.bash_history

过滤, 管道与重定向

过滤出 /etc/passwd 文件中包含 root 的记录

grep 'root' /etc/passwd

递归地过滤出 /var/log/ 目录中包含 linux 的记录

grep -r 'linux' /var/log/

管道
简单来说, Linux 中管道的作用是将上一个命令的输出作为下一个命令的输入, 像 pipe 一样将各个命令串联起来执行, 管道的操作符是 |

比如, 我们可以将 cat 和 grep 两个命令用管道组合在一起

cat /etc/passwd | grep 'root'

过滤出 /etc 目录中名字包含 ssh 的目录(不包括子目录)

ls /etc | grep 'ssh'

重定向
可以使用 > 或 < 将命令的输出重定向到一个文件中

echo 'Hello World' > ~/test.txt

运维常用命令

ping 命令
对 cloud.tencent.com 发送 4 个 ping 包, 检查与其是否联通

ping -c 4 cloud.tencent.com

netstat 命令
netstat 命令用于显示各种网络相关信息,如网络连接, 路由表, 接口状态等等

列出所有处于监听状态的tcp端口

netstat -lt

查看所有的端口信息, 包括 PID 和进程名称

netstat -tulpn

ps 命令
过滤得到当前系统中的 ssh 进程信息

ps aux | grep 'ssh'

八、防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
上一篇下一篇

猜你喜欢

热点阅读