linux book 已迁移至语雀

已迁移至语雀 20220725 https://www.yuque.com/puredream/windsnow/linux_book

安装

CentOS 7系统安装配置图解教程==>https://www.cnblogs.com/yaohong/p/7240387.html

 

简单小命令

echo 'abc' > a.out  重写a.out中a文件为abc内容    

echo 'abc' >> a.out  追加a.out中a文件为abc内容   echo -e 命令详解==>https://www.cnblogs.com/karl-python/p/9261920.html     (补充: gitbash命令行中使用 echo -e 'abc\r' >> a.out 即可实现\r\n,因为\n会自动添加)

 

wget 下载命令

#下载免https认证
wget url  --no-check-certificate     
 
#下载并重命名
wget -O filename url   


 
#断点续传
wget -c url
 
#后台下载
wget -b url

如果是https则需要使用--no-check-certificate

wget  --no-check-certificate -b  https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.10.14-ce.0.el6.x86_64.rpm
#查看进度
tail -f wget-log
 
#下载多个文件
cat filelist.txt
url1
url2
wget -i filelist.txt

 

 

 

nc命令批量检测网络是否申通

test.txt

www.baidu.com                80
www.cnblogs.com                443

test.sh

cat ./test.txt |                while read line
do
  nc -w                1 $line &               1
  if [ $? -eq                0 ]
  then
    echo                $line ok
  else
    echo                $line fail
  fi
done

 

 chmod  +x test.sh

./test.sh

 

 

#cat /proc/version 查看Linux版本
#startX  切换图型界面
#shutdown -h now  关机
#shutdown -r now  重启(或者#reboot)
#pwd  当前目录

 

 参考:http://www.cnblogs.com/ngnetboy/archive/2012/10/08/2715555.html

$ls -a  显示隐藏目录
$ls -l  显示长列表目录
$ls -lrt  long:长列表  reverse:逆序  time:时间
$ls -lht  显示当前目录下所有文件大小
$ls -Slhr  Size:文件大小 long:长列表 human:人类的理解  reverse:逆序
$du -hs download  查看download目录大小 (不显示子目录和子文件)
$du -h   download    查看download目录及子目录大小
$du -ha download  查看download目录及所有子目录和所有子文件
$du -ha download --max-depth=1 查看download目录及一级子目录大小
$df -h  查看磁盘状态
$df -k 或 df -m 查看分区被哪些文件夹关联着

cp -r srcDir destDir  复制srcDir目录及其下所有内容到destDir目录下   举例: cp -r /home/king/srcDir  /home/king/destDir

cp -a srcDir destDir  复制srcDir目录及其下所有内容到destDir目录下   举例: cp -r /home/king/srcDir  /home/king/destDir

 

mk dir  建目录
mkdir -p project/{a,b,c,d}/src  -p 建多层目录 , {a,b,c,d}建多个文件夹
rm dir  删除文件及目录 

rm -r dir  移除目录及其它所有内容
rm -rf dir  删除文件及目录(子文件也一起删 -r 递归   -f 强制 )

mv dir  移动文件和改文件名  

  • 改文件 | 举例: mv old.txt new.txt
  • 移动 | 把srcDir目录及其下所有内容移动到king目录下,在king目录下生成/king/srcDir 举例: mv  /home/king/srcDir  /home/king/
  • 移动 | 把当前目录下多个目录移动到King目录下,在king目录下生成/king/aDir /king/bDir 举例: mv  ./aDir ./bDir /home/king/

 

kill -9 pid 强制杀死某一进程
kill -9 pid1 pid2 pid3 pid4 强制杀死某一批进程 

 

touch a.txt   建空文件
more a.txt  空格下下翻页

 

tar -cvf  etcBak.tar etc/        打包etc (不压缩)
tar -xvf etcBak.tar      -C /tmp      解tar包的内容到/tmp目录

tar cvzf etcBak.tar.gz etc/    打包压缩一个 tar (压缩)
tar zxvf etcBak.tar.gz -C /tmp      解压缩tar包的内容到/tmp目录

tar 带不带z参数要看那个包是不是 gz结尾的 , z是压缩的意思

rename test1.txt test.txt test1.txt   

 `原字符串:将文件度名问需要替换的字符串;
目标字符串:将文件名中含有的原字符替换成目标字符串;
文件:指定要改变文答件名的文件列表。`

 

 

 

 

 

 

grep 技巧:

ps -ef |grep webAppName | grep -v grep | awk '{print $2;}'  取webAppName进程pid (高频)         (grep -v grep 为了去除包含grep的进程行 ,避免影响最终数据的正确性 )

grep -nr "main" dir 查找dir下的所有文件,并查出"main"关键字所在的行
ps -ef|grep weblogic  ps -ef 是查看所有的进程的 然后用grep筛选出你要的weblogic的信息,  |为管道命令,即把前一个结果集交给|后面的命令去处理

ps -aux | grep java     ps -aux 是查看所有java进程的信息,包括cpu占用,内存开销

ps aux --sort -rss  查看内存/ cpu占用排行榜   (使用ps  aux  查看系统进程时,第六列即 RSS列显示的就是进程使用的物理内存)    http://t.zoukankan.com/gaoyuechen-p-7999076.html

grep -C 2 "patternWord" file.txt 查到 patternWord 所在行的前后2行一起显示.

ifconfig | grep -C 2 "Link encap" 查到 Link encap 所在行的前后2行一起显示.

grep -c beauty server.log 查看beauty字符串在server.log中出现次数

grep -o 'beauty' server.log | wc -l   查看beauty字符串在server.log中出现次数,同上(-o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出。这样只要统计输出的行数就可以知道这个字符出现的次数了。)

