Linux命令全称及目录结果

一、linux文件系统目录结构 Filesystem Hierarchy Standard(FHS)
/:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。   

/bin:bin 就是二进制(binary)英文缩写。在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录。   

/boot:Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。   

/cdrom:这个目录在刚刚安装系统的时候是空的。可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom   linux 7已无此目录

/dev:dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。   

/etc:etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。   

/home:如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。   

/lib:lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。   

/lost+found:在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。   linux 7已无此目录

/mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。   

/media:有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。   

/opt:这里主要存放那些可选的程序。   

/proc:可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。   

/root:Linux超级权限用户root的家目录。   

/sbin:这个目录是用来存放系统管理员的系统管理程序 System Binary。大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的,凡是目录sbin中包含的都是root权限才能执行的。   

/selinux :对SElinux的一些配置文件目录,SElinux可以让linux更加安全。   linux 7已无此目录  

/srv 服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中   

/sys :Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。   

/tmp:临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。   

/usr: (Unix System Resource) 这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具   

/usr/local:这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面。   

/usr/share :系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。   

/var:这个目录的内容是经常变动的,看名字就知道,可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/ www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地。[30]


二、linux常用命令全称
cal = CALendar calendar日历, 历法
cat = CATenate 连接, 使连续
cd = Change Directory
chgrp = CHange GRouP
chmod = CHange MODe
chown = CHange OWNer
chsh = CHange SHell
cmp = compare
cobra = Common Object Request Broker Architecture
comm = common
cp = CoPy
cpio = CoPy In and Out
cpp = C Pre Processor
cron = Chronos 希腊文时间
cups = Common Unix Printing System
cvs = Current Version System
daemon = Disk And Execution MONitor 这个词应该出现在计算机之前吧,挺有人缘的
dc = Desk Calculator
dd = Disk Dump
df = Disk Free
diff = DIFFerence
dmesg = diagnostic message
du = Disk Usage
ed = editor
egrep = Extended GREP
elf = Extensible Linking Format
elm = ELectronic Mail
emacs = Editor MACroS
eval = EVALuate
ex = EXtended
exec = EXECute
fd = file descriptors
fg = ForeGround
fgrep = Fixed GREP
Fish = the Friendly Interactive SHell
file = file 查看文件类型,是否是二进制等
fmt = format
fsck = File System ChecK
fstab = FileSystem TABle
fvwm = F*** Virtual Window Manager
gawk = GNU AWK
gcc = general public licence (GNU) compiler collection 编译程序会产生二进制a.out文件
gpg = GNU Privacy Guard
grep = Global search regular expression and print out line
groff = GNU troff
hal = Hardware Abstraction Layer
joe = Joe's Own Editor
ksh = Korn SHell
lame = Lame Ain't an MP3 Encoder
lex = LEXical analyser
lisp = LISt Processing = Lots of Irritating Superfluous Parentheses
ln = LiNk
lpr = Line PRint
ls = list
lsof = LiSt Open Files
m4 = Macro processor Version 4
make = make 
man = MANual pages 之前曾困惑过一段时间,被人笑话:多看man,少看woman
mawk = Mike Brennan's AWK
mc = Midnight Commander
MIME = Multipurpose Internet Mail Extensions
mkfs = MaKe FileSystem
mknod = MaKe NODe
motd = Message of The Day
mozilla = MOsaic GodZILLa
mtab = Mount TABle
mv = MoVe
nano = Nano's ANOther editor
nawk = New AWK
nl = Number of Lines
nm = names
nohup = No HangUP
nroff = New ROFF
od = Octal Dump
passwd = PASSWorD
pg = pager
pico = PIne's message COmposition editor
pine = "Program for Internet News & Email" = "Pine is not Elm"
ping = Packet InterNet Groper
pirntcap = PRINTer CAPability
popd = POP Directory
pr = pre
printf = PRINT Formatted
ps = Processes Status
pty = pseudo tty
pushd = PUSH Directory
pwd = Print Working Directory
rc = runcom = run command, rc还是plan9的shell
rev = REVerse
rm = ReMove
rn = Read News
roff = RunOFF
rpm = RPM Package Manager = RedHat Package Manager
rsh, rlogin, rvim中的r = Remote
rxvt = ouR XVT
seamoneky = 我
sed = Stream EDitor
seq = SEQuence
shar = SHell ARchive
slrn = S-Lang rn
ssh = Secure SHell
ssl = Secure Sockets Layer
stty = Set TTY
su = Substitute User 或 Switch User(前者较常见)
sudo = superuser / substitue user do 在ubuntu下更倾向于superuser,因为它代表了root权限
svn = SubVersioN
tar = Tape ARchive
tcsh = TENEX C shell
tee = T (T形水管接口)
telnet = TEminaL over Network
termcap = terminal capability
terminfo = terminal information
tex = τέχνη的缩写,希腊文art
tr = traslate
troff = Typesetter new ROFF
tsort = Topological SORT
tty = TeleTypewriter 电传打字机?没用过。不知道与ubuntu的text界面是怎么联系起来的。
twm = Tom's Window Manager
tz = TimeZone
udev = Userspace DEV
ulimit = User's LIMIT
umask = User's MASK
uniq = UNIQue
vi = VIsual = Very Inconvenient 后面的那个是别人附会的吧,不方便为什么会有那么多人用。不过像我等初学者确实用不惯,vim 稍微好一点。
vim = Vi IMproved
wall = write all
wc = Word Count
wine = WINE Is Not an Emulator 太搞了,和GNU's Not Unix有得一拼
xargs = eXtended ARGuments
xdm = X Display Manager
xlfd = X Logical Font Description
xmms = X Multimedia System
xrdb = X Resources DataBase
xwd = X Window Dump
yacc = yet another compiler compiler
pwd = Print work diretory


