linux学习总结

linux 相关
网络相关
ip相关
ping
ctrl+c
结束ping命令
ping -c 4 192.168.0.100
指定次数
ip addr add 10.60.197.35/20 dev eth0
新增ip
ip addr del 192.168.0.1 dev eth0
删除ip地址
ip route add default via 10.60.192.1 dev eth0
增加路由
lsof -i tcp:80
查看端口是否占用问题
ip r
查看IP地址信息
route -n
查看路由表
用于配置不同网段的通信,查看网关和掩码
原生linux改ip
1)修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
(eth0,第一块网卡,如果是第二块则为eth1)
编译命令
service sshd start
启动ssh服务
docker ps
查看 运行中的 docker
docker run -dti --privileged=true -v /home/Code:/home/Code -v ~/.ssh:/root/.ssh registry.xxx.com/af/8040compiler:1.6 /bin/bash
运行docker
docker exec -ti 64794e5222cf /bin/bash
进入对应的docker
source env_make_all
加载各种环境变量
make
生成二进制文件
Ctrl+P Ctrl+Q
可以退出容器,让容器仍运行
命令Ctrl+C和exist
退出容器,不运行
从容器拷贝文件到后台服务器
通过scp拷贝文件
替换整个目录
scp -r -P 端口号 原地址 目的地址
scp -P 22 root@[ip]:源地址 目的地址
docker
ctrl + D
退出docker
docker ps
查看 运行中的 docker
docker exec -ti 64794e5222cf /bin/bash
进入对应的docker
环境命令
yum install mlocate安装locate
安装
yum -y install tree
yum install openssh-server
安装ssh服务
su username
切换用户
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
ps 查看当前运行的进程
ps -aux | less
ps -aux --sort -pcpu | less
cpu使用降序
ps -aux --sort -pmem | less
内存 使用降序
date
查看系统时间
echo L D L I B R A R Y P A T H 共享库环境变量 e x p o r t L D L I B R A R Y P A T H = LD_LIBRARY_PATH 共享库环境变量 export LD_LIBRARY_PATH= LDLIBRARYPATH共享库环境变量exportLDLIBRARYPATH=LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
设置共享库环境变量
临时设置
shutdown -r now
系统重启
cat /proc/meminfo | grep MemTotal
查看内存大下
free -h
同上
cat /proc/cpuinfo | grep ‘model name’ |uniq
查看cpu型号
文件操作命令
chmod rwx 文件(rwx用数字代替)
ls -l 文件或文件夹
sfmount.sh --rw
解决修改文件只读的问题
find
按文件名搜索
-name
find /-name show_sys_res.cgi
find . -name ’ ’
模糊查找
find ./ -name log |xargs ls -lta
按数据排序
根据文件名模糊查询
find /opt/ -type f -name “*.log”
-type f表示文件
-type f表示文件
查找特定权限文件:
find /opt -type f -perm 755
查找大文件
find /opt/ -size +100M
根据时间查找
find /opt -mtime -10
sed是一种流编辑器,它一次处理一行内容
sed -i
原处编辑
stat -c %Y xxx
按指定格式输出时间
cd -
返回上一目录
tail -f
[file]
显示正在更新的日志
cat filename | tail -n 100 显示文件最后100行 cat filename | head -n 100
eval命令作用
用于重新运算求出参数的内容
dos2unix ./var_clean.sh
转换编码
磁盘相关
df -Th
查看系统分区
mount --bind
绑定挂载
du命令(Disk Usage)用于查看文件或目录的大小。df是用于查看磁盘或分区使用情况的命令
du /var -m -x -S
以M为单位
以一开始处理的文件系统为准

