欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux基础(特基本的那种)知识

程序员文章站 2022-07-09 20:55:50
(自己的随手笔记,记得有点乱请亲喷) which:查看某个命令的完整路径df -h:查看系统磁盘情况history:查看历史输入的命令 网卡配置路径:vim /etc/sysconfig/network-scripts/ifcfg-eth0 1.systemctl reboot 重启 *2.shut ......

(自己的随手笔记,记得有点乱请亲喷)

which:查看某个命令的完整路径
df -h:查看系统磁盘情况
history:查看历史输入的命令

网卡配置路径:vim /etc/sysconfig/network-scripts/ifcfg-eth0

1.systemctl reboot 重启 *
2.shutdown -r now 立刻重启 *
3.shutdown -h now 立刻关机 *
4.systemctl poweroff 关闭系统并切断电源 *
5.systemctl halt 关闭系统cpu停止工作 *
6.systemctl suspend 暂停系统
7.systemctl hibernat 系统进入休眠状态
8.systemctl hybrid-sleep 系统进入交互式休眠状态
9.systemctl rescue 启动进入救援状态

pwd 查看当前目录

cd - 去上一次所在的目录
cd . 去当前目录,表示当前目录
cd .. 去上一级目录。 ..表示上一级目录
cd ~或cd 去当前目录的家目录, ~表示家目录。

公网ip地址:
私网:办公室局域网内使用的地址,不能再互联网上使用(路由器将私网的ip 地址转换为公网)
192.168
172.16
10.0.0

端口的概念:
ip地址:唯一标识一台计算机(身份证) (找谁,去哪里)
端口:不同软件运行的服务用端口区分 (到这里干啥)
是一台计算机里唯一标识服务的数字
我们要访问一台计算机拿到ip地址,找到对应的服务就需要端口。
协议:计算机之间的通信方式(语言),采用相同的协议沟通。 (用什么方式语言干什么)

连接linux的服务:
ssh服务 security shell服务
包括客户端(相当于男人)和服务端(相当于女人) 通过客户端才能连接服务端

[root@oldboyedu ~]# rpm -qa openssh openssl
openssl-1.0.2k-16.el7_6.1.x86_64 #连接和传输过程中加密
openssh-7.4p1-16.el7.x86_64 #ssh服务端软件

服务端运行的ssh的服务:
[root@oldboyedu ~]# ps -ef|grep ssh
root 1457 1 0 11:57 ? 00:00:00 /usr/sbin/sshd -d
root 1995 1457 0 11:59 ? 00:00:00 sshd: root@pts/0
root 7937 1457 0 14:20 ? 00:00:00 sshd: root@pts/1
root 7961 7941 0 14:38 pts/1 00:00:00 grep --color=auto ssh

服务端运行的ssh的服务所用的端口:22 #<==ss -lntup|grep ssh

服务端(女人):软件openssh (提供远程连接) openssl(提供加密)

检查服务信息:
查ip的命令:ip add
查端口:ss -lntup 或 netstat -lntup
查进程:ps -ef|grep ssh

暂停ssh服务:systemctl stop sshd.service
开启ssh服务:systemctl start sshd.service

客户端(男人)有哪些? xshell、seurcrt、putty、ssh

连接不上服务端,出现连接故障:
connecting to 10.0.0.201:22...
连接故障的解决方法:
1、检查服务端:
网卡、ip是不是启动和正确的:输入命令ip add 或 ifconfig
2、检查端口和进程:
查端口:ss -lntup 或 netstat -lntup
查进程:ps -ef|grep ssh
暂停ssh服务后再开启ssh服务 暂停ssh服务:systemctl stop sshd.service
开启ssh服务:systemctl start sshd.service
3、检查客户端的ip、端口、协议是不是对的(眼睛查)
都是对的,就是连接不上,咋办?
(1)ping 10.0.0.200 检查物理链路能否到达
[root@oldboyedu ~]# ping 10.0.0.200
ping 10.0.0.200 (10.0.0.200) 56(84) bytes of data.
64 bytes from 10.0.0.200: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from 10.0.0.200: icmp_seq=2 ttl=64 time=0.054 ms
64 bytes from 10.0.0.200: icmp_seq=3 ttl=64 time=0.041 ms
64 bytes from 10.0.0.200: icmp_seq=4 ttl=64 time=0.040 ms
^c
如果不可达:1、连接的ip输入错了
2、物理链路有问题(vm环境调虚拟网络编辑器)
(2)telnet 10.0.0.200 22(连接的端口号)检查对方有没有提供服务,开启服务
[g:\~]$ telnet 10.0.0.200 22