grep "#" -v httpd.conf > ./result.txt 查找httpd.conf中无#号的行,并把结果输出到result.txt中 (-v 代表不包含)   ( ps -ef | grep 

 

查看进程的安装目录或启动位置,如查看redis的启动文件位置

先用 ps -ef |grep redis后得到 pid , 再用 ls -l /proc/pid/cwd

linux中grep命令的用法==>https://www.cnblogs.com/flyor/p/6411140.html 

 

awk技巧:

Linux awk==>https://www.cnblogs.com/virgosnail/p/11103651.html

awk基础三语法

  • awk '{ action }' {filenames}
  • awk '{ pattern + action }' {filenames}
  • awk -F '分隔符' { action }
awk '{print $0}' /etc/passwd    //输出每一行内容
awk '{print "a"}' /etc/passwd    //输出相同行数的行,一行只有一个a字母
awk -F":" '{print $1}' /etc/passwd    //输出每一行的第一个字段,分行输出
awk -F: '{print $1; print $2}' /etc/passwd    //将每一行的前二个字段,分行输出,进一步理解一行一行处理文本
awk -F: '{print $1,$3,$6}' OFS="\t" /etc/passwd    //输出字段1,3,6,以制表符作为分隔符

 

 

cat /etc/passwd  查看有哪些用户

 我的生产常用语句 : 

抓取keyword前后100后,合计200行 grep -C 100 "keywork" server1_2016-12-09.out
从out.log尾向前1000行处,使用翻页往后翻 tail -n 1000  out.log |more -100
从头向尾查询指定关键字的搜索方式 执行命令:         vi  nohup.out
输入以下回车:      /error
按n查找下一个,按N(大写)查找上一个

 


curl http://kingtool.top/kingtool/httptest?a=1&b=2
通过get方式获取返回报文 (curl -I url ,只提取返回中的head信息显示到console)

curl -X post http://kingtool.top/kingtool/httptest?a=1  通过post方式获取返回报文

curl http://mywebsite.com/index.php?a=1&b=2&c=3

curl 的用法指南==>http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

 

 

$_GET只能获取到参数a , 由于url中有&,其他参数获取不到,在linux系统中& 会使进程系统后台运行 必须对&进行下转义才能$_GET获取到所有参数  curl http://kingtool.top/kingtool/httptest?a=1\&b=2

alias bobo='ll'    设置一个别名叫bobo,可以直接执行   (alias -p  查看所有别名) 参考:   Linux系统设置命令别名==》https://blog.csdn.net/zyz511919766/article/details/22664745

# 新建/etc/profile.d/alias.sh脚本,
# source /etc/profile 更新配置 ,
# 更新成功后 , 会自动设置别名 ,为arthas起别名,方便直接使用arthas,arthas2,arthas3命令启动
alias arthas='java -jar /data/arthas/arthas-boot.jar'
alias arthas2='java -jar /data/arthas/arthas-boot.jar --telnet-port 22201 --http-port -1'
alias arthas3='java -jar /data/arthas/arthas-boot.jar --telnet-port 22202 --http-port -1'

 

alias 显示系统当前定义的所有alias 

 在.bashrc尾部配置

alias kingsls='ls -lrt' 给ls -lrt设置别名为kingsls,这样直接输入kingsls就可达到ls -lrt效果

以下为启动base_domain的start_weblogic别名,特别方便

alias start_weblogic='nohup /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/startWebLogic.sh > $HOME/start_weblogic.nohup 2>&1 &'

 

 

生产日志维护

 

分割

大文件分割,每个分割文件1024m (1g)

split -b 10m  -d large_file.log new_file_prefix

 

 

压缩

zip  target.zip  src.log