显示个别目录的大小时,并不含其子目录的大小。
lsof -n / |grep deleted查看已删除空间却没有释放的进程
gdb调试
调试
可使用断点
断点的设置
普通断点
i b --查看断点号
d 断点号–删除断点
c continue 运行到下一断点
条件断点
(gdb) b <断点> if <条件表达式>
b main.cpp:8 if x=10 && y=10
(gdb) condition <断点编号> <条件表达式>:修改断点条件
condition 1 x=10 && y=10
查看变量
watch
单步
n
查看函数调用堆栈
bt
查看内存
修改变量值
(gdb) set variable array[1] = 12
不可使用断点方式情况
打印log 信息方式
修改单个文件,增加打印信息
单独编译
编译后的文件放入af环境运行
多进程调试
gdb使用
启动进程
gdb <程序名>
>gdb -p
attach
退出
quit
detach
调试cgi
coredump
gdb 执行文件 core
/sfdata/log/core
通过帧编号来选择帧,帧编号可以通过 bt 命令来查看。
我们查看对应的第 17帧的堆栈信息
f 17
可能存在的问题
找不到gdb
/var/debug_tools/debug_tools.run
运行这个工具重新安装
打印不完整
(gdb) set print elements 0
(gdb) show print elements
Limit on string chars or array elements to print is unlimited.
(gdb)
进程
systemctl status sshd看下是不是服务异常
kill -9 进程号 p s a u x ∣ h e a d − 1 ; p s a u x ∣ s o r t − r n − k + 3 ∣ h e a d 获取占用 C P U 资源最多的 10 个进程 p s a u x ∣ h e a d − 1 ; p s a u x ∣ s o r t − r n − k + 4 ∣ h e a d 占用内存资源最多的 10 个进程 p i d = 进程号 ps aux|head -1;ps aux|sort -rn -k +3|head 获取占用CPU资源最多的10个进程 ps aux|head -1;ps aux|sort -rn -k +4|head 占用内存资源最多的10个进程 pid= 进程号psauxhead1;psauxsortrnk+3∣head获取占用CPU资源最多的10个进程psauxhead1;psauxsortrnk+4∣head占用内存资源最多的10个进程pid=(pidof -x var_clean.sh)
显示由脚本开启的进程 -x
vim
命令模式 :set nu
显示行号
:., d 表示从当前行到末行全部删除 d d 删除行 g g v G 全选 y 复制跳转跳转行在正常模式下输入 n g g 或者 n G , n 为指定的行数,如 12 g g 或者 12 G 跳转到第 12 行用 g g 表示移动到首行跳到文本的最后一行:按“ G ” , 即“ s h i f t + g ”。跳到文本的第一行的第一个字符:按两次“ g ”。跳到当前行的最后一个字符:在当前行按“ d 表示从当前行到末行全部删除 dd 删除行 ggvG 全选 y 复制 跳转 跳转行 在正常模式下输入ngg 或者 nG,n为指定的行数,如12gg或者12G 跳转到第12行 用gg表示移动到首行 跳到文本的最后一行:按“G”,即“shift+g”。 跳到文本的第一行的第一个字符:按两次“g”。 跳到当前行的最后一个字符 :在当前行按“ d表示从当前行到末行全部删除dd删除行ggvG全选y复制跳转跳转行在正常模式下输入ngg或者nGn为指定的行数,如12gg或者12G跳转到第12行用gg表示移动到首行跳到文本的最后一行:按G,shift+g。跳到文本的第一行的第一个字符:按两次g。跳到当前行的最后一个字符:在当前行按”键,即“shift+4”。
跳到当前行的第一个字符:在当前行按“0”。
shell
shell脚本
命令行批处理
变量含义
1、KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲:表示执行脚本传入参数的个数 …*:表示执行脚本传入参数的列表(不包括 0 ) 3 、 0) 3、 03 :表示进程的 i d ; S h e l l 本身的 P I D ( P r o c e s s I D ,即脚本运行的当前进程 I D 号) 4 、 :表示进程的id;Shell本身的PID(ProcessID,即脚本运行的当前 进程ID号) 4、 :表示进程的idShell本身的PIDProcessID,即脚本运行的当前进程ID号)4!:Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID号)
5、$@:表示执行脚本传入参数的所有个数(不包括$0)
6、$0:表示执行的脚本名称
7、$1:表示第一个参数
8、 2 :表示第二个参数 9 、 2:表示第二个参数 9、 2:表示第二个参数9?:表示脚本执行的状态,0表示正常,其他表示错误
运算符
逻辑
&&:用来执行条件成立后执行的命令
||:用来执行条件不成立后的执行命令
特殊
e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
比较
eq
等于
-ne
不等于
-gt
大于
-ge
大于等于
-lt
小于
-le
小于等于

