Linux_相關指令
bash
1、命令扩展 {1..100},{a..z},{01..100},{1..100..2}
2、ctrl +a 行首 +e 行尾 +k 删除光标后面 +u 删除光标前面的 +l 清屏(clear)
3、$PATH which 查找命令环境变量位置
SSHD
1.开启ssh
系统默认ssh 关闭。 如需要开启sshd,输入指令:
1 、临时开启ssh。
- systemctl start sshd
2、永久开启
- systemctl enable sshd && systemctl start sshd
“Connection refused”(连接被拒绝):
- grep Port /etc/ssh/sshd_config #查看ssh port
- sudo netstat -plnt #命令行应返回端口及其各自的“状态”列表。如果你要使用的端口为22,那么它的状态应该为LISTEN。如果不是,则需要重新打开端口才能连接到服务器。
如果您的设置似乎都正常,但仍然无法连接,请查看防火墙规则。您可以使用以下命令行来检测:
- sudo iptables-save # display IPv4 rules
- sudo ip6tables-save # display IPv6 rules
返回的信息不尽相同,您需要查找以下元素以确定防火墙是否拦截SSH连接:
dport 22:指目标端口,对于SSH,通常是端口22。
REJECT:这表明从指定的目的地拒绝连接。
DROP:与REJECT一样,这意味着到相关端口的连接被拦截。
如果在上面关于dport 22的命令结果中搜索,应该能够确定防火墙是否阻止SSH连接。如果是,则必须更改规则以接受请求。
Linux 设置时区和修改时间
GMT、UTC、CST、DST 时间
(1) UTC
整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。
(2) GMT
格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)
(3) CST
中国标准时间 (China Standard Time)
(4) DST
夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时钟拨快一小时,以提早日光的使用。(中国不使用)
GMT + 8 = UTC + 8 = CST
timedatectl set-timezone Asia/Shanghai #服务器时区设置
date -s "2020-12-20 16:34:50" #服务器时间设置
#需要修改时间为24小时,可以修改/etc/default/locale,默认没有LC_TIME这个变量,在文件中增加一行:
LC_TIME=en_DK.UTF-8
tzselect #在这里我们选择亚洲 Asia,确认之后选择中国(China),最后选择北京(Beijing),选择1
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #复制文件到/etc目录下
date -R #查看时间
hwclock --systohc #将系统时间同步到硬件时间
timedatectl #等同于 timedatectl status
timedatectl list-timezones #列出所有时区
timedatectl set-timezone Asia/Shanghai #设置时区
timedatectl set-ntp yes #yes或者no是否NTP服务器同步
timedatectl set-local-rtc 1 #将硬件时钟调整为与本地时钟一致
yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum clean all #清空缓存
yum makecache #生成缓存
RPM
wget http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
- rpm -qi centos-release #查询服务器的系统版本
- cat /etc/redhat-release #查看对应系统yum包
- file /bin/ls #查看系統位數
- rpm -qa|grep yum #查看已安装的yum
- rpm -aq|grep yum|xargs rpm -e --nodeps #删除已有的yum
- rpm -ivh *.rpm #安裝指定rpm
- rpm -qa|grep yum #查看系統已安裝的yum
- rpm -e yum* #卸載yum
Centos修改ip
vim /etc/sysconfig/network-scripts/ifcfg-ens1
BOOTPROTO=static
IPADDR=192.168.1.100 #IPADDR=新的IP地址
NETMASK=255.255.255.0 #NETMASK=新的子网掩码
GATEWAY=192.168.0.1 #GATEWAY=新的网关
DNS1=8.8.8.8 #DNS1=新的域名服务器1
DNS2=8.8.4.4 #DNS2=新的域名服务器2(可选)
ONBOOT=yes
- systemctl restart network
DNS2=新的域名服务器2(可选)
Ubuntu Server 20.04 安装桌面(图形界面)
# 安装 Gnome
sudo apt update
sudo apt-get upgrade
sudo apt install ubuntu-desktop
#安装 Xfce
sudo apt update
sudo apt-get upgrade
sudo apt install xubuntu-desktop
安装 Xrdp
sudo apt install xrdp
sudo systemctl status xrdp
设置root密码
sudo passwd root
vim
#命令模式
#以下是常用的几个命令:
-(1)i 切换到输入模式,以输入字符。输入模式也叫编辑模式,可编辑文档(最常用)
-(2)x 删除当前光标所在处的字符。
-(3): 切换到底线命令模式,以在最底一行输入命令。
#在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式(编辑模式),切换到命令模式
#底线命令模式:
- 在命令模式下按下:(英文冒号)就进入了底线命令模式。
- 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
- 在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
- 按ESC键可随时退出底线命令模式。
# 保存文件修改
- :w #按【:w】 保存文件
- :w! #按【:w!】 若文件为只读,强制保存文件
# 退出文件
- :q #按【:q】 离开vi/vim
- :q! #按【:q!】 不保存强制离开vi
# 保存并退出
- :wq #按【:wq】 保存后离开
- :wq! #按【:wq!】 强制保存后离开
添加用户到sudo,并允许不输入密码执行sudo操纵
vi /etc/sudoers
# your_username ALL=(ALL) NOPASSWD: ALL
查看CPU
- cat /proc/cpuinfo #在Linux服务器上查看CPU详细信息
输出项 | 含义 |
---|---|
processor | 系统中逻辑处理核的编号。对于单核处理器,则可认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核 |
vendor_id | CPU制造商 |
cpu family | CPU产品系列代号 |
model | CPU属于其系列中的哪一代的代号 |
model name | CPU属于的名字及其编号、标称主频 |
stepping | CPU属于制作更新版本 |
cpu MHz | CPU的实际使用主频 |
cache size | CPU二级缓存大小 |
physical id | 单个CPU的标号 |
siblings | 单个CPU逻辑物理核数 |
core id | 当前物理核在其所处CPU中的编号,这个编号不一定连续 |
cpu cores | 该逻辑核所处CPU的物理核数 |
apicid | 用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续 |
fpu | 是否具有浮点运算单元(Floating Point Unit) |
fpu_exception | 是否支持浮点计算异常 |
cpuid level | 执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容 |
wp | 表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection) |
flags | 当前CPU支持的功能 |
bogomips | 在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second) |
clflush size | 每次刷新缓存的大小单位 |
cache_alignment | 缓存地址对齐单位 |
address sizes | 可访问地址空间位数 |
查看内存信息
- dmidecode #查看共有多少个槽位
- cat /proc/meminfo #在Linux服务器上查看內存详细信息
CURL
- curl -d #-d 后面是要发送的数据,例子中发送的是 JSON 格式的数据
- curl -X #X 后面是指定 HTTP 的方法,例子中指定的是 POST 方法;
- curl -H #-H 是指定自定义的请求头,例子中由于发送的是 JSON 数据,所以内容类型指定了 JSON
- curl http: #查看网页源码
- curl -o filename.ext http://example.com/file.ext #下载文件并保存到本地
- curl -X POST -d "param1=value1¶m2=value2" http://example.com/api #发送POST请求 这在与API交互时非常有用。使用-X POST设置请求方法,并用-d发送数据
- curl -u username:password http://protected.site #使用HTTP认证 用于向服务器发送 HTTP 请求时指定用户名和密码。这个选项通常用于需要基本认证(Basic Authentication)的场合,比如访问需要认证的 Web 页面或 API 接口
常用
- df
- Filesystem:代表该文件系统时哪个分区,所以列出的是设备名称。
- 1K-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。
- Used:已经使用的空间大小。Available:剩余的空间大小。
- Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况
- Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。
- top #查看动态进程
- 第一行:
- 20:45:37— 当前系统时间
- 1:08 — 系统已经运行时间(在这期间没有重启过)
- 4 users — 当前有4个用户登录系统
- load average: 00, 00, 00 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
- load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
- 第二行:
- Tasks — 任务(进程)共有144个进程,运行中的有1个,139个在休眠(sleep),stoped状态的有4个,zombie状态(僵尸)的有0个。
- 第三行:cpu状态
- 6.7% us — 用户空间占用CPU的百分比。
- 0.4% sy — 内核空间占用CPU的百分比。
- 0.0% ni — 改变过优先级的进程占用CPU的百分比
- 92.9% id — 空闲CPU百分比
- 0.0% wa — IO等待占用CPU的百分比
- 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
- 0.0% si — 软中断(Software Interrupts)占用CPU的百分比
- 第四行:内存状态
- 1030528 total — 物理内存总量(10GB)
- 386032k used — 使用中的内存总量(3.86GB)
- 4496k free — 空闲内存总量(6.44)
- buffers — 缓存的内存量
- 第五行:swap交换分区
- total — 交换区总量
- used — 使用的交换区总量
- free — 空闲交换区总量
- cached — 缓冲的交换区总量(4GB)
- 六行是空行
- 第七行以下:各进程(任务)的状态监控
- PID — 进程id
- USER — 进程所有者
- PR — 进程优先级
- NI — nice值。负值表示高优先级,正值表示低优先级
- VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR — 共享内存大小,单位kb
- S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU — 上次更新到现在的CPU时间占用百分比
- %MEM — 进程使用的物理内存百分比
- TIME+ — 进程使用的CPU时间总计,单位1/100秒
- COMMAND — 进程名称(命令名/命令行)
- top 退出ctrl +z或ctrl+c
- top -d #秒数 设定间隔时间查看资源使用情况
- free #查看内存使用情况
- Men:内存的使用情况
- Swap:交换空间的使用情况
- total:总内存
- used:已经使用的内存
- shared:共享内存(主要被tmpfs使用的内存)
- buff/cache:buff和cache的和
- available:启动新进程时可用的内存
- ps #查看进程命令
- ps aux #查看所有用户的进程
- a表示 所有进程
- u 表示用户
- x 执行
- USER:该进程属于那个使用者账号。
- PID :该进程的进程ID号。
- %CPU:该进程使用掉的 CPU 资源百分比;
- %MEM:该进程所占用的物理内存百分比;
- VSZ :该进程使用掉的虚拟内存量 (Kbytes)
- RSS :该进程占用的固定的内存量 (Kbytes)
- TTY :该进程是在那个终端机上面运作,若与终端机无关,则显示 ?。另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
- STAT:该程序目前的状态,主要的状态有:
- R :该程序目前正在运作,或者是可被运作;
- S :该程序目前正在睡眠当中,但可被某些讯号(signal) 唤醒。
- T :该程序目前正在侦测或者是停止了;
- Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
- START:该进程被触发启动的时间;
- TIME :该进程实际使用 CPU 运作的时间。
- COMMAND:该程序的实际指令。
- ps -ef|grep 服务名称 #ps -ef|grep 服务名称 查看一个服务状(重点)
- kill #杀死进程
- kill -9 #强制杀死进程
- netstat -nltp #查看所有已经开启的端口
- lsof -i :端口号
- hostname #查看主机名称
- du -sh #查看当前文件大小
- alias 别名= 命令
- alias if=ifconfig
- unalias 简称别名 #取消别名
- service network start #开启网卡(建议不操作)
- service network stop #关闭 网卡
- service network restart #重启网卡
- service network status #查看网卡状态
- ln -s #软连接
- ln -s 源文件 目标文件
- 以路径的形式存在
- 可以跨文件系统,硬连接不可以
- 可以对目录进行连接
- ln 源文件名 硬连接文件名 # 硬链接
- df -h #带单位显示磁盘使用情况
- sz/rz #文件互传
- nmcli device show #查看网卡mac地址
- systemctl start NetworkManager # 執行nmcli device show过程中可能会报错“Error: NetworkManager is not running”,執行解決
- ls -l /dev/tty* #查看tty端口,识别使用的端口
- ssh user@ip #远程登录
- scp #把一台机器上的文件传输给另一台机器
- ifconfig #查看本地网络状态
- netstat #看目前本机的网络使用情况
- netstat -t #看 TCP 连接的网络信息
- netstat -u #看 UDP 的网络信息
- host #DNS 查询命令
- dig #dig 显示的更加详细DNS
- shutdown #安全地将系统关机
- shutdown -r now #馬上關機
- shutdown -r 10 #10秒後關機
- shutdown -r 20:35 #定時關機
- [-t] 在改变到其它runlevel之前,告诉init多久以后关机。
- [-r] 重启计算器。
- [-k] 并不真正关机,只是送警告信号给每位登录者〔login〕。
- [-h] 关机后关闭电源〔halt〕
- [-n] 不用init﹐而是自己来关机。不鼓励使用这个选项,而且该选项所产生的后果往往不总是你所预期得到的。
- [-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息而这信息将会送到每位使用者。
- [-f] 在重启计算器〔reboot〕时忽略fsck。
- [-F] 在重启计算器〔reboot〕时强迫fsck。
- [-time] 设定关机〔shutdown〕前的时间。
- halt #其实halt就是调用shutdown -h
- [-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
- [-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
- [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
- [-f] 没有调用shutdown而强制关机或重启。
- [-i] 关机〔或重启〕前﹐关掉所有的网络接口。
- [-p] 该选项为缺省选项。就是关机时调用poweroff。
- reboot #重啟
-b:不执行相关脚本而直接进入单用户模式;
-s:切换到单用户模式。
0 停机(千万不能把initdefault 设置为0)
1 单用户模式
2 多用户,没有 NFS(和级别3相似,会停止部分服务)
3 完全多用户模式
4 没有用到
5 x11(Xwindow)
6 重新启动(千万不要把initdefault 设置为6)
更新软件源为阿里源并用它更新软件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak_`date "+%y_%m_%d"`
sudo sed -i 's/http:\/\/.*.ubuntu.com/https:\/\/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo apt update
sudo apt upgrade