声明:仅仅作为一些记录用 ,没有任何技术含量,后面会陆陆续续补充
# 一些命令
echo $? // 打印程序的终止状态
gcc hello.c
./a.out
echo $?
显示:0
whereis gcc/g++ // 查找安装目录
which vim // 查看vim可执行文件所在的目录
netstat -nltp // 查看开启的端口
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
source /etc/profile // 使修改的配置文件生效
showkey -a // 显示打印的字符
rm -rf !(centos8-repo.zip) // 删除所有文件 但是除掉 centos8-repo.zip不删
bash <(curl -L https://xxx.com/install-release.sh) // 执行远程脚本
# gcc编译选项
gcc -std=c99 -Wall -m64 -lpthread hello.c
-std=c99 启用gcc的1999ISO C扩展
-Wall 使编译器所推荐的警告信息都起作用
-m64 编译64位程序
-lpthread 连接 pthread库,这样就可以使用 pthread_mutex_t 等
-include 一般在源码里包含了,很少使用
-I 指定头文件目录 /usr/include 不需要指定 相对路径 -I.
#查看Windows端口占用
.) netstat -nao
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING 3236
TCP 127.0.0.1:5679 0.0.0.0:0 LISTENING 4168
TCP 127.0.0.1:7438 0.0.0.0:0 LISTENING 4168
TCP 127.0.0.1:8015 0.0.0.0:0 LISTENING 1456
.) 查看指定端口的占用情况
. netstat -nao | findstr "9050"
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016
.) 查看PID对应的进程
tasklist | findstr "2016"
#gcc和g++的区别
http://blog.chinaunix.net/uid-23023613-id-88201.html
g++ == gcc -lstdc++
g++ 会把编译文件当作 c++文件
gcc: 如果.cpp 结尾当成c++成文件, .c结尾当成c文件
查看汇编: g++ -S xxx.cpp == gcc -S xxx.cpp
less me.s
#g++/gcc连接路径
库放在 /usr/lib /lib /usr/local/lib 里的库 用 -l就能连接了 /usr/include 不需要指定头文件目录(-I /myincludedir)
如果不在上面的三个目录用 -L/usr/xxx/yyy/lib 或者 -L /usr/xxx/yyy/lib
大部分libxxx.so只是一个链接
比如:libm.so 连接到 /lib/libm.so.x 又连接到 /lib/libm-2.3.2.so
做一个连接: ln -s libxxx-x.x.x.so libxxx.so(目标)
手工写链接参数麻烦:
进入 /usr/bin目录 找到 xxx-config 执行 xxx-config --libs (s应该是string的意思) 就会出现连接字符串(连接库)
例如 gtk-config --libs 输出: "-L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm"
这就是gtk连接参数
同理 xxx-config --cflags (s应该是string的意思) 导出包含include目录 的 字符串
gcc gtktest.c `gtk-config --libs --cflags` 不需要复制粘贴 连接库和include库 字符串 直接执行 shell
#编译链接示例
g++ curltest.cpp -o curltest -L/mnt/hgfs/windows/curl-7.19.5/lib/.libs -lcurl -I/mnt/hgfs/windows/curl-7.19.5/include
# 账号相关的信息
/etc/passwd 存储所有的账号相关信息
/etc/shadow 存储账号对应的个人密码
/etc/group 存储所有的组相关的信息
# Windows的当前用户目录
%userprofile%
#Visual Studio 2019 操作
Alt+w+w : 定位打开的文件
Shift + < / > : 选定一个区域 左右移动
# md Windows Dos环境下创建目录
# ulimit -a
其中 stack size kbytes 8192 表示堆栈大小
如果第一行 core file size 大小为0 表示不允许产生 core文件
#Windows杀死已经开启的进程
::杀死当前已开启的进程
taskkill -f -t -im CenterServer.exe
#diff
diff 1.txt 2.txt -u
#Windows漂亮控制台
conemu
GitExtension自带
#vim配置
默认配置在 /etc/vimrc
优先用 ~/.vimrc 你管理好这个就行了
#vim命令
: help 查看帮助
:敲字符后 不停的tab可以帮你补全命令
:s 执行替换
命令模式的进入: / ? : $(后面时shell命令) 输入命令 然后按Enter 才算完成
可视模式: v
可视模式(visual) 和 选择模式(select的切换) : ctrl+g
如果你在编辑时有几秒的停顿,需要立马esc回到 正常模式
set ft?<CR> 查看文件类型
<CR> 也是下走一行
set ts=4
set nu
" // vimrc的注释
0 // 行首
$ // 行尾
^ // 行首第一个空白字符
( 和 ) // 移到上一句和下一句
{ 和 } // 移到上一段和下一段
f(find) // 找到下一个紧接着输入的字符
t(till) // 找到下一个紧接着输入的字符 不包含该字符
d 加动作来进行删除(dd 删除整行);D 则相当于 d$,删除到行尾。
c 加动作来进行修改(cc 修改整行);C 则相当于 c$,删除到行尾然后进入插入模式。
s 相当于 cl,删除一个字符然后进入插入模式;S 相当于 cc,替换整行的内容。
i 在当前字符前面进入插入模式;I 则相当于 ^i,把光标移到行首非空白字符上然后进入插入模式。
a 在当前字符后面进入插入模式;A 相当于 $a,把光标移到行尾然后进入插入模式。
o 在当前行下方插入一个新行,然后在这行进入插入模式;O 在当前行上方插入一个新行,然后在这行进入插入模式。
r 替换光标下的字符;R 则进入替换模式,每次按键(直到 )替换一个字符。
u 撤销最近的一个修改动作;U 撤销当前行上的所有修改。
‘diw’(理解为 delete inside word) 删除一个单词
例句:if (message == "sesame open") // 光标在粉红色的a上
di" if (message == "") // 删除 “" 之间的
di( 或 di) // 删除 ()之间的 // da( 类似,只是把()也删了
c2i{ 删除并插入 到外层的第二个 {
#Windows Vim设置
为了避免和 resharper的 refactor 重命名(Ctrl+R+R)的冲突 长按Esc可以取消Visual状态
#Windows关闭代理后连不上网了
Win10: 所有设置-》网络和Internet-》左下角“代理”
#Centos8如何优雅的运行一个Deamon
nohup COMMAND >/dev/null 2>&1 &
#查看Linux相关版本号
cat /etc/redhat-release
输出: CentOS Linux release 8.2.2004 (Core)
uname -r
输出: 4.18.0-193.14.2.el8_2.x86_64
uname -a
输出: Linux iZuf6a8oj5mrgy7u3bvqfeZ 4.18.0-193.14.2.el8_2.x86_64 #1 SMP Sun Jul 26 03:54:29 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
cat /proc/version
输出: Linux version 4.18.0-193.14.2.el8_2.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Sun Jul 26 03:54:29 UTC 2020
#yum源
cd /etc/yum.repos.d
#yum命令
yum list installed | vim
yum info httpd
yum remove -y "httpd*"
yum list xxx // 查看源上 xxx真正的名称
yum search xxx
#dnf命令
dnf install epel-release
dnf update epel-release
dnf clean all
dnf makecache
dnf list xxx // 查看源上 xxx真正的名称
#启动Apache
systemctl start httpd
systemctl enable httpd
systemctl status httpd
#Centos8安装WordPress
https://www.cnblogs.com/mrfangd/p/LNMP-CentOS8-1.html
https://www.cnblogs.com/mrfangd/p/LNMP-CentOS8-2.html
https://www.cnblogs.com/mrfangd/p/LNMP-CentOS8-3.html
Note: 安装了最新的nginx sudo vim /etc/yum.repos.d/nginx.repo
下面两个安装了:
#sudo rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-8.rpm # 安装remi源
sudo dnf install php-filter php-iconv php-simplexml php-xmlreader php-zlib php-pecl-imagick # 推荐安装的组件 注:php-pecl-imagick安装失败
#Centos8软件安装工具
whereis dnf // 更新
https://www.cnblogs.com/architectforest/p/12691304.html
dnf install epel-release // 更新的源
dnf update epel-release
#sudo rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-8.rpm // 安装remi源
whereis yum
wget http://mirrors.aliyun.com/repo/Centos-8.repo // 获取阿里云的 源
#阿里云安装软件
1. 更改WordPress密码
update wp_users set user_pass=md5("123456") where user_login='admin';
安装WordPress 参照: #Centos8安装WordPress
2. 安装墙
https://github.com/v2fly/fhs-install-v2ray
// 安裝執行檔和 .dat 資料檔
# bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
执行完后: systemctl enable v2ray; systemctl start v2ray
3.
yum -y install gcc-c++
yum -y install lrzsz
4. 安装gcc
yum install gcc
如果是 阿里云 一开始只装了gcc的c语言编译链接器,需要补充安装c++,用 yum install gcc-c++