逻辑非
调试
set -e
命令作用是,如果一个命令返回一个非0退出状态值(失败),就退出.这个命令-e参数企业应用极少
set -x
输出运行的详细信息
set的“+” ,“-” 分别用于关闭或者打开某些特性
输出控制

/dev/null
特殊设备文件,文件接收的任务数据都会丢失
0 是标准输入,一般是从键盘获得输入

1 是标准输出,一般是输出到屏幕了

2 是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了

为重定向符号
2>&1 &
标准错误2重定向到标准输出1,1前面的&为了让bash将1解释成标准输出1而不是文件1,最后一个&是让bash后台执行
工具安装 (源码编译)
配置
sh ./configure
make check
make
make install
git 命令
基本命令
git status -uno
不显示未跟踪文件的工作树状态
git checkout – filepathname
删除本地某一暂存的修改
git checkout .
删除本地所有暂存区更改
git reset .
删除所有工作区的更改
git clean -df
删除本地多余文件
git add 路径+filename
添加具体文件到仓库
撤销
git rm --cached file_name 从缓存区中移除,但不删除物理文件
git rm --f file_name 从缓存区中移除,并删除物理文件
git reset HEAD 用版本库内容恢复整个缓存区
git reset HEAD file_name 用版本库内容恢复缓存区中指定的文件
git commit -m “msg”
提交到本地仓库
git push
推送到远程关联仓库
git push -f
force 用本地覆盖远程仓库 ,,慎用
git stash
能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录
git撤销已提交的commit 使用命令: git reset --soft HEAD^ 1
git commit --amend 重新提交是在日志看不到操作记录的
git reflog
git reset HEAD^
git reset --hard 139dcfaa558e3276b30b
回退某一个版本
git reset --hard head^
回退上一个版本
git branch -m “原分支名” “新分支名”
git restore --staged …" to unstage)
退回add
查看 差异
Git命令查看尚未提交(commit)的已修改文件的具体修改内容
1)默认显示尚未通过git add的文件版本与已经通过git add的但尚未提交的文件版本之间的差别
git diff [filename]
2)显示已经通过git add的但尚未提交的文件版本与最近一次提交的差别; --staged是–cached的别名,是同样的功能。
git diff --cached [filename]
git diff --staged [filename]
3)显示尚未通过git add的文件版本与最近一次提交的差别
git diff HEAD [filename]
配置相关
git difftool
git config --global diff.tool bc
git config --system --unset credential.helper
git config --global user.name xxx
git config --global user.email xxx
查看用户名和邮箱地址 $ git config user.name $ git config user.email
git clean -n
列出将要删除的文件
.gitignore
忽略某些文件
拉取仓库
git init
初始化本地文件夹
git remote add origin xxxxx.git
与远程建立连接
git fetch origin branch_name
把远程分支拉到本地
git checkout -b master origin/master
本地创建分支切到远程该分支
git pull origin master
拉取远程分支上的内容
分支
git branch
-a
查看所有分支
-v
查看分析信息
-vv
查看本地分支与远程分支的关系
修改本地库分支名称:
git branch -m oldName newName
git config --list
查看本地与远程分支的关联关系
git remote
查看远程仓库
git fetch
取消特定分支的更新
git checkout --force target-branch-name
强行切分支,会丢弃修改
git push --set-upstream origin dev //dev为创建分支的名字
git merge-base branch2 branch3
查看共同基点
跟踪主分支的修改
git branch -u origin/remote_main_branch
跟踪目标分支
git status
查看主分支修改
git pull -r
更新主分支修改的本地 仓库
假如存在冲突
解决完冲突运行以下命令
git rebase --continue
git status
查看跟踪后的状态
git branch -u origin/remote_local_branch
反跟踪本地分支
git status
查看跟踪后的状态
git commit --amend
git push -f
远程分支使用当前最新
解决冲突
保留本地
$:git merge --abort
$:git reset --merge
$:git pull
丢弃本地
$:git fetch --all //重新拉取
$:git reset --hard origin/master //git reset --hard将master回退至origin/master,并忽略所有新提交
$:git fetch
撤销操作
git relog
查看操作记录的日志
git reset + 操作id
回退到撤销操作前的操作
删除操作
删除或重命名文件
1、git rm pathfile
删除本地库文件
2、git rm -r path
删除本地库文件夹
3、git commit -m “msg”
保存到本地仓库
4、git checkout
删除的文件恢复到最新版本
5、git push
推送远程仓库
分支
删除本地分支 git branch -d 本地分支名
删除远程分支 git push origin --delete 远程分支名
回退操作
回滚某个文件到指定版本
git reset 版本号 Content\BP_Character.uasset
合并流程
基本流程
git fetch origin
更新远程仓库数据到本地
git remote update origin --prune
这个命令会更新远程的分支到本地
1.本地创建一个与新分支并且关联远程分支
git checkout -b dev lo/dev
这时 dev 已经和远程的 lo/dev 一致了。
最好使用git pull先更新一下

  1. 切换回本地的 master 版本
    git checkout master
  2. 将本地的 dev 合并到 master
    git merge dev
  3. 将本地的 master 推到远程
    git push lo master
  4. 将远程的 dev 版本删除
    选择合并
    git cherry-pick
    基本命令
    git cherry-pick
    一次转移多个
    git cherry-pick A…B
    转移a-b的
    git cherry-pick A^…B
    转移a-b的
    包含a的
    冲突解决
    –continue
    解决完后,添加暂存区,继续
    –abort
    冲突后,放弃合并,回到操作前的样子
    –quit
    退出git cherry-pick ,不回到操作前的样子
    git checkout branch-B-tmp path_to_given_file
    合其他分支部分代码
    组管理
    多个用户共用一个,形成用户组
    在共用的用户主目录下建立.ssh文件夹
    mkdir .ssh
    cd .ssh
    ssh-keygen -t rsa
    新建authorized_keys文件保存公钥(多个公钥换行处理)
    touch authorized_keys
    保护分支
    普通用户无法提交
    lua语法
    基本语法
    – 单行注释
    –[[
    ]]–
    多行注释
    标识符
    可使用字母、下划线、数字0-9
    保留关键字
    and break do else
    elseif end false for
    function if in local
    nil not or repeat
    return then true until
    while goto
    变量默认为全局变量,不需要声明
    git diff branch1 branch2 --stat
    比较两个分支的差异
    数据类型
    变量不要类型定义,值可以存储在变量中,作为参数传递或结果返回
    基本类型
    nil
    无效值
    boolean
    相当于bool
    number
    表示双精度的浮点数
    string
    字符串
    function
    c 或 lua 编写的函数
    userdata
    表示任意存储在变量中的c数据结构
    thread
    表示执行的独立线路,用于执行协同程序
    table
    表,关联数组。索引可以是数字、字符串或表类型。
    {} 用来创建空表
    “#table” = table 的长度
    变量
    作用域
    全局
    默认
    局部
    local 声明
    表中的域
    默认值
    nil
    可以对多变量同时赋值
    a,b = 10, 2x
    a, b = b,a
    两边个数不一致时
    a. 变量个数 > 值的个数 按变量个数补足nil
    b. 变量个数 < 值的个数 多余的值会被忽略
    运算符
    ==
    等于
    ~=
    不等于
    循环
    while
    条件为true时,重复执行
    for
    重复次数在for中控制
    repeat…until
    重复直到指定条件为真
    break
    退出循环
    goto
    跳转另一个标签点
    Lua 编程语言中 repeat…until 循环语句不同于 for 和 while循环,for 和 while 循环的条件语句在当前循环执行开始时判断,而 repeat…until 循环的条件语句在当前循环结束后判断。
    调试
    debug():
    进入用户交互模式,运行用户输入的字符串
    getfenv(object)
    返回对象的环境变量
    gethook(optional thread)
    返回三个表示现场的钩子设置值
    当前的钩子函数
    当前的钩子掩码
    当前的钩子计数
    getinfo ([thread,] f [, what]):
    返回关于一个函数信息的表
    数字 f 表示运行在指定线程的调用栈对应层次上的函数: 0 层表示当前函数(getinfo 自身); 1 层表示调用 getinfo 的函数 (除非是尾调用,这种情况不计入栈);等等。 如果 f 是一个比活动函数数量还大的数字, getinfo 返回 nil。
    debug.getlocal ([thread,] f, local):
    此函数返回在栈的 f 层处函数的索引为 local 的局部变量 的名字和值。
    getmetatable(value):
    把给定索引指向的值的元表压入堆栈。
    getregistry():
    返回注册表表,这是一个预定义出来的表, 可以用来保存任何 C 代码想保存的 Lua 值。
    getupvalue (f, up)
    此函数返回函数 f 的第 up 个上值的名字和值。
    sethook ([thread,] hook, mask [, count]):
    将一个函数作为钩子函数设入。 字符串 mask 以及数字 count 决定了钩子将在何时调用
    setlocal ([thread,] level, local, value):
    函数将 value 赋给 栈上第 level 层函数的第 local 个局部变量。
    setmetatable (value, table):
    将 value 的元表设为 table (可以是 nil)。 返回 value
    setupvalue (f, up, value):
    这个函数将 value 设为函数 f 的第 up 个上值。
    traceback ([thread,] [message [, level]]):
    如果 message 有,且不是字符串或 nil, 函数不做任何处理直接返回 message。
    正则表达式
    例子
    ([\u4e00-\u9fa5]{4,})\1{2,}
    重复汉字>=4个
    [\w!# %&'*+/=?^_`{|}~-]+(?:\.[\w!# %&'
    +/=?^_`{|}~-]+)*@(?:\w?.)+\w?
    语法
    . 
    匹配任何单字符
    [ ]
    匹配括号中的任何一个字符
    正则表达式“b[aui]g”匹配bug、big和bag,但是不匹配beg
    “-”
    指定字符的区间来简化表示
    ( )
    将() 之间括起来的表达式定义为“组”(group),
    | 
    将两个匹配条件进行逻辑“或”运算
    ‘z|food’ 能匹配"z" 或"food"。‘(z|f)ood’ 则匹配"zood" 或"food"

匹配前面的子表达式一次或多次
?
匹配前面的子表达式零次或一次
“do(es)?” 可以匹配"do" 或"does"
{n}
匹配确定的n 次
"zo{2}"→zoo。例如,“e{2}”不能匹配“bed”中的“e”,但是能匹配“seed”中的两个“e”。
^

$
匹配行结束符。
例如正则表达式“浮云$”能够匹配字符串“一切都是浮云”的末尾
d
代表一个数字,等同于[0-9] 
\D
代表非数字,等同于0-9
\s
代表换行符、Tab制表符等空白字符 
\S
代表非空白字符 
\w
匹配字母或数字或下划线或汉字,即能组成单词的字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值