三、Linux系统部分重要信息
env:可以查看所有系统环境变量
/etc/passwd:用户配置文件;结果为 root:x:0:0:root:/root:/bin/bash  列解析为 注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 
/etc/shadow:用户口令配置文件;结果为 root:$6$1IAGwDKJoLmOUQcQ$a.nmQSXjchkABuSwttZyzKjWN.DUmvsfa22DPdJSmV4rnSgrmX5trOrTB9qz9UctV4ok6F2Dh/z2zE/At.Sp51::0:99999:7:::
  1、账户名称
  2、加密后的密码,如果这一栏的第一个字符为!或者*的话,说明这是一个不能登录的账户,从上面可以看出,ubuntu默认的就不启用root账户。
  3、最近改动密码的日期(这个是从1970年1月1日算起的总的天数)。
  4、密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制
  5、密码需要重新变更的天数:如果为99999则没有限制
  6、密码过期预警天数
  7、密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
  8、账号失效日期,过了这个日期账号就无法使用
  9、保留的
/etc/group:组配置文件;结果为 root:x:0:  列解析为 组名:口令:组标识号:组内用户列表
/etc/inittab:系统运行级别配置文件;  
    0:关机
    1:服务器出问题(单用户状态)
    2:无网络服务(NFS)的多用户模式
    3:完整的多用户模式
    4:无保留无使用
    5:桌面模式
    6:重新启动
    runlevel 和 systemctl get-default 都可查看当前运行级别; 
    systemctl set-default multi-user.target:设置为3,多用户级别,重启后生效
    systemctl set-default graphical.target:设置为5,图形化桌面模式,重启后生效
    chkconfig --level 4 network off/on  # 将network这个服务在(4:无保留无使用)级别关系自启动  #linux7.0之后,不再关心启动级别,chkconfig也将废除,systemctl默认控制就是3和5级别
