安装软件
yum
centos 一般使用yum来管理软件
-
更新所有可更新的包 yum update -
安装git yum install -y git
? -y 代表找到对应安装包后自动确认,否则需要你后面确认
apt
Ubuntu 一般使用apt来管理软件
apt install app_name
apt-get update 或者直接使用: apt update
apt-get upgrade 或 apt upgrade
apt-get dist-upgrade
sudo apt-get autoremove --purge app_name
sudo 是切换用户命令,不加用户名是切换到root(获取到管理员权限),autoremove 指明是卸载 --purge 干净的清理
修改root 密码
开机时迅速按e 到第二行 输入single 回车 然后按e 然后按b 然后输入passwd root
修改普通用户密码:
在root下,按passwd username
切换用户
su username
退出当前用户
exit 或 ctrl+d
vim
-
配置vim:在~ 目录下,vim ./vimrc 进行简单配置: set nu "设置显示行号"
set backspace=2 "能使用backspace 回删。注:暂时没感受出来
syntax on "语法检测
set ruler "显示最后一行的状态
set bg=dark "背景色设置
set hlsearch "高亮度反"
set laststatus=2 "两行状态行+一行命令行
set cindent "设置c语言自动对齐
set shiftwidth=4
set t_Co=256 "设置指定配色方案为257
set mouse=a "设置可以再VIM使用鼠标
set tabstop=4 "设置TAB宽度
set nocompatible "不兼容自带替换
set noerrorbells "命令出错不响铃
set showmatch "显示自动匹配括号等
set incsearch "查找过程中就开始高亮显示
set autowrite "自动存盘
set cursorline "光标所在行下滑线
set history=3000 "保存命令记录数量
set autochdir "自动切换到打开文件所在目录
set colorcolumn=82 "82列位置加一个线,作为代码长度的参考
-
vim中使用ctrl+s 会冻住vim,解冻使用:ctrl+q ; 在linux 下不要随便使用window下的快捷键! -
vim 显示行号:set number 只是暂时显示行号, 要永久显示行号需要修改vim配置; -
全局替换:%s/A/B/g ,将所有的A替换为B -
ctrl+p 或者ctrl+n 可提示输入,自动补全; -
yy :复制1行, num yy :复制num行; -
p :粘贴; -
dd : 剪切1行,num dd :剪切num行; -
全选:esc后g+g+v+G (ggvG) ;全部复制:ggyG ;全部删除:ggdG ; -
u : 撤销; ctrl+r :取消上一次撤销; -
set paste :粘贴模式,这样才不会格式混乱; -
保存文件时可以输入需要保存到的文件名:esc后按’:'后输入w test.cpp ; -
hjkl : h:right, j:down, k: up, l:left -
0 :快速到行首; -
shift+^ :到行头第一个字符;shift+$ :到行尾最后一个字符; -
0 (小写):向下插入一行;shift+o (大写):向上插入一行; -
定位到某个字符位置,从上往下使用/ x,从下往上使用?x :比如,/cout .?endl ,多个匹配位置移动:n 下移,N 上移; -
高亮查找:set hlserach ; -
保存退出:可以使用wq 但是使用x 更优雅一些(有必要时才存盘)。前两种都需要按esc 加: 后输入,可以更加优雅,直接输入shift+zz 保存退出; -
v :选择模式,可以按hjkl进行选中文本; -
. :重复上一条命令; -
跳转到指定行:先输入行号然后按shift+g ,或者:行号 回车; -
跳转到第一行:gg ;跳转到最后一行:g ; -
以词为单位移动: w :词头,e 词尾; -
使用/x 或?x 匹配后,按* :当前光标单词后面完全匹配相同单词,按# :当前光标单词前面完全匹配相同单词; -
取消匹配结果得高亮显示:noh -
fx 光标移到后面的x 字符处(右移动),Fx反向移动x字符处(左移动); -
tx 光标移动到x 字符前一个字符,Tx:反向移动到x字符前一个位置; -
dtx 删除到字符x 前,输入d 是要我们输入一个范围,用t 来指明到哪里; -
多行注释:ctrl+v 进入块模式,用j 选中多行,按shift+i ,在块的第一行加上注释标记// ,然后按esc 即可完成多行注释; -
取消多行注释:ctrl+v 进入块模式,用hjkl 选中多行的注释标记然后按d 即可取消多行注释; -
与上行格式对齐:ctrl+v 进入块模式,用hjkl 选中需要对齐的行的然后按= 即可和上行对齐; -
多行放到一行,选中文本,按shfit+j ; -
分屏:上下分屏esc后输入:split ,简写:sp ,左右分屏esc后输入vsplit ,简写:vs ;切换分屏按ctrl+w+w ;
- 隐藏某个分屏,切换到需要隐藏的分屏,按esc后输入
:hide ; - 关闭光标所在窗口使用:
close 或者 q ; - 关闭第num个窗口:
num q ; - 分屏再打开一个文件
vs file_path -
采用分屏同时编辑多个文件: vim test.cpp test.txt
分屏后,切换到对应屏中按esc后输入b 该屏显示的文件 ,例如b test.cpp ; -
vim中中打开其他文件:esc后:e file_name ,如果文件不存在会自动创建; -
将耗时程序调到后台执行:先暂停ctr+z , 然后bg 1 (此处1是后台运行程序编号)。这效果等价于一开始执行时命令后面加& ; 调回前台:可以先执行jobs 查看你调到后台执行的程序列表 ,然后将需要调回的程序`fg bg_program_id; example: root@iZwz9gjpm4ky42hfxp73mwZ:/code/server_primer/study/multiThread/demo4# ./main_sleep &
[1] 31817
root@iZwz9gjpm4ky42hfxp73mwZ:/code/server_primer/study/multiThread/demo4# ./main_sleep &
[2] 31822
root@iZwz9gjpm4ky42hfxp73mwZ:/code/server_primer/study/multiThread/demo4# jobs
[1]- Running ./main_sleep &
[2]+ Running ./main_sleep &
root@iZwz9gjpm4ky42hfxp73mwZ:/code/server_primer/study/multiThread/demo4# fg 2
./main_sleep
-
自带的vim教程:输入vimtutor ;
软件后台执行
nuhup
tmux
安装好tmux后输入tmux 新建一个会话窗口;
执行需要后台运行的程序,例如:
./server_main
ctrl+b 然后输入d 回车 --> 回到shell(隐藏窗口)
tmux ls :显示窗口会话tmux attach -t 0 : 进入0会话窗口tmux rename-session -t 0 <sess_name> :命名tmux attach -t sess_name :进入sess_name窗口tmux switch -t 0 :切换ctrl + d : 关闭当前会话
常用cmd
shell 快捷键
ctrl + w 往回删一个单词ctrl + u 删除光标前的字符ctrl + k 删除光标后的字符ctrl + a 移到开头ctrl + e 移到结尾ctrl + l 清屏
ls
ls -l -a -h folder_name
ls -lah folder_name
两个命令等价,-a列出所有(包括显示隐藏文件(夹):.d_name) -h 可更规范显示信息
显示内容最前面是d 表示是文件夹,是- 则表示是文件,l 表示是软链接
ls -F
文件夹后加一个’/'显示,便于区分文件和文件夹
ls -sail
显示文件Inode(最前面的数字),只显示Inode:ls -i
cd
cd / :到用户根目录,home所在目录- cd
~ :到用户家目录,~ :个人目录的地址,等价于/home/user_name ,user_name非root
mkdir
递归创建文件夹
mkdir -p a/b/c
一次创建多个文件夹
mkdir a b c
rmdir
删除空文件夹 删除非空文件夹:rmdir -r folder_name
ps
查看当前目录下运行的进程(程序)
ps al
查看当前目录下进程,a 所有,l 详细信息
ps axgl
系统下运行的所有进程,包括详细信息 (VSZ:内存,RSS:切换出所占物理内存,STAT:S-随眠,R-运行,S< - < 运行优先级比较高,Ss+ - + :前端程序)
ps -A
查看系统后台程序
ps -ef
系统下运行的所有进程,-e 所有,-f 完整信息
ps --forest
PID TTY TIME CMD
12112 pts/0 00:00:00 bash
13430 pts/0 00:00:00 \_ ps
会显示当前执行程序(_ ps)的父进程(bash), 感觉不如pstree 好用.
pstree
查看进程树
top
查看cpu使用情况
htop
需要先安装sudo apt-get install htop , 比top更形象的显示cpu等资源使用情况
kill pid_num
关pid为pid_num的进程,此时未带信号码,默认发出终止信号(15)
kill -s INT pid_num
优雅退出进程(以发送信号的方式退出),等价kill -s 2 pid_num
kill -9 pid_num
强制退出pid_num 进程。
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。下面是常用的信号:
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
ref:https://www.cnblogs.com/rsky/p/4886043.html
killall process_group
退出一组进程
tree
查看目录结构,没有tree则需要安装
tree folder_name
touch
本来这个命令是用来将文件修改时间设置为当前时间的,当touch的文件不存在就会创建这个文件, 所以现在常用它来创建文件
touch file_name
cat
查看文件
cat file_name
rm
删除文件(夹)
rm file_name
rm -rf folder_name
递归(-r)强制(-f)删除文件夹
cp
复制文件(夹)
cp from_file to_dir
复制文件夹需要加-r
cp -r from to
ln
为file1 创建硬链接 file2(文件地址**(Inode)**一样,相当于取了个别名的同一个文件)
cp -l file1 file2
也可以使用ln file1 file2 创建硬链接
为src_file创建一个软链接dst_file(类似于快捷方式,inode不一样)
cp -s src_file dst_file
也可以使用ln -s src_file dst_file 创建软链接
mv
移动文件(夹),或者重命名文件
mv folder_name dir
mv file_name1 file_name2
man
查看linux中全面命令手册,按q 退出
man ls
没有查看到的可以使用help
help cd
reboot
重启系统
shutdown
关闭系统
shutdown -h now
shutdown - h 60s
netstat -al | grep 8080
查看端口对应的程序
ifconfig
查看ip
pwd
查看当前所在路径
who
查看哪些用户登入了服务器
stat
查看文件详细信息
stat file
file
查看文件简单信息,比如文件类型,编码等
file file_name
!!
执行上一条命令 也可以:sudo !!
more 和 less
more向下查看文件,less向上查看命令
tail -num
查看文件的后num行,默认10行
head -num
查看文件前num行,默认10行
grep
g:global, re:正则,p:print
打印匹配的内容:
grep apple test.txt
统计匹配的内容:
grep -c apple test.txt
显示匹配内容所在行:
grep -n apple test.txt
打印不匹配的内容:
grep -v apple test.txt
和其他程序组合使用:
ps | grep bash
此时ps 输出作为grep的输入(| )
zip
压缩和解压,用前需要安装sudo apt-get install -y zip ,(-y 表示安装时自动确认)
tar
tar -xvf xxx.tar.gz
tar -xvf xx.tat.gz -C path/
wget
从网络上下载东西,-c :如果中断可以续传。
wget -c https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.gz
系统环境变量
当敲下一个命令,系统会从环境变量中找对应的程序执行。
echo $PATH
输出:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
查看所有环境变量:
printenv
过滤出想要看的环境变量可以结合grep :
printenv | grep PATH
设置环境变量,例如设置一个local环境变量(局部环境非全局环境)
test=local_env_test
echo $test
输出:local_env_test
设置为全局:
到设置局部变量时的bash,将设置的局部环境变量导入到全局环境变量
export test
取消:
unset test
配置shell
vim ~/.bashrc
添加环境变量:
PATH=$PATH:/xxx/bin
让修改生效:
source ~/.bashrc
编写shell
vim test.sh
# 里面输入shell命令,例如:ls-A
直接./test.sh 执行发现没有权限
使用chmod +x test.sh 授予执行权限
chmod
英文全称:changemode
-
chmod +w file :授予写权限 -
chmod -r file :取消读权限
chown
更改文件所有者
|