目录简易理解
/usr<=>C:\Windows
/usr/lib<=>C:\Windows\System32
/usr/local<=>C:\Progrem Files
/opt<=>D:\Software
/var 存放经常变动的文件,像日志文件,数据库文件等。
/tmp 存放系统运行时产生的临时文件,一般定期清理或开机清理。
关机重启
clear #清屏
显示当前/活动目录的路径:pwd
查看当前文件夹下大小:du -h --max-depth=1
shutdown [-r] now
关机前应做的:
⬧ 谁在线:who、w
⬧ 联网状态:netstat -a
⬧ 后台进程:ps -aux
⬧ 将内存中未写入硬盘的数据写入硬盘:sync
时区与时间
ls -l /etc/localtime #查看系统当前时区
ls /usr/share/zoneinfo/* #先找到时区文件,是文件不是目录,只有 Shanghai 没有 Beijing。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改时区文
date #显示当前日期与时间
date -u #查看 UTC 时间
date -d #具有强大的时间格式化和计算能力
date --set 20120523 #设置为 2012-05-23 00:00:00
date --set 01:01:01 #设置时间,但不改日期
date --set '20120523 01:01:01' #设置日期与时间
clock –systohc #把系统时间设置成硬件时间
计算机名称
uname -a
Linux cos7 3.10.0-862.11.6.el7.x86_64 【#1 SMP Tue Aug 14 21:49:04 UTC 2018】 【x86_64 x86_64 x86_64】 GNU/Linux
Linux vmp.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
解释:内核名称-s 主机名-n 内核发行号-r 【内核版本-v】 【硬件架构-m 处理器-p 硬件平台-I】 操作系统名称-o
hostname #显示计算名称
三步计算机名称修改:
sudo hostname vmUbuntu
sudo vim /etc/hostname
sudo vim /etc/hosts
cat /etc/redhat-release #系统版本查看
网络配置
测试网络是否通:Ping -c 3 www.baidu.com
显示网卡接口名、IP、网关、DNS信息:ip addr ; ip route ; cat /etc/resolv.conf
查看网卡配置:cat /etc/sysconfig/network-scripts/ifcfg-接口名
sudo vi /etc/sysconfig/network-scripts/ifcfg-接口名
将 ONBOOT 值改为 yes 后, #开机启用本配置,可以看出网卡默认是禁用的。
重启网络服务: sudo service network restart
静态IP地址配置方法,默认是DHCP
修改内容:
BOOTPROTO=static #dhcp 改为 static
ONBOOT=yes #开机启用本配置
新增行:
IPADDR=192.168.174.131 #静态 IP
GATEWAY=192.168.174.2 #默认网关
NETMASK=255.255.255.0 #子网掩码
DNS1=192.168.174.2 #DNS 配置
另外二种测试连接方法:
curl url #可以看到html源码
sudo yum isntall telnet
telnet ip port #测试指定端口是否可以连接上。
SSH配置:PasswordAuthentication
yum list installed | grep openssh-server
若没有安装 openssh-server,通过输入 yum install openssh-server
查看 22 端口是否开放
netstat -tnl|grep 22
查看 sshd 服务是否在运行
systemctl status sshd.service
sshd 服务添加至自启动列表
systemctl enable sshd.service
默认情况下是开启了user/password验证,也开启了sftp
sudo cat /etc/ssh/sshd_config|grep -v ^#
PasswordAuthentication yes #使用用户名密码来作为连接验证
PermitRootLogin yes #禁止 root 登录 ssh,SSHd 重启后生效。
AllowUsers #允许仅指定的用户可通过 SSH 登录,多个用户以空格隔开
AllowGroups #允许仅指定的用户组成员可通过 SSH 登录,多个用户以空格隔开
DenyUsers #禁止 ssh 的用户,多个用户以空格隔开
DenyGroups #禁止 ssh 的用户组,多个用户以空格隔开
AllowUsers root@1.2.3.4 ctos@2.3.4.5 #仅允许 root/ctos 二个用户从各自特定 IP 连接 SSH。
源
查看当前的源:yum repolist 或 yum repolist all
更换为阿里云源操作(https://opsx.alibaba.com/mirror 中核实)
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache
sudo yum upgrade [可选步骤]#更新软件包同时考虑软件包取代关系
sudo yum install open-vm-tools [vmware tools]
yum list [installed] #列出一个或一组软件包
yum install #向系统中安装一个或多个软件包
yum reinstall #覆盖安装软件包
yum erase #从系统中移除一个或多个软件包
yum history list #显示历史记录
yum history undo X #将第X次记录的操作回滚。安装的就卸载,卸载的就重新安装。 很方便就软件和软件带来安装的依赖包一起卸载了,但慎用!
创建用户与权限
adduser TAN #创建用户 TAN
passwd TAN #更改用户密码
usermod -G wheel -a TAN #将TAN加到wheel组,安装类型为 GNOME 时,会要求创建一个默认加入 wheel 组用户,具有完全的 sudo 权限。
注意:Linux下用户名/用户组名是区分大小写。
$ usermod -l 新用户 旧用户
$ groupmod -n 新用户名 旧用户名
需要将改名的用户中登出并退出用户下所有进程,强制杀掉该用户与用户下所有进程
$ sudo pkill -u 旧用户名
$ sudo pkill -9 -u 旧用户名
$ sudo usermod -d /home/新用户名 -m 新用户名
配置用户使用sudo权限:
虽然 vim /etc/sudoers 也可修改,但还是强烈推荐使 visudo 命令去修改此文件,因为它会帮你校验文件配置是否正确,如果不正确,在保存退出时就会提示你哪段配置出错的。
<用户|%组名> <主机名|All=(ALL)|空表示root> <指定命令|ALL[!排除命令]>
(ALL)代表可以使用所用户的身份来运行后面授权的命令,示例:
root ALL=(ALL) ALL
%users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
#允许 users 组中用户加载/卸载CDROM
%wheel ALL=(ALL) ALL,!/usr/bin/passwd,!/usr/sbin/visudo
#允许 wheel 组中用户执行所有命令,但禁止 passwd/visudo 命令,即不能改其他用户的密码。
sudo 后,就是 root 的权限,可以修改/etc/sudoers文件,删除,!/usr/bin/passwd,!/usr/sbin/visudo 语句,再通过
sudo passwd root 来修改 root 密码。所以不能随便开,最佳做法【%users ALL=指定可用命令】。
SSH Key 登录
1、制作密钥并改名
ssh-keygen [-t rsa] #连续三次回车,ssh1 只支持 rsa1,ssh2 支持所有的。
会在~/.ssh目录里生成id_rsa(私钥)和id_rsa.pub(公钥)文件
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
注意:使用PUTTYGEN.exe生成的公钥,会提示证书错误,因为被分
2、下载私密文件 scp.exe、pscp.exe
C:\>pscp username@ip:/home/TAN/.ssh/id_rsa e:\download
下载成功后,从服务器上将删除私钥:rm -f ~/.ssh/id_rsa
3、SSHd配置与重启
/etc/ssh/sshd_config
PubkeyAuthentication yes #开户证书登录
AuthorizedKeysFile .ssh/authorized_keys #默认就是
PasswordAuthentication no #确认连接成功后,关闭密码认证,注意此时sftp/pscp都不能使用密码了,也要使用私钥,这时PAGEANT.exe就大显身手了。
systemctl restart sshd.service
4a、PuTTY 登录
1、使用PUTTYGEN.exe打开id_rsa私钥文件,另存为ppk格式
2、在PAGEANT.exe中导入ppk私钥文件,如果在PUTTY.exe中设置私钥文件Connect--SSH--Auth--选择ppk私钥文件只能是PUTTY使用。
4b、Windows自带SSH.exe登录
1、密码登录:ssh -p22 user@ip
2、id_rsa私钥登录:ssh -i%userprofile%\.ssh\id_rsa -p22 user@ip
3、端口转发(将本地13306的请求,通过sshIP转发到rIP:3306上):ssh -L 13306:rIP:3306 -p 22 sshUser@sshIP
5、为了安全改文件权限(通过ssh-keygen和ssh-copy-id默认的权限,只要没有改过就不用处理)
chmod 644 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
SSH 断开进程在后台运行:nohup command &
环境配置文件
交互式 shell 登录时读取 ~/.bash_profile ,初始化时读取 ~/.bashrc 。非交互式只会读取 ~/.bashrc 。
一般把 alias 和 function 一类的放到 bashrc 中,而把 export 更多的放在 profile 文件中。
su 切换用户时,仅 su - username 或 su username -l 会加载目标用户的环境变量。
而 su username 是不会加载目标用户的环境变量
系统编码的查看:
Locale
Echo $LANG
文件属性与权限
0-123-456-789
第 0 位表示文件类型
⬧ p 表示命名管道文件
⬧ d 表示目录文件
⬧ l 表示符号连接文件
⬧ -表示普通文件
⬧ s 表示 socket 文件
⬧ c 表示字符设备文件
⬧ b 表示块设备文件
第 123-456-789 位分别表<所有者u-user、同组用户g-group、其他用户o-other>的权限。
⬧ r 只读、w 可写、x 执行,x 在目录时与『能否进入该目录』有关。
⬧ 因 rwx 位置固定,二进制转换十进制后为421,再相加得到 7 或 6 或 5 或 4;所以也有 777、755、754、750、600 说法。
只有文件主或超级用户可修改文件权限
R 为子目录,h 为仅符号链接文件。
改所属组:chgrp [-R] <组名> <文件或目录>
改所有者:chown [-hR] <用户名[:组名]> <文件或目录
chmod [-R] 777 filename
⬧ 777:所有人可做所有操作
⬧ 755:所有者可读写执行,同组用户可读可执行,其他用户可读可执行(755 为最常见)
⬧ 754:所有者可读写执行,同组用户可读可执行,其他用户可读
chmod [-R] +rx filename 或 chmod [-R] o=rx,go=rx filenme
⬧ ugoa:所有者 u-user、同组用户 g-group、其他用户 o-other、所有用户 a-all<默认>
⬧ +-=:增加权限+、删除权限-、重新设置权限=
⬧ rwx:读 r、写 w、执行 x
进入 vi 时,处于命令模式。
需要按 i/a/o 键进入插入模式(细微区别,在左下角最后一行有“-- INSERT --”字样)。
在插入模式下,按 ESC 切换到命令模式:
删除/复制/粘贴/修改
x:删除光标后面字符,X:删除光标前面字符;6x/6X:删除光标后、前 6 个字符。
dd:删除光标整行,6dd:删除光标及向下 6 行。
yw:复制光标到行尾的字符,6yw:复制光标后 6 个字符;
yy:复制整行,3yy:复制光标及向下 3 行。
p:粘贴到光标的位置
r:修改光标所在的字符(但不进入插入模式);
R:修改光标位置至到行尾(进入到修改模式,直到按 ESC 回到命令模式)
u:误编辑恢复,按一次恢复一次。
光标移动
行首:^,行尾:$,首行:0,尾行:G,第 5 行首:5g;
光标上下页:ctrl+f/b 光标上下半页:ctrl+d/u
Ctrl+G 显示当前光标所在行的行号及总行数,再输入数字 11 回车,光标会向下移 11 行。 将光标移到第 11 行:11G
在命令模式下,按“:”键进入命令行模式,光标移动左下角最后一行,可以输入命令:(以回车结束)
15:定位到第 15 行,显示行号命令:set nu,不显示行号:set nonu
?aa:在文件中查找 aa 字符,回车后按 n。取消搜索高亮:noh
w [filename]:保存文件 q:退出 vi qw [filename]:保存并退出 q!:不保存退出
!ls:执行 bash 的 ls 命令
永久显示行号的方法:echo ‘set nu’ >> ~/.vimrc
全局配置文件:/etc/vimrc
安装Oracle JDK
tar -zxf jdk-8u171-linux-x64.tar.gz
vi /etc/profile ~/.bash_profile
JAVA_HOME=/usr/java/jdk1.8.0_171
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export PATH JAVA_HOME CLASSPATH
source /etc/profile ~/.bash_profile