/etc/profile:改变会涉及到系统的环境,里修改会对所有用户起作用。
/etc/fstab:磁盘挂载表,如果新增加磁盘,需要在此增加然后每次机器重启磁盘会自动挂载
/etc/sysconfig/network-scripts/ifcfg-ens33  #网卡配置文件  systemctl restart/status networks
    TYPE=Ethernet   # 网卡类型:为以太网
    PROXY_METHOD=none  # 代理方式:关闭状态
    BROWSER_ONLY=no   # 只是浏览器:否
    BOOTPROTO=static  # 网卡协议 DHCP 动态获取ip,static固定ip
    DEFROUTE=yes   # 默认路由:是
    IPV4_FAILURE_FATAL=no  # 是否开启IPV4致命错误检测:否 
    IPV6INIT=yes   # IPV6是否自动初始化: 是
    IPV6_AUTOCONF=yes  #IPV6是否自动配置:是
    IPV6_DEFROUTE=yes   #IPV6是否可以为默认路由:是(现在还未用到IPV6,不会有任何影响)
    IPV6_FAILURE_FATAL=no  #是否开启IPV6致命错误检测
    IPV6_ADDR_GEN_MODE=stable-privacy  #IPV6地址生成模型
    NAME=ens33   # 网卡名字(与DEVICE一致)
    UUID=238b3ec3-abc6-4f37-8750-9a157302c480  #唯一标识码
    DEVICE=ens33  #网卡设备名称,必须和‘NAME’值一样
    ONBOOT=yes  # 是否开机自动启动
    IPADDR=192.168.100.101  #ip地址(static设置)
    NETMASK=255.255.255.0  #子网掩码(static设置)  子网掩码,是为了掩盖住“网络号net_id”,暴露出“主机号host_id”
    GATEWAY=192.168.100.2  #网关(static设置)
    DNS1=8.8.8.8  #dns地址解析1
    DNS2=8.8.8.4  #dns地址解析2
/etc/hostname  #机器的主机名(修改后需重启)  hostnamectl set-hostname master(命令修改后不需重启即生效)  #linux6使用vim /etc/sysconfig/network修改主机名称;linux7使用vim /etc/hostname修改主机名称;
/etc/hosts  #配置主机名和ip地址对应关系,  ssh 或者ping 主机名时可以解析到对应的ip地址。 其实就是DNS解析
/etc/selinux/config #生产环境一般都关闭此安全策略  SELINUX=enforcing 改为 disabled
/etc/firewalld/firewalld.conf  #防火墙配置文件


四、Linux安装 (生产都选择最小安装,然后再安装其它工具)
1.一般安装时需要对 /boot(启动分区) /SWAP(交换分区)  /(跟目录分区) 三个进行单独分区
2.建议前期安装网络查看工具 yum -y install net-tools    (可以生成ifconfig、netstat、route、arp等命令,可以使用rpm -qail net-tools查看具体包含哪些命令)
3.建议前期安装vim工具 yum -y install vim

五、vi和vim的使用
yy:拷贝当前行,5yy拷贝5行
dd:删除当前行,5dd删除5行
/str:查找匹配str字符,n查找下一个,N查找上一个
?str:查找匹配str字符,n查找上一个,N查找下一个
set nu:在前面加行号
set nonu:在前面取消行号
gg:跳转到首行;5gg跳转到第5行
G:跳转到尾行;
u:撤销上一次更改
:q:推出
:wq:保存推出
:q!:强制推出