connecting to 10.0.0.200:22...
connection established.
to escape to local shell, press 'ctrl+alt+]'.
ssh-2.0-openssh_7.4

如果是连不上的状态:
[g:\~]$ telnet 10.0.0.200 23

connecting to 10.0.0.200:23...
could not connect to '10.0.0.200' (port 23): connection failed.

type `help' to learn how to use xshell prompt.
(1)服务端是否开着防火墙(6是iptables,7是firewalld )(2)服务端没有提供服务
检查防火墙是否开着: 开启防火墙:systemctl status firewalld.service
active:active (running)开着的状态
active:inactive(dead)关着的状态
关闭防火墙:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
开机不自动启动防火墙:systemctl disable firewalld.service
开机自动启动防火墙:systemctl enable firewalld.service

什么是快照?
作用:可以让时间倒流,操作过的、说过的话 都可以不算数

克隆:
1、链接克隆
2、开机:
nmtui(7)===》图形化更改 set up(6)p81页
systemctl restart network 重启让修改生效
3、复制shell标签 链接

#管理员(皇帝)
$普通用户(大臣)
~家目录:当前位置
@之前的是当前用户名 @之后的是主机名

快捷键:
tab:补全代码
ctrl+c:中断终端正在执行的任务
ctrl+d:退出shell命令行,关闭xshell
ctrl+l:清屏相当于命令:clear
ctrl+a:光标回到行首
ctrl+e:光标回到行尾
ctrl+insert:复制一行的内容
shift+insert:粘贴复制的内容
ctrl+k:剪切(删除)光标处到行尾的字符
ctrl+u:剪切(删除)光标处到行首的字符
ctrl+w:删除光标前的一个单词
ctrl+y:粘贴ctrl+k、ctrl+u、ctrl+w删除的文本
ctrl+s:锁定界面,不显示输入的内容
ctrl+q:解除锁定
ctrl+r:搜索命令行使用过的历史命令记录
esc+.(点):获取上一条命令的最后部分(空格分隔)
ctrl+z:暂停正在执行任务
!!:执行上一条命令
!+命令开头的几个字母:执行最近以字母开头的命令

linux如何查找命令帮助:
1、man:man+ 要查找功能的命令(列:man ls)男人,查找命令的功能 参数 等等帮助信息的工具
2、查内置命令:--help :命令+ --help(例:cp --help)
[root@oldboyedu ~]# lang="zh_cn.utf-8" 《======查看汉语帮助(只试用于--help命令)
3、搜索引擎输入:linux+要搜索的命令

普通命令和内置命令的区别
普通命令是在系统中存在的命令
内置命令在系统中不存在文件,存在于bash解释器里
特殊性:7有些命令也存在文件了。cd,read
man命令找不到,就用help命令
man cd就可以找到所有内置命令

info cp(查命令的相关信息,几乎用不着)

reboot、shutdown重启
halt、poweroff关机
systemctl reboot 重启 *
shutdown -r now 立刻重启 *
shutdown -h now 立刻关机 *
systemctl poweroff 关闭系统并切断电源 *
systemctl halt 关闭系统cpu停止工作 *
systemctl suspend 暂停系统
systemctl hibernat 系统进入休眠状态
systemctl hybrid-sleep 系统进入交互式休眠状态
systemctl rescue 启动进入救援状态

linux语法:
命令 [参数选项] [文件或路径] (“[]”里面的东西可有可无)
例:rm -f /etc/hosts (完整的路径不带空格)

pwd:查看当前目录(print打印 working工作 directory目录)
自动显示工作目录:(o编辑→esc退出编辑→:wq保存)
[root@oldboyedu~]# vim .bashrc
# .bashrc
# user specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
ps1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\h\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\
]]\\$ "

".bashrc" 13l, 260c written
[root@oldboyedu~]# source bashrc

cd 切换目录(change改变 directory目录)
cd - 去上一次所在的目录
cd . 去当前目录。.表示当前目录
cd .. 去上一级目录。 ..表示上一级目录
cd ~或cd 去当前目录的家目录, ~表示家目录

相对路径:不是从”/“斜线开始的路径,目标文件对于当前文件的路径。
如:data/,mnt/oldboy;
绝对路径(完整的路径):是从”/“斜线根开始的路径,而是从当前目录或指定的目录开始,从根目录开始的。
如:/data/,/mnt/oldboy

ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
ls -f 在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接、"|"表示fifos、"/"表示目录、"="表示套接字。
ls -s 在每个文件的后面打印出文件的大小。 size(大小)
ls -t 按时间进行文件的排序 time(时间)
ls -a 列出除了"."和".."以外的文件。
ls -r 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
ls -l 列出文件的链接名。link(链接)
ls -s 以文件的大小进行排序

tree:以树形结构显示目录及文件(例:tree /etc)
tree -l 1(显示的层数):指定树形显示的层数(例:tree -l 1 /etc)(level层数)
tree -d :指定显示树形目录(例:tree -d /etc)(directory目录)
tree -l 1 -d /etc:显示/etc的一层树形目录

创建目录:mkdir (make创建 directory目录)

mkdir -p:覆盖目录创建,根据需要创建所有目录 包括父目录子目录,递归创建
(例:mkdir -p /oldgirl/oldboy)

在当前目录下创建文件:touch 文件名 (例:touch test.txt)
cat:查看文件内容(例:cat wzh.txt)
强制删除文件:rm -f 文件名(force)
删除目录:rm -fr 目录名 rm -i:确认
递归删除,删除目录和文件:rm -r 文件名 (recusive)
创建连续文件:touch {1..1000}.txt {}生成数字序列,字母序列。
touch oldboy{1..3}.txt
touch {oldboy,oldgirl,oldbaby}.txt

linux一切皆文件,目录也是文件,目录和文件不能重名。
linux一切从根开始:linux系统中的一切的数据、文件都是从根目录下衍生存放的

ls (list)显示目录下的内容
-l (long) 以长格式显示目录下的内容(ll的效果跟ls -l效果一样)
-a (all)显示所有文件,包含隐藏文件(以.开头的文件)
-d(dirctory)显示目录
ls -ld oldboy:看oldboy目录的长格式

vim编辑器:(例:vim linux.txt 进入linux文件中编辑)
三种模式:普通模式、编辑模式、命令行模式
a:进入编辑模式 i:进入编辑模式(insert)
o:在光标所在的下一行,空行进入编辑模式
esc:退出编辑模式到命令模式 两遍esc命令模式到普通模式
:wq保存退出 :q!强制退出 :q退出不保存 :wq!强制保存退出 :set nu显示行号

普通模式的快捷方式:
yy 复制光标所在位置的一行 n yy:复制多行
p 粘贴
dd/cc 删除光标所在的行 (dd删除/剪切本行的所有内容包括空行 cc删除本行的内容保留空行)
0 光标移至行首
$ 光标移至行尾
u 撤销最后一次修改
u 撤销当前行的所有修改
gg 移动到文件头部
g 光标移至文章最后一行头部
100gg 调至第100行行首
dg 删除光标所在位置至文件结束
r 替换单个字符
c 删除光标后的整行
zz 保存退出
命令行模式的快捷方式:
:q! 不保存文件强制退出vim
:wq 保存文件并退出vim
:wq! 强制保存退出
:q 不保存退出
:set nu 显示行号

普通模式的快捷方式:
/3306:向下搜索3306 继续搜按n,向下搜按n
?3306:向上搜索3306 继续搜按n,向下搜按n
:%s/a/b/g:替换 a:要替换的东西 b:拿来替换的东西 g:表示全局
例: :%s/oldboy/oldgirl/g 把文件里的oldboy全部换成oldgirl
:4,6s/a/b/g:将4-6行的a换成b

cp:复制文件和目录(copy)(例:cp test.txt /opt/ 将test文件复制到/opt)
cp -r:复制目录(递归复制)(例:cp -r test /opt/ 将test目录复制到/opt)
cp -p:保存文件属性复制文件(文件的大小、创建时间、权限都是文件属性)
cp -a:跟cp -p一样
cp -d:复制链接
cp -rp:保存目录属性复制目录
cp -i:确认
mv:(move)移动目录或文件,相当于剪切 mv -i:确认 mv -t:颠倒

复制的时候如何不提示直接覆盖?
cp -f
alias:查看所有命令的别名 unalias:删除别名(unalias cp)临时生效,关机就没有了
设置别名:alias cp='cp -i'
默认执行pc相当于执行了cp -i,这是系统默认的别名在作怪。

解决方案:
加“\”:[root@oldboyedu~]#\cp {1.100}.txt /opt/
输入完整路径:[root@oldboyedu~]#/bin/cp {1.100}.txt /opt/
which:查看某个命令的完整路径(例:which cp)

如何防止使用rm误删数据?
1、放弃使用rm,用mv或find替代
2、不删除,只是移动到回收站(/tmp)
3、一定要删除,要先备份
4、不要这样用:rm -fr /opt/*(*代表删除所有)
这样用更安全些:cd /opt → rm -fr*
5、为rm设置别名,提醒自己和组员

课后作业:
1.cd /tmp pwd mkdir data{1..3}
2.(慢)touch /data1/oldboy1.txt touch /data2/oldboy2.txt touch /data/oldboy3.txt
tree -l 2 ls ll
2.touch data{1..3}/oldboy{1..3}
tree -l 2 ll data1/oldboy1 data2/oldboy1 data3/oldboy1
3.cp /etc/hosts /tmp/data1 cp /opt/data1 /opt tree /tmp/data1 tree /opt
4.(慢)mv /tmp/data1 /root cd /opt/data1 rm -f /hosts cd .. rm -fr /data1
4.mv /tmp/data1 /root rm -f /opt/data1/hosts cd /opt rm -fr data1

echo:输出和打印 输入啥输出啥 echo "dhsdyvnvb"
echo -n:不换行输出
echo -e:转义字符 \t代表tab键 \n回车换行(这两个要配合-e使用)
[root@oldboyedu /opt]# echo -e "\ngngb\terbvnerug"

gngb erbvnerug

printf:格式化打印

linux里的目录和分区是分离的
ide盘: 不同的磁盘使用字母表示:hda hdb
不同分区是用数字表示:hda1 hda2
sas/sata/sasi sda sdb,sda1 sda2
/dev/sda1

linux分区默认是不能访问的(通过挂载进行访问)
挂载:为分区找到一个入口
挂载点:分区入口的目录名(例:/etc就是分区/dev/sda1的挂载点)
挂载命令:mount (例:mount /dev/cdrom /mnt)
卸载挂载命令:umount (例:umount /mnt)
临时挂载点:/mnt

df -h:查看系统磁盘情况

磁盘下的目录结构说明:
/:存放系统相关
/usr:存放系统方开发的程序
/usr/local:存放用户自己安装的程序,相当于c:/program files
/opt:存放第三厂商开发的程序
/home:存放用户的数据(家目录)

fhs:目录层次标准

根下的目录结构分析:
[root@oldboyedu ~]# tree -l 1 /
/
├── bin -> usr/bin binaries二进制 存放命令相关
├── boot 存放linux的内核及系统引导程序所需的文件目录(大小可为256——1024mb)它也是引导分区的挂载点
├── dev device files设备文件 存放设备文件
├── etc 二进制软件包配置问价所在路径
├── home 普通用户的家目录
├── lib -> usr/lib 系统和运行命令所需的共享库文件和内核模块存放目录(libraries)
├── lib64 -> usr/lib64 64库library库文件目录
├── media 可移除的媒体挂载点
├── mnt 临时挂载点 mount
├── opt (option 可选择)有些软件包也会安装在这里,也就是自定义的软件包
├── proc 虚拟的文件系统,存放进程和内核信息的目录
├── root 管理员的家目录
├── run 存放正在运行进程相关信息的文件的目录
├── sbin -> usr/sbin 管理员命令的所在目录,普通用户执行不了(system binaries)
├── srv 给用户提供数据所在的目录
├── sys 虚拟的文件系统,存放进程和内核信息的目录和proc类似
├── tmp 存放临时文件的目录
├── usr 存放系统软件和用户相关程序所在的目录,第二层次目录
└── var 存放可变化的数据的目录

1、/etc:系统初始化及设置相关重要文件
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0(用于配置上网的文件)
c7:nmtui图形化配置上网 本质就是修改上述文件
c6:setup

2、/etc/resolv.conf: linux系统dns客户配置文件(已被网卡配置文件所替代)
dns:域名系统(domain name system)
作用:把浏览器里输入的域名,解析为服务器的ip地址,然后才能找到服务器,提供内容。

3、/etc/hosts:系统本地的dns解析文件(本地dns配置文件,优先于dns公网解析)

4、/etc/fstab:配置开机设备自动挂载的文件(自动挂载)
作用:比如插入一个u盘,希望下次开机能够直接访问。就需要在/etc/fstab里配置
[root@oldboyedu ~]# cat /etc/fstab

#
# /etc/fstab
# created by anaconda on mon jul 15 15:40:40 2019
#
# accessible filesystems, by reference, are maintained under '/dev/disk'
# see man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
uuid=5402fb0a-5727-4745-b715-83fee4922bf2 / xfs defaults 0 0
uuid=5d25ce16-9259-4a05-a66a-797e208ef456 /boot xfs defaults 0 0
uuid=5e66df19-7e49-4658-ac0b-1ca64ce6b7c3 swap swap defaults 0 0
设备名(uuid) 挂载点 挂载的文件系统类型 挂载参数 是否备份 是否开机检查

blkid:查询所有设备的文件系统类型

5、/etc/rc.local:存放开机自启动程序命令的文件
它的真实路径:/etc/rc.d/rc.local
[root@oldboyedu ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 jul 15 18:11 /etc/rc.local -> rc.d/rc.local
c7的特殊性:chmod +x /etc/rc.d/rc.local(先执行这条命令才能用开机自启动文件)
c6的开机自启动:chkconfig

6、/etc/profile及/etc/bashrc:配置系统的环境变量/别名等的文件
它是各种配置的配置文件
生效条件二选一:1、退出重新登录2、执行source

7、/etc/issue和/etc/issue.net:配置登录前的显示信息文件
[root@oldboyedu ~]# cat /etc/issue
\s
kernel \r on an \m
[root@oldboyedu ~]# cat /etc/issue.net
\s
kernel \r on an \m
[root@oldboyedu ~]# >/etc/issue ====>删除内核版本号(不能还原)
[root@oldboyedu ~]# >/etc/issue.net ====>删除内核版本号(不能还原)

8、/etc/motd:配置登陆提示
编辑:
[root@oldboyedu ~]#vim /etc/motd
欢迎来到泳的乐园!
保存退出: :wq
重新登录:ctrl+d 两次
欢迎来到泳的乐园!(开机提示信息)
[root@oldboyedu ~]#

9、/etc/redhat-release:查看系统版本
[root@oldboyedu ~]# cat /etc/redhat-release
centos linux release 7.6.1810 (core)
uname -r:查看内核
[root@oldboyedu ~]# uname -r
3.10.0-957.21.3.el7.x86_64

10、/etc/sysctl.conf:linux内核参数设置文件

11、/etc/init.d:软件启动程序所在的目录(c7以前)

12、/etc/hostname:查看主机名
改主机名:(改完之后退出永久生效)
[root@oldboyedu ~]# hostnamectl set-hostname wangzehua
[root@oldboyedu ~]# cat /etc/hostname
wangzehua
重启
[root@wangzehua ~]#

临时改主机名:(c7和c6都可以用)
[root@oldboyedu ~]#hostname wangzehua
[root@oldboyedu ~]#cat /etc/hostname
wangzehua

13、/etc/inittab:设置开机运行级别以及启动相应级别脚本的文件(c7以前)

定义:linux系统运行级别当前处于的状态
linux系统运行级别的说明如下:
# 0 关机(请不要把系统运行级别设置为0)
# 1 单用户模式(root用户密码忘记,可用此模式找回)
# 2 没有nfs,多用户模式
# 3 命令行模式 文本模式(企业级服务器核心运行状态)
# 4 未使用
# 5 图形化模式 桌面模式 x11(桌面个人版系统运行状态)
# 6 重启(不要把系统运行级别设置为6)

查看当前运行级别:runlevel或who -r(c7)
[root@oldboyedu ~]# runlevel
n 3
[root@oldboyedu ~]# who -r
run-level 3 2019-07-20 09:55
切换运行级别:init

14、/etc/sysctl.conf linux内核参数信息文件-
调整linux系统、优化需要配置这个文件
sysctl -p:让修改后的文件生效

/usr目录:
1、/usr/local:源码编译安装软件默认的位置路径(用户存放自己安装的程序)
linux的软件安装:
1.rpm安装
rpm -ivh 软件包的包名.rpm
2.yum安装,rpm包管理器(智能安装帮我们找一个软件包需要的依赖包)
安装a,a需要b,先安装b
2、/usr/src:存放源码文件的目录

/var目录下存放的重要路径:
1、/var/log:记录系统及软件运行信息文件所在的目录
log日志信息就是记录计算机运行行为
/var/log/messages:linux系统级别日志文件
记录linux系统运行行为的文件,正常行为或非正常行为
[root@oldboyedu ~]# cat /var/log/messages

2、/var/log/secure(安全):用户登录信息日志文件(安全日志文件)
[root@oldboyedu ~]# cat /var/log/secure

3、/var/log/dmesg:记录硬件信息加载情况的日志文件

/proc目录下存放的重要路径:
1、/proc/meminfo:查看系统内容 free -m查看内容
[root@oldboyedu ~]# cat /proc/meminfo
2、/proc/cpuinfo:查看cpu
[root@oldboyedu ~]# cat /proc/cpuinfo
3、/proc/loadavg:查看负载(系统繁忙程度的一个综合指标)
[root@oldboyedu ~]# uptime
14:20:07 up 3:48, 2 users, load average: 0.00, 0.01, 0.05
当前时间 开机多久 哪些用户 负载 平均 1分钟 5分钟 15分钟
负载的数字和cpu核数相当的时候就是负载一个临界点,
例如:一颗两核 临界负载就是2,1分钟5分钟15分钟最大负载点就是2。
4、/proc/mounts:当前设备挂载列表信息文件

vi/vim:纯文本编辑器 vi:记事本

cat:查看文件内容 [root@oldboyedu /opt]# seq 30 >test.txt
cat -n:显示文件的行号 在test文件中生成30个数字

more:分页显示内容
less:分页显示内容(可以上下调节着看)

head:显示文件头部内容 (默认显示前10行) head test.txt
指定显示行数:head -n n test.txt
[root@oldboyedu /opt]# head -n 20 test.txt 指定显示前20行

tail:显示文件尾部内容 (默认显示后10行) tail test.txt
指定显示行数:tail -n n test.txt
[root@oldboyedu /opt]# tail -n 5 test.txt 指定显示后5行
tail -f:实时跟踪显示文件尾部的信息 tail -f test.txt

tac:翻转显示文件内容(和cat相反)
rev:字符左右翻转显示行的内容