zip -r   target.zip ./*     #将当前目录下的所有文件和文件夹全部压缩成target.zip文件,-r表示递归压缩子目录下所有文件
unzip -d /data/target src.zip     #把src.zip文件解压到 /data/target/ 目录

 

 

我的高频分割/压缩语句

#打印将当前目录下的文件分割成1024M等分的语句
ls | awk '{print " split -d -b 1024M " $1 " " $1 "_" }'

#打印将当前目录下的所有文件压缩的语句
ls | awk '{print " zip -r " $1 ".zip " $1 }'

 

 

Linux常用指令---tar | zip (解压缩)

 

 

 

 

curl 发送POST请求

curl -X POST    \
     -H "Content-Type: application/json"  \
     -d '{"versionNum": 1}'      "http://com.xxx.com:10000/api/getPerson"    

 



 

 修改主机名和映射

修改hostname,修改映射,重启三步骤即可

[root@localhost ~]#vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=virtualboxlinux2

[root@localhost ~]#vi /etc/hosts
127.0.0.1   localhost virtualboxlinux2 localhost4 localhost4.localdomain4
::1         localhost virtualboxlinux2 localhost6 localhost6.localdomain6
[root@localhost ~]#reboot

 

service  network  restart  重启网络服务

 

Linux软连接和硬连接--https://www.cnblogs.com/413xiaol/p/6986473.html

ln 源 目标 ( ln  /test/src.conf  dest.conf 即在当前目录创建了dest.conf 硬链接文件, 源和目标必须是文件 ,所有硬链接被删后文件真从磁盘删除 ) 

ln -s 源 目标 ( ln -s /etc/inittab inittab 即在当前目录创建了inittab软链接文件, 源和目标也可以是文件夹, 软链接相当于windows快捷方式  ) 

 

 

find /home/bobo/ -name a.txt  查找指定目录下的文件名    (Linux查找匹配操作(find、grep)==>https://www.pianshen.com/article/6671523577/)
find /home/bobo/ -amin -10  查找指定目录下10分钟内存取的目录或文件 find链接
find /home/bobo/ -cmin -10  查找指定目录下10分钟内修改的目录或文件
find /home/bobo/ -size +10k 查找指定目录下大于10k的文件 

mk 两下tab  命令补全,把以mk打头的命令全列出来

ifconfig  查看本机ip (注意不是 ipconfig )
service network restart  重启网络

man(manual) = windows的help       举例: man grep

 

 

last -a 查看最近登录成功用户的ip

lastb -a 查看最近登录失败的用户的ip

 

chomd命令

chmod a=rwx file 和chmod 777 file效果相同
chmod ug=rwx,o=x file和chmod 771 file效果相同
综上chmod +x 是将文件状态改为可执行,而chmod 777 是改变文件读写权限。

 

用户和组命令

ls -ahl  查看文件的所有组(谁创建,谁就是所有者)

chown userName fileName  改变该文件的拥有者
chown userName ./abc  改变abc这个目录的所有者
chown -R userName ./abc  改变abc及其子目录的所有者
chown -R userName:groupName abc 改变abc及其子目录的所有者及组
usermod -g groupName userName  改变用户所有组
usermod -d defaultDirectory userName  改变用户登录时的默认目录

linux强制踢出已登录的用户==>https://www.cnblogs.com/asif/p/4930229.html                   pkill -kill -t pts/1

 

#groupadd groupName  添加组
#groupdel groupName  删除组
#chgrp groupName fileName 修改文件所在组

#useradd -g groupName userName  添加用户到指定组
#passwd  king  // 之后直接新增or修改密码
#userdel -r king  删除用户及目录

cat /etc/group  查看linux所有组后展示如下:

groupName:x:503 其中503代表组号,x即为加密密码

 

cat /etc/passwd  查看linux所有用户后展示如下: userName:x:505:504: :/home/userName:/bin/bash

用户名 密码 用户id 组id 注释 用户根目录 shell解析器
username x 505 605   /home/userName /bin/bash

-rwxrw-r-- 1 userName groupName 1213 Feb 2 09:39 abc.txt

-rwxrw-r-- 1 userName groupName 1213 Feb 2 09:39 abc.txt
权限 连接文件数     文件大小 最后修改时间 文件名

-rwxrw-r--解释:

- rwx rw- r--
文件类型 文件所有者的权限 文件所在组的权限 其它组的权限
-文件 r=100=4代表可读    
d文件夹 w=010=2代表可写    
l链接 x=001=1代表可执行    

chmod 700 filename  意为改变该目录的权限为 只有当前用户有读写执行权限,用户所在组及其它组都没有权限.

sudo

sudo (super user do) 

直接输入 visudo 命令,  即可修改Suderos文件以允许哪些用户可以执行sudo操作, 至于  Suderos 文件在哪无须关心

username ALL=(ALL) ALL //为用户"username"授予sudo访问权
%wheel ALL=(ALL) ALL //为属于wheel用户组的所有用户授予sudo访问权

 之后就可以使用"username"用户执行 sudo reboot 等需要管理员权限的操作了

top命令 

关于top命令中的排序:top命令里面按下f或F,在通过箭头移动想要显示或者排序的列,按d表示显示或取消显示,按下s表示按此列排序,按下R表示翻转排序顺序 , 按q退出。

top和ps一样都用于展示当前的进程状况.差异在于top可隔一段时间刷新进程结果

top -b 显示所有进程

top -d 10  每隔10秒刷新进程

命令 说明
top+enter之后输入c 可列出所有进程的启动命令
top+enter之后输入u+用户名 可只列出指定用户的进程
top+enter之后输入k+pid  可杀死指定pid的进程
top+enter之后输入1 显示所有cpu占用百分比列表
top+enter之后输入f 可配置显示列
shift+p 按cpu排序 按cpu排序
shift+m 按memory排序 按memory排序
top 之后 按E 可切换显示单位 (高频使用为 top | m | e )
   

 

top -H -p "PID"   查看某个进程内部线程占用情况分析    (Linux top命令中CPU信息的详解(转)==>https://www.cnblogs.com/ajianbeyourself/p/8185973.html)

 

 

那么怎么判断当前内存使用情况出现了异常呢?有下面几点供参考:

Mem free的值比较小,并且buff/cache的值也小
free的值比较少并不一定代表有问题,因为Linux会尽可能多的将内存用于page cache,但是如果buff/cache的值也小,就说明内存吃紧了,系统没有足够多的内存用于cache,如果当前服务器部署是一个需要频繁的读写磁盘的应用,如FTP服务器,那么对性能的影响将会非常大。

Swap used的值比较大,
这种情况比上面的更严重,正常情况下swap应该很少被使用,used值比较大说明交换空间被使用的比较多,如果通过vmstat命令看到swap in/out的比较频繁的话,说明系统内存严重不足,整体性能已经受到严重影响

Linux内存管理==>https://segmentfault.com/a/1190000008125006

 

 

lsof安装与使用

yum install lsof 后 ,使用lsof查看进程占用文件

lsof -p "PID" 查看进程使用了哪些相关文件         (list open files是一个列出当前系统打开文件的工具)

 

 

netstat命令

Linux netstat命令详解

显示网络状况,如目前连接,数据包传递,路由表内容等

netstat -an 按一定顺序排显示网络结果
netstat -anp 把网络结果和pid一并展示出来 (windows使用 netstat -ano可以显示PID)
netstat -ant|grep ESTABLISHED|wc -l  当前并发的连接数 (注意该命令netstat -ant 在windows和linux下通用)
netstat -lnp|grep 80 查看哪此程序占用着80端口

ulimit -a 查看最大open files等限制

 

vmstat -s 显示实时的和平均的统计,覆盖CPU、内存、I/O等内容

 

 

 

 

1、查看发包的端口
netstat -tu -c          -c代表每隔一定时间获取
2、查看端口的进程
netstat -tunlp|grep 端口号
lsof -i:端口
3、根据进程查看执行路径
ls -l /proc/6044
4、杀掉进程
kill -9 pid

 

 

 

 

启停java服务脚本

(启停脚本)

start.sh

serverName=order-service
version=0.0.1-SNAPSHOT

ps -ef |grep $serverName
nohup java  -Xms256m -Xmx512m -jar $serverName-$version.jar --spring.profiles.active=test 2>&1 &
tail -f nohup.out

stop.sh

serverName=order-service

APP_PID=`ps -ef |grep $serverName|grep -v grep | awk '{print $2;}'`
echo "APP_PID is :"$APP_PID

if [[ -n $APP_PID ]];then
	echo "execute command | kill -9 "$APP_PID
	kill -9 $APP_PID
	appPid2=`ps -ef |grep $serverName|grep -v grep | awk '{print $2;}'`
echo "after kill -9 action , the appPid is :"$appPid2
fi

 

 

 

 

 

route命令

route 查看路由信息(路由是指将数据从源到目录地的网络操作,只要记住哪个路由器都有一张路由表,记录着转发规则)

traceroute www.baidu.com 用来检测数据包到百度网 在网络上的传输过程. (可追踪路由)

 

iptables命令

使用 curl -L ip.tool.lu 查看本机ip , ip.tool.lu为在线互联网服务

如果iptables不起作用,可以偿试/sbin/iptables 

自己的iptable相关篇: 用防火墙iptables配置指定IP才能访问redis服务

iptables详解    iptables用法简介    关于iptables添加规则不生效的问题

  • 只允许IP为192.168.0.1到192.168.0.255的 IP 能访问redis服务,我的win10 所在IP为192.168.0.45
  • 其它所有IP禁止访问6379到6399端口
  • 保存IP 策略,让重启以后也能生效
  • 查看iptables规则
[root@localhost bin]#iptables -I INPUT -s 192.168.0.1/192.168.0.255 -p tcp --dport 6379:6399 -j ACCEPT
[root@localhost bin]#iptables -A INPUT -p tcp --dport 6379:6399 -j REJECT
[root@localhost bin]#service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
[root@localhost bin]#service iptables status

部分参数解释  -I : 添加到头部      -A: 添加到尾部

因为规则是按从头到尾匹配优先级执行的,所以 REJECT要追加到尾部,从而让ACCEPT先匹配,不然会导致Connection 问题

 

http://blog.csdn.net/chiuse/article/details/54019630

http://www.cnblogs.com/meiyu2016/p/5932409.html

 

其它不常用命令

ls -lR /home/centos/tool/redis-3.2.4 |grep "^-"|wc -l  统计文件夹 /home/centos/tool/redis-3.2.4 下文件的个数,包括子文件夹里的

cal 2016 查看2016年的月历
l
scpu 查看cpu配置
hostname 查看主机名

 

运行级别

1.  单用户--只有1级别户启动时忽视inittab文件加载
3.  多用户有网
5.  图型界面

修改系统启动时的运行级别  /etc/inittab 中有一行 id:5:init default: (修改红色字体即可)

如果进不了系统,就切单用户去修改一些文件. 在系统启动时按e,选第二启动项,在root=LABEL=/后面输入"空格1" 就能进入单用户模式. (有时候未必出现root=LABEL=/ ,直接在未尾加"空格1"也行)

runlevel 查看当前运行级别
Linux系统启动过程如下:
a) BIOS自检
b) 启动GRUB/LILO
c) 运行LINUX内核并检测硬件
d) 运行系统的第一个进程
e) init 读取系统引导配置文件/etc/inittab进行初始化
f) /etc/rc.d/rc.sysinit系统初始化脚本 (rc.d是runlevel control directory的缩写)
g) /etc/rc.d/rcX.d/[KS]* -根据运行级别X配置服务
终止以"K"开头的服务
启动以"S"开头的服务
h) /etc/rc.d/rc.local 执行本地特殊配置
i) 其它特殊服务

linux桥接联网配置

桥接联网配置

禁止linux休眠,屏保

## 修改配置文件 vi /etc/X11/xorg.conf 添加以下内容

Section "ServerFlags"
       Option "BlankTime" "0"
       Option "StandbyTime" "0"
       Option "SuspendTime" "0"
       Option "OffTime" "0"
EndSection

Section "Monitor"
       Option "DPMS" "false"
EndSection

## 重启Linux系统即可
View Code

让CentOS在同一个窗口打开文件夹

打开任意一个文件夹-->编辑-->首选项-->行为-->总是在浏览器中打开  (这在ubunto 这是默认勾选的)

重定向命令

ls -l >   temp.out  把结果集写入到temp.out文件中(不存在则新建)
ls -l >> temp.out  把结果集追加到temp.out文件尾部

vi使用

cat fileName  只能查看,不能修改

命令 解释
vi hello.java
i 进入编辑模式
esc 进入命令模式
wq 保存
q! 不保存

 

 

 

 

 

 

 

 

 

 

 

linux /etc/profile ~/.bash_profile 区别与联系

/etc/profile 系统整体设置
~/.bash_profile 用户个人设置( 在客户端使用  . ~/.bash_profile  重载)  (~/.bash_profile仅在以交互式登录模式启动时由bash提供。这通常仅在你登录控制台(Ctrl+ Alt+ F1.. F6)或通过连接时ssh。)

 

 

gcc编译c 及运行c

CentOS 6.6 64位系统安装gcc编译器详解

CentOS 7.3安装详解==>https://blog.csdn.net/zhangym199312/article/details/75196255

centos提示database disk image is malformed解决方法

gcc命令相关链接

gcc 相当于 javac(即编译工具)

 

命令 解释
gcc  hello.cpp 默认生成a.out
./a.out 运行c程序
   
gcc -o hello hello.cpp 生成hello.out
./hello.cpp 运行c程序

 

 

 hello.c文件如下,注意是<stdio.h>,而不是<studio.h>

#include <stdio.h>

int main(void){
    printf("hello c\n");
    return 0;
}
View Code

 

selinux

 

#查看SELinux状态
getenforce
#临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
setenforce 1 ##设置SELinux 成为enforcing模式

#永久关闭SELinux(需要重启机器)
#修改/etc/selinux/config 文件
#注释
#SELINUX=enforcing
#新增
SELINUX=disabled

 

根目录/下文件夹解释

根目录下的文件夹 目录解释
root 存放root用户的相关文件
home 存放普通用户文件的目录,新建用户也会在home目录下,非root登录后自动切换到/home/用户名/下 (即useradd userName下)
bin 存放常用命令的目录 (如 cd / vi命令)
sbin 要具有一定权限才能使用的命令目录
mnt 默认挂载光/软驱的目录
etc 存放配置相关的目录
var 存放变量相关的目录
boot 存放引导相关的目录
usr 软件默认安装目录(像windows Program Files)

 

 linux分区概念

基本分区+扩展分区之和必须<=4个

硬盘分区 两大区     解释说明
硬盘 基本分区     基本分区可以直接使用
扩展分区 逻辑分区  

扩展分区不能直接使用,

必须经过二次分区后,变成逻辑分区才能使用,

而逻辑分区个数是没有上限的

......  
逻辑分区  

 

 /boot  100M

swap  256M  (分swap的时候不用指定/挂载点)

/根分区  越大越好

 

df -h(推荐)或df -l 查看磁盘使用情况
fdisk -l 查看linux分区基本情况
/dev/sda3 dev为设备名 , sda3为分区名称(sda3代表第一个SCSI硬盘上的第三个主分区或扩展分区.)
命名规则为:sd代表SCSI硬盘,hd代表IDE硬盘,a代表第一块硬盘,b代表第2块硬盘,1,2,3,4为前4分区,必然是主分区或扩展分区,5开始必然都是逻辑分区..
df /boot 查看boot文件夹挂载了哪个设备,显示如下
/dev/sda1 XXX......
umount /boot 把boot文件夹挂载的设备卸载掉,此时/boot目录下没有任何子目录
mount /dev/sda1 /boot 把设备挂载到boot目录,此时/boot目录下又会有子目录 (加载光驱 可以直接用 mount /mnt/cdrom固定写法)

 

shell解释

shell还能进行程序设计,类似于DOS中的批处理文件,稳为shell script.

shell 目前有三种 sh | csh | dash ,使用风格差异很大,我们用的是/bin/sh链接

chsh -s /bin/bash  改变shell风格

根目录         重新载入
/ etc bashrc   自动启动配置

source ~/.bashrc(已验证)

或

source /etc/.bashrc(未验证)

profile   系统环境变量,如j d k,tomcat  
home King .bashrc 自动启动配置  
.bash_profile 用户环境变量  
Queen .bashrc 自动启动配置  
.bash_profile 用户环境变量  

 

.bashrc可以指定某些程序在用户登录时自动启动. 

比如/home/king/.bashrc文件尾加入 /home/tomcat/bin/startup.sh start 就可以在king用户登录的时候启动tomcat

export PATH=$PATH:$HOME/$USER/tomcat/bin:/root/test 允许当前用户临时使用新环境变量
$PATH 原有路径
$HOME 工作主目录 
$USER 当前登录用户名
: 代表分隔符 
我们用echo $PATH , echo $USER ,echo $SHELL可查看变量内容 

 

dns配置

Linux Centos7添加DNS==>https://www.cnblogs.com/baihuitestsoftware/articles/9519724.html

RMP(RedHat Package Manager)管理

rpm yum book==>https://www.cnblogs.com/whatlonelytear/articles/8621357.html

yum(Yellow dog Updater)管理

rpm yum book==>https://www.cnblogs.com/whatlonelytear/articles/8621357.html

sshd连接

在root状态用setup命令-->系统服务-->查看哪些系统服务已启动.

如果sshd为*表示开启,用securityCRT,Xftp 5等连接即可.

netstat -an 查看windows网络信息

 

设置开机启动 | 随机启动

为什么会叫httpd,mysqld,因为那个d的意思为daemon 后台守护进程模式

chkconfig httpd on #设apache开机启动

service httpd restart #于等效 /etc/init.d/httpd restart #重启Apache服务器

chkconfig mysqld on #设apache开机启动

service mysqld restart #于等效 /etc/init.d/mysqld restart #重启Apache服务器

 

 而在最新的centos7之后需要使用如下命令,参考 http://man.linuxde.net/systemctl

systemctl start  httpd.service

systemctl start  nfs-server.service

systemctl start  mysqld.service

 

centos7 firewalld 防火墙

1.firewalld的基本使用

#启动: 
systemctl start firewalld
#查看状态: 
systemctl status firewalld
#停止: 
systemctl disable firewalld
#禁用: 
systemctl stop firewalld

 

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

systemctl start firewalld.service #启动一个服务
systemctl stop firewalld.service    #关闭一个服务
systemctl restart firewalld.service    #重启一个服务
systemctl status firewalld.service    #显示一个服务的状态
systemctl enable firewalld.service    #在开机时启用一个服务
systemctl disable firewalld.service    #在开机时禁用一个服务
systemctl is-enabled firewalld.service    #查看服务是否开机启动
systemctl list-unit-files|grep enabled    #查看已启动的服务列表
systemctl --failed    #查看启动失败的服务列表

 

3.配置firewalld-cmd

firewall-cmd --version    #查看版本
firewall-cmd --help    #查看帮助
firewall-cmd --state    #显示状态
firewall-cmd --zone=public --list-ports    #查看所有打开的端口
firewall-cmd --reload    #更新防火墙规则
firewall-cmd --get-active-zones    #查看区域信息
firewall-cmd --get-zone-of-interface=eth0    #查看指定接口所属区域
firewall-cmd --panic-on    #拒绝所有包
firewall-cmd --panic-off    #取消拒绝状态
firewall-cmd --query-panic    #查看是否拒绝

 

4. 端口配置

#添加 (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent    
#重新载入
firewall-cmd --reload
#查看
firewall-cmd --zone= public --query-port=80/tcp
#删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent

 本小节参考自: linux7防火墙基本使用及详解==》https://www.cnblogs.com/ld1977/articles/6144297.html

 更详情文章:Systemd 指令 ==》https://www.cnblogs.com/zwcry/p/9602756.html

centos7怎么查看是否有防火墙==>https://www.php.cn/centos/488583.html

配置指定用户的文件使用上限

#vim /etc/security/limits.conf(在文件最后添加)
elsearch soft nofile 65536
elsearch hard nofile 65536
elsearch soft memlock unlimited
elsearch hard memlock unlimited

 

 

crontab任务调度

用crontab -e  进入vi编辑界面然后录入多行定时任务
用crontab -l  列出当前哪些任务在调度

crontab -l -u username   查看某个用户的定时任务
用crontab -r  终止任务调度 (要小心,因为会直接清空定时任务文件内容)

 

crontab启停

/bin/systemctl restart crond.service  #启动服务
/bin/systemctl reload crond.service  #重新载入配置
/bin/systemctl status  crond.service  #查看crontab服务状态

 

 

 

任务调度分2类:

1.系统工作型: 重要任务,像扫病毒,启网络服务.
2.用户工作型: 指定用户才会执行.

规则如下,所以每天凌晨2点执行的话就是  0 2 * * * date >> /home/usr/date.out

位置 1 2 3 4 5 6
示例 * * * * * date >> /home/usr/date.out
解释 第几分 第几小时 第几天 第几月 每周第几天 执行的命令和参数
范围 0-59 0-23 1-31 1-12 0-6  

 

 但是推荐用法是用 0 2 * * * myTaskShell.sh脚本完整目录  (但该shell文件需要有-rwxr--r--权限,因为root需要去执行x它).
而该shell文件中存放的多行任务,可由同一时间触发.比如可以放内容如下:

date >> /home/usr/date1.out

date >> /home/usr/date2.out

 

 

 

 

2、禁用定时任务服务。

systemctl stop crontab;
systemctl disable crontab;

 

其它参考:

Shell命令_Cron使用

Shell脚本调试的几种方式

安装前configure或config原因

引用自: https://zhidao.baidu.com/question/1894963375116810900.html

其它参考: Linux中的Configure选项配置参数详解

  1. configure

    Linux 平台有各种不同的配置,安装时需要通过 configure 来确定,如:编译器用的是 cc 还是 gcc、不同库文件所在目录等。执行 configure 后会生成 Makefile,Makefile 规定了用什么编译器、编译参数等信息。

  2. make

    根据 Makefile 中规定的内容进行编译,生成的可执行文件放在当前目录或某个子目录。

  3. make install

    将 make 生成的文件安装到系统目录中,如 /usr/bin,这一步需要 root 权限,所以通常得用 sudo make install。如果没有这一步,在命令行中输入程序名字不能启动相应程序。

 

一. jdk的安装步骤

通联网的情况下 yum 极速安装: 

yum install -y java-1.8.0-openjdk-devel

linux配置java环境变量(详细)

[1] 下载jdk安装文件,jdk-1.X.X-linux-i586-rpm.bin
[2] 复制到一个自建的jdk目录 /usr/jdk/
[3] 在/usr/jdk/下安装 ./jdk-1.X.X-linux-i586-rpm.bin


[4] 以root用户编辑环境变量配置文件:
#vi /etc/profile
_______________________________________________________
JAVA_HOME=/usr/jdk/jdk1.X.X
PATH=$JAVA_HOME/bin:$PATH (如果是windows环境,用%JAVA_HOME%)
CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/toos.jar
#导出环境变量
export PATH JAVA_HOME CLASSPATH

特别强调,上面语句的=左右千万不要有空格,不然会蛋疼死,本人在空格中足足耗了1小时,摸不着北. 

上面的三个变量可以用echo $JAVA_HOME这样的语句显示.如果没有显示,那表示你可能在=左右加了空格,或别的地方有误

_______________________________________________________
[5] 重载配置文件,后重新打开终端
#source /etc/profile
#javac
#java -version  查看java版本
#which java  查看java主目录

 

补充说明:很多人仍旧搞不清path和classpath的区别,在此特别强调

path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方
classpath 类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类。

标准样例

export JAVA_HOME=/data/soft/jdk/jdk1.8.0_221
export MAVEN_HOME=/data/program/maven/apache-maven-3.3.9
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${MAVEN_HOME}/bin:$PATH

 

二. eclipse安装

[1] 下载eclipse安装文件,eclipse-SDK-3.X.X-linux-motif.tar.gz
[2] 复制到一个自建的eclipse目录 /usr/eclipse/
[3] 解压缩 tar -zxvf eclipse-SDK-3.X.X-linux-motif.tar.gz
[4] 切换到新生成的eclipes目录中
[5] ./eclipse 启动 (必须在图型界面)

 

 

 

 

三. tomcat安装

配置tomcat环境变量
[1] 下载tomcat安装文件,jakarta-tomcat-6.X.X.tar.gz
[2] 复制到一个自建的tomcat目录 /usr/tomcat/
[3] 解压缩 tar -zxvf jakarta-tomcat-6.X.X.tar.gz,会生成jakarta-tomcat-6.X.X目录
[4] 以root用户编辑环境变量配置文件:
#vi /etc/profile
_______________________________________________________
#CATALINA_HOME=/usr/tomcat/jakarta-tomcat-6.X.X

 

 

 redis的安装

CENTOS7下安装REDIS【转】==>https://www.cnblogs.com/whatlonelytear/p/11624787.html

Linux下redis的安装

make PREFIX=/usr/local/redis install #安装到指定目录中

 

 nginx的安装

 

 apache的安装

apache book

添加apache为服务并开机启动#self#--https://i.cnblogs.com/EditArticles.aspx?postid=8900114#chkconfig

 

nginx和apache以普通用户启动

nginx

su root
cd ....nginx/sbin
chown root nginx
chmod u+s nginx
su 普通用户
.../nginx

nginx 让users有权限启动的两种方法==>https://www.jb51.net/article/112934.htm

apache

su root
cd ……/apache/bin
chown root httpd
chmod u+s httpd
su 普通用户
……/apache/bin/apachectl start

 

为何不chmod u+s apachectl呢?

因为chmod u+s 这种方式只针对二进制文件有效,而tail一下apachectl发现,apachectl是一个脚本文件,(如果tail 二进行文件会乱码)仔细查阅发现有如下一句
HTTPD='/home/……/apache/bin/httpd'
得出结论:apachectl脚本是通过启动httpd文件来启动整个httpd服务。

最后chmod u+s httpd即可,当然得保证httpd的所属者为root用户,如果不是,执行:
chown root httpd即可。

 

 

 ruby安装

Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,可运行于多种平台,如 Windows、MAC OS 和 UNIX 的各种版本.

linux下安装ruby方法!

Ruby编译安装及Rubygems升级!

使用rvm进行ruby的安装与切换

rvm list    //查询已经安装的ruby
rvm list known    //列出已知的ruby版本
rvm install 1.9.3    //安装一个ruby版本
rvm use 1.9.3    //使用一个ruby版本
rvm use 1.9.3 --default    //如果想设置为默认版本,可以这样
rvm remove 1.9.2    //卸载一个已安装版本

 设置临时环境变量 : export PATH=/usr/local/ruby-1.8/bin:$PATH

#执行 vim /etc/pam.d/login
#在#%PAM-1.0 下新起一行,加入
auth required pam_tally2.so deny=3 unlock_time=10 even_deny_root root_unlock_time=60

#如果不限制root用户,则可以写成
#auth required pam_tally2.so deny=3 unlock_time=5

#even_deny_root    也限制root用户;
#deny              设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
#unlock_time       设定普通用户锁定后,多少时间后解锁,单位是秒;
#root_unlock_time  设定root用户锁定后,多少时间后解锁,单位是秒;

 

某一台Linux电脑连接另一台Linux电脑?

首先查看是否安装ssh服务:systemctl status sshd.service

 

#启动服务:
systemctl start sshd.service

#重启服务:
systemctl restart sshd.service

#开机自启:
systemctl enable sshd.service

 

#若已经安装了ssh服务直接在终端输入:
ssh username@IP(该IP是要连接的计算机ip)

#如果没有安装,就在命令行输入(这是ssh服务的安装命令):
yum install openssh-server

 

怎么实现SSH实现linux之间的免密码登陆拷贝文件?

# 拷贝远程服务器的文件到本地(可以是文件夹到文件夹)不一定要文件:
scp -r -P 端口号 用户名@IP地址:/data/from /tmp/dest/

# 拷贝本地文件到远程服务器:
scp -r /tmp/from.war 用户名@IP地址:/data/dest/

linux实现ssh scp sftp免密登录【原】==》https://www.cnblogs.com/whatlonelytear/p/9274837.html

 

swap分区

添加swap文件方式新建swap分区

添加swap文件方式新建swap分区==>https://blog.csdn.net/weixin_43603028/article/details/122717625

 

添加swap有两种方式:1、添加swap分区;2、添加swap文件;

1.添加swap分区
在关机状态下,添加一块200M(0.2G)的硬盘。。。。操作麻烦需要先关机

2.添加swap文件

#查看swap大小

free -m //

#注意:如swap显示0,或者没有输出swap,则表示系统并没有增加swap空间
#创建swap文件

fallocate -l 2G /etc/swap //指定文件为2G

#设置只允许root用户操作该文件

chmod 600 /etc/swap

#检查文件大小与权限

ls -lh /etc/swap

#设置该文件为swap文件

mkswap /etc/swap

#启用swap文件

swapon /etc/swap

#使swap文件永久生效

vim /etc/fstab

#末尾添加:

/etc/swap swap swap defaults 0 0

#更改swap配置

vim /etc/sysctl.conf

#有则修改,无则添加:(按需修改数值)

vm.swappiness=30 //值越大表示越倾向于使用swap空间

#重启生效

reboot

#再次查看swap大小

free -m //

 

 

 

磁盘挂载,磁盘共享

Linux之/etc/fstab文件讲解==>https://www.cnblogs.com/FengGeBlog/p/10178824.html   挂载的 /etc/fstab 文件内容参考




[bobo@test1 bobofolder]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Thu Dec 21 10:22:03 2017
#
# 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
#
/dev/mapper/vg0-root    /                       ext4    defaults        1 1
UUID=575db1fa-eb23-41b9-97fa-1d857a70977 /boot                   ext4    defaults        1 2
/dev/mapper/vg0-data    /data                   ext4    defaults        1 2
/dev/mapper/vg0-home    /home                   ext4    defaults        1 2
/dev/mapper/vg0-usr     /usr                    ext4    defaults        1 2
/dev/mapper/vg0-var     /var                    ext4    defaults        1 2
/dev/mapper/vg0-swap    swap                    swap    defaults        0 0
1.2.3.4:/app        /data/bobo/upload       nfs     defaults        0 0
1.2.3.4:/bak          /tbak            nfs    defaults        0 0

 

 

 

 

 

系统监控

系统之眼!Linux系统性能监控工具Glances==>https://blog.51cto.com/mingongge/5093288

 

 

 

解决-过5分钟就会自动锁住屏幕.

 bug汇总

解决CentOS配置kdump失败的问题

$CentOS6.2下面安装RVM+ruby+Rails
$安装RVM失败: public key not found
$RVM的安装和使用过程中碰到的问题

bash: ./wls1036_linux32.bin: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

Red Hat使用yum安装软件出现未注册问题的解决方案(This system is not registered to Red Hat Subscription Management)==>https://blog.csdn.net/qq_43464563/article/details/110151427

技多不压身,真正的大师往往都怀着一颗学徒的心.

Centos 下添加开机自启动服务和脚本【转】

Linux命令简写和全称

linux联网下怎么配置yum源

安装libevent和memcached可能会遇到的问题:

 error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

 

 

 

 

 

视频下载地址:http://pan.baidu.com/share/link?shareid=3121286176&uk=2198227232

centOS下载地址:http://mirrors.aliyun.com/centos/6.8/isos/x86_64/ 选择 CentOS-6.8-x86_64-bin-DVD1.iso  和 CentOS-6.8-x86_64-bin-DVD2.iso  bin版本 

centOS6 安装图文教程:

http://jingyan.baidu.com/article/25648fc1a235c99191fd0008.html

http://blog.csdn.net/wendi_0506/article/details/40890001

 

 

 

Linux服务器上监控网络带宽的18个常用命令和工具==》https://www.cnblogs.com/focusonepoint/p/7771214.html

 

 

病毒

Linux 清除隐藏的挖矿程序==》https://www.cnblogs.com/reachos/p/13129155.html

 

备用语句

cd /home/centos/program/redis-cluster/6301
./bin/redis-server ./etc/redis.conf
cd /home/centos/program/redis-cluster/6302
./bin/redis-server ./etc/redis.conf
cd /home/centos/program/redis-cluster/6303
./bin/redis-server ./etc/redis.conf

cd /home/centos/tool/redis-3.2.4
./redis-trib.rb  create --replicas 1 
192.168.1.107:6001 
192.168.1.107:6002 
192.168.1.107:6003 
192.168.1.108:6004 
192.168.1.108:6005 
192.168.1.108:6006



$ gem update --system   更新到最新gem

 

 

韩顺平老师视频观看进度

韩顺平.linux视频教程第0讲.开山篇.wmv
韩顺平.linux视频教程第01讲.基础介绍.wmv
韩顺平.linux视频教程第2讲.历史介绍.vi编辑器的使用.wmv
韩顺平.linux视频教程第3讲.用户管理.目录结构.wmv
韩顺平.linux视频教程第4讲.常用命令.wmv
韩顺平.linux视频教程第5讲.文件权限.用户组(1).wmv
韩顺平.linux视频教程第6讲.文件权限.用户组(2).wmv
韩顺平.linux视频教程第7讲.j2ee环境.jdk.tomcat安装配置.wmv
韩顺平.linux视频教程第08讲.娱乐软件安装.linux分区详解.wmv
韩顺平.linux视频教程第9讲.linux安装演示.wmv
韩顺平.linux视频教程第10讲.shell介绍.wmv(2016/10/15)
韩顺平.linux视频教程第11讲.tcp.ip基础.wmv(未看)
韩顺平.linux视频教程第12讲.ip地址和包.解.网络环境配置.wmv(未看)
韩顺平.linux视频教程第13讲.rpm管理.samba安装配置使用.wmv(samba未看,有sshd,ftp还学这毛用)
韩顺平.linux视频教程第14讲.crontab详解.wmv
韩顺平.linux视频教程第15讲.进程的介绍和管理.wmv
韩顺平.linux视频教程第16讲.top详解.设.间.监控网络状态.wmv
韩顺平.linux视频教程第17讲.mysql安装.配置.使用.wmv(有用,暂未看)
韩顺平.linux视频教程第18讲.ssh安装.配置.使用.wmv(前半部分未看还是在讲MySQL)
韩顺平.linux视频教程第19讲.补充讲解linux重要内容.wmv
韩顺平.linux视频教程第20讲.常用命令补.inux启动过程分析.wmv
韩顺平.linux视频教程第21章.压缩和解压.ux下java网络编程.wmv(未看)

 

 

我的虚拟机帐号密码记录

机器名 相关 帐号 密码 ip(动态)
centOS linux root 132456 192.138.1.107
centOS linux centos centos 192.138.1.107
centOS linux weblogic 123456 192.138.1.107
centOS weblogic weblogic weblogic123 192.137.1.107

runlevel control directory

 

linux资源下载

http://mirrors.163.com/centos/6/os/x86_64/Packages/

http://mirrors.163.com/centos/7/os/x86_64/Packages/

 

 

其它待学习命令

nslookup

$ split -b 10m  -d large_file.log new_file_prefix
posted @ 2015-12-10 19:30  苦涩泪滴  阅读(724)  评论(0)    收藏  举报