六、linux某些重要命令
less 和 more 建议使用less ,因为less每次只读当前屏幕数据,more读取所有数据(大文件会卡死)
cal:查看当前日历
cal 2021:显示2021年日历
date '+%Y%m%d %H%M%S':查看当前日期和时间
date -s '20210208 15:21:00' #设置当前时间
find /root/ -name 'anac*' :在/root/下查找anac开头的文件名
find /root/ -size +500M :查找大于 500M的文件
find /root/ -atime +10 :查找十天前的文件
which ls:查看ls指令在哪个目录
gzip,gunzip:只能压缩文件 , 不能压缩目录 ,后缀名为.gz , 而且不保留原文件 。 请都使用tar处理
bzip2,bunzip2:压缩(解压)文件,压缩文件后缀为.bz2  。 请都使用tar处理
zip,unzip:压缩(解压)文件,压缩文件后缀为.zip  。 请都使用tar处理
tar:压缩后格式为.gz; -c创建打包文件,-v显示详细信息,-f指定压缩后文件名,-z打包同时以.gz压缩,-j打包同时以.bz2压缩,-J打包同时以.xz压缩,-x解压,-C解压到哪个目录 (man tar 里面有lzip,lzma,lzop等多种压缩)
tar -czvf /root/test.tar.gz /root/anaconda-ks.cfg /root/anaconda-ks.cfg.20210208 /root/jdk1.8.0_271/*
tar -xzvf /root/test.tar.gz -C /opt/test #解压到指定目录中
[root@s2 ~]# du -ha --max-depth=1 /root  #展示/root目录下,当前深度为1所有目录占用大小情况,加-a不仅展示文件夹,还展示文件
    20K     /root/.ssh
    343M    /root/jdk1.8.0_271
    980M    /root/hadoop-2.10.1
    933M    /root/HA
    38M     /root/zookeeper-3.6.2
    70M     /root/kafka_2.13-2.7.0
    353M    /root/hbase-2.4.0
    261M    /root/spark-2.4.7
    3.1G    /root
[root@s2 ~]# ps -aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  1.5  0.6 128028  6624 ?        Ss   10:29   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    root          2  0.0  0.0      0     0 ?        S    10:29   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        S    10:29   0:00 [kworker/0:0]
    VSZ:占用虚拟内存大小(kb)
    RSS:占用物理内存大小(kb)
    TTY:使用的终端的名称
    STAT:进程运行状态; S:sleep;s:改进程是会话的先导进程;R:run;N:进程执行优先级很低;D短期等待;Z:僵死进程;T:被跟踪或者被停止
[root@s2 ~]# ps -ef #可以查看进程的父进程。 
    PID:当前进程的ID;
    PPID:父进程id;
[root@s2 ~]# top  #可以实时动态查询进程情况  -d 每隔10秒显式所有进程的资源占用情况,-c 带命令的参数,-p 只查看指定进程id,-i忽略闲置和僵死进程
top - 15:32:24 up  5:45,  1 user,  load average: 0.00, 0.01, 0.05   #系统时间,运行时间,终端登录数,系统负载情况,如果 (0.00 + 0.01 + 0.05) >= 0.7 则系统负载过大,要查看原因
Tasks:  97 total,   1 running,  96 sleeping,   0 stopped,   0 zombie  #僵死进程要注意定期清理
%Cpu(s):  0.0 us,  6.2 sy,  0.0 ni, 93.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st  #cpu使用情况;us用户占用,sy系统占用,ni用户进程空间内改变过优先级的进程占用,id空闲cpu,wa等待输入输出的CPU时间,如果此值过大,说明io太大,hi硬件中断,si软件中断,st实时情况
KiB Mem :   864600 total,   520708 free,   193332 used,   150560 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   531600 avail Mem
                
   PID USER PR优先级  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND   #NI:负值表示高优先级,正值表示低优先级; VIRT:进程使用的虚拟内存总量; RES:进程使用的、未被换出的物理内存大小,单位kb; SHR:共享内存大小,单位kb; S:进程状态(D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程)
  2293 root      20   0  162100   2192   1528 R  5.9  0.3   0:00.03 top
     1 root      20   0  128164   6760   4180 S  0.0  0.8   0:01.96 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
# P:cpu占用比排序显示;M:内存占用比排序显示;u:然后输入用户如mysql,此时只显示这个用户的进程;k:然后输入要杀死的进程pid,再输入9强制杀死
[root@s2 ~]# netstat -anpo #此命令最小安装没有
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     Timer #Proto:协议名;recv-Q:网络接收队列;send-Q:网路发送队列;State:LISTEN打开一个socket进行监听,ESTABLISHED打开的连接
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      941/sshd             off (0.00/0/0)
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1193/master          off (0.00/0/0)
tcp        0     36 192.168.100.103:22      192.168.100.100:52923   ESTABLISHED 1460/sshd: root@pts  on (0.22/0/0)
crontab 定时任务的基本格式为
    * * * * * [user-name] [command to be executed]
    第一个*表示分钟,用0~59表示,用*或者*/1表示每分钟;
    第二个*表示小时,用0~23表示,0表示0点,也即24点;
    第三个*表示日期,用0~31表示;
    第四个*表示月份,用1~12表示;
    第五个*表示星期,用0~6表示,0表示星期日;
    上面的五个参数中,都可以使用*表示每分钟、每小时、每天,每周。
    user-name 表示执行该命令的用户
    command表示要定时执行的内容


killall gedit  #可以杀死进程名称,支持正则表达式;最小安装没有此指令
pstree -up #查看进程树, -u 显示进程对应用户  -p显示进程号  最小安装没有此指令
systemctl list-unit-files #查看linux有哪些服务;  根据 systemd的Unit放在目录/usr/lib/systemd/system 目录内的文件列出所有的 unit。
systemctl list-unit-files |grep enable  #查看开机启动项
rm /etc/init.d/mysql.server  #删除开机启动项配置的服务
systemctl daemon-reload  #没有的服务拿掉刷新
每次修改/lib/systemd/system/jetty.service服务后,都需要执行systemctl daemon-reload来重载服务
chkconfig  --list  #部分开机启动可能在老版本中
systemctl list-units #和systemctl不加任务参数一样,列出当前已经启动的 unit,如果添加 -all 选项会同时列出没有启动的 unit
systemctl --type=service #列出有哪些对外的服务
systemctl --failed  #查看加载失败的服务, 管理员要定期检查
systemctl list-dependencies  #查看服务之间依赖关系
systemctl list-dependencies multi-user.target --reverse  # 查看multi-user.target被谁使用,如果不加--reverse则代表multi-user.target需要依赖哪些
setup # 以图形界面展示服务,  最小安装没有此指令
#在RHEL7系列中,默认使用firewalld作为防火墙,iptables默认是关闭的  systemctl list-unit-files | grep -E 'iptables|ip6tables|ebtables'
firewall-cmd --permanent --add-port=111/tcp 端口号/协议  #打开端口  可以使用 netstat -anp 查看端口对应协议
firewall-cmd --permanent --remove-port=端口号/协议  #关闭端口
firewall-cmd --reload  #重新载入才能生效
firewall-cmd --query-port=端口号/协议  #查询端口号是否开放
firewall-cmd --zone=public --list-ports # 展示哪些打开的端口
rpm -qail net-tools  #查看软件安装包的信息, i:详细安装信息,时间大小等;l:包含了哪些指令及文档等
rpm -qf /etc/passwd  #查询文件归属于哪个软件包
rpm -e --nodeps firefox #卸载软件包 erase,nodeps强制删除,使依赖的软件包可以失效
rpm -ivh xxxxx.rpm  #安装rpm软件包 i:install,v:verbose提示,h:hash进度条
rpm -Uvh xxxxx.rpm  #升级rpm软件包 U:update
yum list | grep firefox #查询yum服务器是否有需要安装的软件包
yum install firefox #安装软件 加-y 依赖包不提示直接安装
yum remove firefox #卸载软件
journalctl #查看内存中的日志


七、如何给linux增加 和 卸载磁盘
1.将磁盘插入到机柜的机器上,然后reboot重启机器(如果不重启可通过如下方法,只能是SCSI磁盘)   分区 ==》 格式化 ==》 挂载
2.查看主机总线号
[root@s2 ~]# ls /sys/class/scsi_host/
host0  host1  host2
3.重新扫描SCSI总线来添加设备(仅执行如下其中一条即可)
echo "- - -" > /sys/class/scsi_host/host0/scan  
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
4.查看磁盘是否挂载上
fdisk -l
5.给新挂载磁盘分区
fdisk /dev/sdb  # n新增 p主分区  w保存推出
6.查看分区是否成功
fdisk -l
7.格式化新分区,生成uuid   #总结,后期应该只使用 xfs(大数据,大文件) 和 ext4 文件格式
mkfs -t xfs /dev/sdb1 
8.查看格式化后的分区情况
[root@s2 ~]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda
├─sda1          xfs                         346bed53-1596-49d7-bb41-6fadd6072ff0   /boot
└─sda2          LVM2_member                 uUANC0-VzO8-kUPx-aqGc-kSYO-C3YE-tsoTNl
  ├─centos-root xfs                         baede7d5-d5a9-44cb-8c65-97026a7ede24   /
  └─centos-swap swap                        c3d7f702-0493-4024-84a5-8b50d9c2845c   [SWAP]
sdb
└─sdb1          xfs                         5cbf384f-ece1-4f03-b301-a7ee7ec2dd3e   /mnt/xxx  #mount后此处会有值
sr0             iso9660     CentOS 7 x86_64 2020-11-04-11-36-43-00
9.挂载磁盘到系统
mount /dev/sdb1 /mnt/newdisk   #重启后挂载会丢失
10.永久磁盘自动挂载
vi /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=346bed53-1596-49d7-bb41-6fadd6072ff0 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1               /mnt/newdisk            xfs     defaults        0 0

卸载磁盘
1. umount /dev/sdb1
2.vi /etc/fstab  删除要挂载磁盘
3.fdisk -/dev/sdb  # d删除磁盘分区
4.移除磁盘
5.查看分区挂载情况 lsblk -f
6.查看磁盘是否移除 fdisk -l

八、shell编程
set 用来显示本地变量, 环境变量,可以设置变量,unset取消设置的变量
env 用来显示环境变量
export 用来显示和设置环境变量
echo $SHELL:当前系统默认使用的shell语言
bash /root/study/test.sh  #不需要执行权限,bash或者sh(默认使用的shell语言)帮你执行
./root/study/test.sh  #需要执行人权限
\cp anaconda-ks.cfg anaconda-ks.cfg.20210208:在cp前加反斜杠,复制时如果文件存在则不提示是否覆盖,而直接覆盖
VAR1=`date`  #将执行返回结构给var1, 和 VAR1=$(date) 等价
位置参数变量
    $n:n为数字,$0代表命令本身,$1-$9代表带一个到第九个参数,十以上的参数需要使用大括号表示,比如${10}
    $*:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
    $@:这个变量也代表命令行中所有的参数,是把每个参数却分对待
    $#:这个变量代表命令行中所有参数的个数
    $$: 脚本执行的进程id
    $?: 上一条命令执行后的状态,结果为0表示执行正常,结果为1表示执行异常;
    $!: Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID号)
for语句、while语句、if语句、case语句
read (选项) (参数)
选项:-p:给出提示符。-s:静默模式。输入的内容不会回显在屏幕上。-t:给出超时时间,在达到超时时间时,read退出并返回错误。
参数:去读的变量名

while read line
do
eval export $line
done < $WORKDIR/cjzq.cfg

常用函数
basename:返回路径信息中的文件名部分
dirname:返回路径信息中的路径信息部分

九、系统日志每天定期检查
系统服务进程 rsyslogd 通过配置文件 /etc/rsyslog.conf 来输出指定的日志
自定义所有输出日志到某个固定文件
*.*           /var/log/myall.log   #其中第一个*代表日志类型,第二个*代表日志级别
日志类型:
    auth               ##pam产生的日志
    authpriv             ##ssh、ftp等登录信息的验证信息
    corn                ##时间任务相关
    kern               ##内核
    lpr                ##打印
    mail                 ##邮件
    mark(syslog)-rsyslog ##服务内部的信息,时间标识
    news               ##新闻组
    user               ##用户程序产生的相关信息
    uucp               ##unix  to  nuix  copy主机之间相关的通信
    local  1-7           ##自定义的日志设备
日志级别分为:注意:从上到下,级别从低到高,记录信息越来越少
    debug    ##有调试信息的,日志通信最多
    info    ##一般信息日志,最常用
   notice   ##最具有重要性的普通条件的信息
   warning   ##警告级别
   err     ##错误级别,阻止某个功能或者模块不能正常工作的信息
    crit    ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
    alert    ##需要立刻修改的信息
    emerg    ##内核崩溃等重要信息
    none     ##什么都不记录 

/var/log/messages    包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,sftp,kern和auth等内容也记录在var/log/messages日志中。
/var/log/yum.log    包含使用yum安装的软件包信息。
/var/log/cron    每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
/var/log/dmesg    包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。
/var/log/auth.log    包含系统授权信息,包括用户登录和使用的权限机制等。
/var/log/boot.log    包含系统启动时的日志。
/var/log/daemon.log    包含各种系统后台守护进程日志信息。
/var/log/dpkg.log    包括安装或dpkg命令清除软件包的日志。
/var/log/kern.log    包含内核产生的日志,有助于在定制内核时解决问题。
/var/log/lastlog    记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。
/var/log/maillog /var/log/mail.log    包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
/var/log/user.log    记录所有等级用户信息的日志。
/var/log/Xorg.x.log    来自X的日志信息。
/var/log/alternatives.log    更新替代信息都记录在这个文件中。
/var/log/btmp    记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp
/var/log/cups    涉及所有打印信息的日志。
/var/log/anaconda.log    在安装Linux时,所有安装信息都储存在这个文件中。
/var/log/secure    包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
/var/log/wtmp或/var/log/utmp    包含登录信息。使用wtmp可以找出谁正在登陆进入系统,w/who/users等命令显示这个文件或信息等。
/var/log/faillog    包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

每天写日志,当上述日志太大后,通过 /etc/logrotate.conf 配置文件 或者  单独对某个文件进行轮替规则/etc/logrotated 目录下所有日志轮替配置文件,使日志论题进行删除
配置参数                     功能说明
compress                    #通过gzip,压缩转储以后的日志
nocompress                   #不需要压缩时,用这个参数
copytruncate                 #用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate               #备份日志文件但是不截断
create mode owner group     #转储文件,使用指定的文件模式创建新的日志文件
nocreate                    #不建立新的日志文件
delaycompress 和 compress   #一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress             #覆盖delaycompress 选项,转储同时压缩。
errors address              #专储时的错误信息发送到指定的Email 地址
ifempty                     #即使是空文件也转储,这个是 logrotate 的缺省选项。
notifempty                  #如果是空文件的话,不转储
mail address                #把转储的日志文件发送到指定的E-mail 地址
nomail                      #转储时不发送日志文件
olddir directory            #转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir                    #转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript         #在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript        #在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily                       #指定转储周期为每天
weekly                      #指定转储周期为每周
monthly                     #指定转储周期为每月
rotate count                #指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
size(或minsize)            #size当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem)

案例
  weekly                       #默认每周执行一次日志轮询
  rotate 4                     #默认保留4个日志文件
  create                       #自动创建新的日志文件,新的文件和原来的文件具有相同的权限
  dateext                      #日志切割后,文件以当前日志为结尾,例如:messages-20181125
  include /etc/logrotate.d     #将/etc/logrotate.d目录中的配置文件加载进来

  /var/log/wtmp {              #针对wtmp日志的配置参数
      monthly                  #每月切割一次
      create 0664 root utmp    #新建日志的权限为0644,属主为root,属组为utmp
      minsize 1M               #文件大小超过1M后才会切割
      rotate 1                 #只保留1个日志文件
  }

十、备份与恢复
yum -y install dump  #安装后就包含 dump 和restore ,只能对ext2,ext3,ext4文件系统的备份,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件
yum -y install xfsdump  #安装后就包含 xfsdump 和xfsrestore ,只能对 xfs文件系统的备份,且只能备份dh -TH 展示的整个分区

十一、其它
1.可视化管理工具: webmin和bt宝塔
2.cat test.txt | cut -d '/' -f 3 | sort | uniq -c | sort -nr
3.netstat -an | grep -E 'LISTEN|ESTABLISHED' | grep -Ev 'LISTENING' | awk -F ' ' '{print $4}' | cut -d ':' -f 1 | grep -v '^$' | sort | uniq -c | head -2
r:读  +  目录可查看ls
w: 写  +  目录内可增删
x: 执行+  目录可进入cd
iotop #需要安装,查看系统io情况
cat t2.txt | awk -F ' ' '{sum+=$2; print $2} END {print sum}'
grep -r "hadoop" /root/zookeeper-3.6.2/ #查看此目录下哪些文件中有hadoop内容
find /home/test -name '*.*' | wc -l  #统计目录下文件的个数
find /home/test -name '*.*' | xargs wc -l  #统计目录下每个文件的行数

ntp nptdate服务器时间同步规则,新使用chronyd来同步时间
chronyc sources  #查看同步时间源
chronyc tracking  #校准时间器情况

yum源的配置
vim /etc/yum.repos.d/local.repo  #新建一个源
[RHEL6] //仓库名称,可随意
name=all rhel6 packages //名称,可随意
baseurl=file:///mnt/dvd //源路径,很重要,根据你的实际情况进行填写
gpgcheck=0 //不开启检查
enable=1 //启用本yum源

/etc/pam.d/login  
session    required     /lib64/security/pam_limits.so    #增加此语句是对 /etc/security/limits.conf 配置生效  

/etc/security/limits.conf   # 可以使用 ulimit -u  查看限制
#<domain>      <type>  <item>         <value>
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
第一列表示用户和组(@开头)。第二列表示软限制还是硬限制,第三列表示限制的资源类型,第四列表示限制的最大值
hard和soft的区别: soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错。
core是内核文件,nofile是文件描述符(nofile数量不能设置大于/proc/sys/fs/nr_open的值,否则无法登录),noproc是进程(sysctl kernel.pid_max全局proc最大值),一般情况下只限制文件描述符数和进程数就够了
[root@master security]# cat /proc/sys/fs/file-nr
1088(已打开文件数)    0(已不再使用)       91643(最大可打开数)

/etc/sysctl.conf 内核参数优化  sysctl –p 使其生效,具体修改参数请百度。  网上有如何设置最优参数按理,依靠自己机器性能设置

linux 资源监控配置 内存,cpu,io,网络 nmon安装与使用

配置重要文件备份策略
完全备份
    优点:备份的数据最全面、最完整。恢复快,当发生数据丢失的灾难时,只要用一盘磁带就可以恢复全部的数据。
    缺点:数据量非常大,占用备份的磁带设备比较多,备份时间比较长。
增量备份
    优点:备份速度快,没有重复的备份数据,节省磁带空间,又缩短了备份时间。
    缺点:恢复时间长。如果系统在星期四的早晨发生故障,管理员需要找出从星期一到星期三的备份磁带进行系统恢复。各磁带间的关系就像链子一样,一环套一环,其中任何一盘磁带出了问题,都会导致整条链子脱节。
差分备份:合成完全备份从物理资源(磁带、磁带驱动器和带宽)和时间来看消耗很大,但是简化了恢复过程。

• /etc 包含所有核心配置文件。这其中包括网络配置、系统名称、防火墙规则、用户、组,以及其他全局系统项。
• /var 包含系统守护进程(服务)所使用的信息,包括 DNS 配置、DHCP 租期、邮件缓冲文件、HTTP 服务器文件、db2 实例配置,等等。
• /home 包含所有用户的默认用户主目录。这包括他们的个人设置、已下载的文件和用户不希望失去的其他信息。
• /root 是根(root)用户的主目录。
• /opt 是安装许多非系统文件的地方。IBM 软件就安装在这里。OpenOffice、JDK 和其他软件在默认情况下也安装在这里。


问题1
● kdump.service loaded failed failed Crash recovery kernel arming
vi /etc/default/grub  增加如下内容
GRUB_CMDLINE_LINUX_DEFAULT="crashkernel=64M"
生成新的grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
重启 reboot 
此服务测试环境可以直接禁用


应用层:app应用http,ssh,sftp,dns等生态应用
传输层:建立端口到端口的通信。端口范围0-65535,0-1023为系统占用。tcp,udp等传输协议(三次握手连接:开辟资源 + 发送数据 + 四次分手:释放资源),其中有socket字节套(ip+端口)防止不同app服务之间传输不受干扰
网络层:由ip找路由,找目标机器。可区分不同广播域/子网  路由器、三层交换机
链路层:由mac找机器,对二进制数据进行分组,帧头head和数据data   网卡、以太网交换机
物理层:01010101开头 + 电压(ip+端口 + mac + 内容) + 0101010101 传输二进制数据。  双绞线、集线器、中继器


raid原理及配置
RAID级别    硬盘数量    磁盘利用率    是否有校验    保护能力                读写性能
RAID0        N            100%        无            无                        单个硬盘的N倍(最好)
RAID1        N(偶数)    50%            无            允许一个设备故障        读和单个硬盘无分别,写则要写两边
RAID5        N>=3        (N-1)/N        有            允许一个设备故障        读和RAID0近似,写<单个硬盘
RAID6        N>=4        (N-2)/N        有            允许两个设备故障        读写都近似与RAID5,写入<RAID5
RAID10        N>=4(偶数)50%            无            允许两个基组中各坏一个    读=RAID0,写=RAID1

LVM是 Logical Volume Manager(逻辑卷管理)的简写, LVM是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理
PE(Physical Extend) 物理拓展
PV(Physical Volume) 物理卷
VG(Volume Group) 卷组
LV(Logical Volume) 逻辑卷 


mysql集群模式安装 + mysql_router
oracle RAC安装 + oracle goldengate安装 + oracle 19c data guard尝试
docker

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值