目前已接触的linux常用命令

注意:本文中的\为转义符,用于不被md语法转换格式

Git:

Git安装:

可以先去github仓库看git有哪些版本

https://github.com/git/git/releases

获取到下载链接后,直接从服务器上获取,如:

wget https://codeload.github.com/git/git/tar.gz/v2.13.0-rc1

下载完后是一个没有后缀的文件,重命名成.tar.gz结尾的形式即可,如:

mv v2.13.0-rc1 v2.13.0-rc1.tar.gz

解压

tar -zxvf v2.13.0-rc1.tar.gz

进入解压后的目录

cd git-2.13.0-rc1

安装源码前先下载依赖

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

删除下载依赖时自动下载的git(因为版本可能比较旧)

yum remove git

编译

make prefix=/usr/local/git all

安装(路径可自定义)

make prefix=/usr/local/git install

配置环境变量,加上安装路径的bin目录,手工生效环境变量

vim /etc/profile


PATH=$PATH:/usr/local/git/bin
export PATH

source /etc/profile

验证是否成功安装

git --version

如果报没有权限,那一般是文件没有执行权限,给文件授权即可(此处我的git安在了/usr/local下)

chmod -R u+x /usr/local/git/bin

Git安装后,新建一个空文件夹,用于初始化及作为存放代码的仓库
mkdir 文件夹名:在当前目录下新建一个文件夹;
mkdir /路径/文件夹名:在指定路径下新建一个文件夹;
mkdir -p /路径/文件夹名:若指定目录及指定文件夹均不存在会递归创建路径及文件夹;
git init:初始化当前文件夹为git仓库;
git remote add origin 网址:添加远程仓库;
git pull origin master:从远程仓库的master分支上拉取更新;
git pull origin develop:develop:表示从远程的develop分支拉取到本地develop分支上,如果本地没有分支,不加:develop是可以的;
git reset --hard HEAD^:回退代码到上一个版本(如果修改了什么配置文件,而远程恰好提交了对配置文件的修改,内容影响小的情况下可直接回退上一个版本,拉取完后重新修改配置文件即可)

不小心建了本地分支,想删掉,

  1. git branch查看有哪些分支
  2. git checkout 分支名 切换到其他分支
  3. git branch -D 想删的分支
  4. 此时本地不想要的分支已经删掉了
  5. 假如要删不小心推上去的远程分支,先查看远程分支git branch -r
  6. 删除远程分支git push origin --delete 想删分支名

看本地仓库使用的哪个地址
git remote get-url --all origin

vi或者vim进入某文件的编辑

shift+G(非大写的g,即开启Capslock后按G是无效的):跳至最后一行;
ctrl+f:往前看;
i或者a或者o:进入插入模式;
esc:退出插入模式(必须退出插入模式才能退出编辑);
:q:退出编辑;
:w:保存并退出编辑;
:wq:强制保存并退出编辑;
:q!:不保存变更强制退出编辑;
/字符串从尾到头查找匹配的字符串,shift+#到另一个匹配项

路径切换cd:

cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";其中".."为上级目录的意思);
cd ../.. 返回上两级目录;cd !$ 把上个命令的参数作为cd参数使用;
pwd显示当前目录的完整路径;
cd过程中按tab可自动补全唯一文件(或文件夹)的完整名称,如code,输如cd ./co按tab可补全为cd ./code;

其余文件操作命令

tail -f 文件名(或者/路径/文件名):动态访问,多用于查看正在打印的日志;
tail -f xxxx.out -n101:以一次性查看101行的形式动态访问;
ctrl+c:退出当前命令(比如正在使用tail -f动态查看日志,使用这个即可退出);
ll:展示当前目录下的所有文件及文件详情(不展示隐藏文件及隐藏文件夹),它实际上是ls -l的一个别名。Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便;
mkdir -p /目录/目录:若要创建的目录的前置目录不存在,则递归创建相应的目录;

复制cp 目标文件名 目标完整路径:
cp -r 会把所有source当作普通文件(regular文件);
cp -R对特殊文件(管道文件,块设备文件,字符设备文件)会进行创建操作,而不是拷贝。
cp -a该选项通常在拷贝目录时使用(cp -p也行)。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
详细如下:
cp (复制档案或目录)
cp [-adfilprsu] 来源档(source) 目的档(destination)
cp [options] source1 source2 source3 …. directory
参数:
-a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而是强制复制;
-i :若目的档(destination)已经存在时,在覆盖时会先询问是否真的执行覆盖!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新 destination

删除rm -rf:
rm -rf命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉

脚本或者命令执行

sh 脚本(或者/路径/脚本名):执行脚本,只在当前shell窗口中执行,其中的变量不会加载到环境中,如果执行过程中断开SSH连接会终止执行,而且用sh执行脚本时,是会将环境中的变量加载进来的;
source(或者一个点.) 脚本(或者/路径/脚本名):执行脚本会把脚本文件中的变量定义加载到环境中(所以一般就用来生效一下环境变量),使用echo $变量名 甚至可以打印变量值,不太好;
./xxx.sh 脚本(或者/路径/脚本名):也可以执行脚本,与sh几乎无差别
nohup 命令(或者脚本):nohup是no hang up的缩写,不挂断的运行,和用户终端没有关系,例如我们断开SSH连接都不会影响它的运行;
&:是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出;
nohup COMMAND & 这样就能使命令永久的在后台执行(除非自己杀进程、或者执行停止命令、或者机器断电、机器故障、机器系统崩溃、机器内存溢出);
另外,sh执行脚本可以没有执行标志,可以不用在脚本第一行写上#/bin/sh,使用./xxx.sh执行则是调用脚本第一行指定的shell去解释执行,缺省为sh,就是bsh;

系统级

uname -a完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统
cat /etc/redhat-release查看当前系统版本的详细信息名称等信息
date看日期时间
date -s "2022-01-01 01:01:00"设置时间
ntpdate cn.pool.ntp.org从该地址同步时间
hwclock -w将当前时间写入bios防止重启失效
hwclock -r读取bios里的时间
uname -a可以显示设备的系统信息

ifconfig可以显示网关相关信息(一般看eth0的)

df -h可以显示磁盘空间相关信息
du -h可以统计当前目录的文件夹占用空间(如果直接在根目录执行可能占用较多cpu去统计)
free -h可以显示内存占用情况

ps aux --sort -rss按cpu占用从高到低查看进程
lsof -i:端口号如lsof -i:22查看22端口的占用情况,看哪个进程在使用
top动态查看各进程占用内存的情况,其中:

  • PID - 进程标示号
  • USER - 进程所有者
  • PR - 进程优先级
  • NI - 进程优先级别数值
  • VIRT - 进程占用的虚拟内存值
  • RES - 进程占用的物理内存值
  • SHR - 进程使用的共享内存值
  • S - 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死
  • %CPU - 进程占用的CPU使用率
  • %MEM - 进程占用的物理内存百分比
  • TIME+ - 进程启动后占用的总的CPU时间
  • Command - 进程启动的启动命令名称

sync保存缓存防止磁盘内容丢失

echo 3 > /proc/sys/vm/drop_caches同步缓存到磁盘后可安全地清除缓存所占用的内存
drop_caches的值可以是0-3之间的数字,代表不同的含义:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存

防火墙:
防火墙状态:systemctl status firewalld.service
排查某服务启动错误详情可加-l参数:systemctl status firewalld -l
Active: inactive (dead)/active(running)
关闭firewall:systemctl stop firewalld.service
重启:systemctl restart firewalld.service
启动:systemctl start firewalld.service
禁止firewall开机启动:systemctl disable firewalld.service
设置开机启用:systemctl enable firewalld.service
重新加载服务:systemctl daemon-reload
查看服务是否开机启动:systemctl is-enabled firewalld.service;echo
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看已经开放的端口:firewall-cmd --list-ports
列出所有开放的端口信息: firewall-cmd --list-all
开启端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
移除端口:firewall-cmd --zone=public --remove-port=80/tcp --permanent
命令含义:

  • –zone #作用域
  • –add-port=80/tcp #添加端口,格式为:端口/通讯协议
  • –permanent #永久生效,没有此参数重启后失效

测试指定ip或网址是否通,使用ping ip或网址来测试
若已安装telnet,可以telnet ip prot来测试某服务是否通(常用于服务和本机不在一台物理设备上的情况)
启了服务的另一台物理设备,也可以使用netstat -an|grep port来检查端口是否已被使用(端口没有被使用的话其他设备用telnet是怎样都访问不到的)

ps -ef|grep 进程名称:可以查看带有指定进程名的进程信息,如ps -ef|grep java
kill -9 进程号1 进程号2 进程号n:可配合上一条查看进程的命令杀死指定进程号的进程

chmod options 文件名,授权命令,rwx,读写执行,r=4,w=2,x=1,快捷授予权限为chmod 777 文件名,其中777=rwxrwxrwx,因为4+2+1=7,chmod u+x 文件名 表示给当前登陆的用户授予执行权限

tar -zxvf(或者-xvf) 文件名.tar.gz :用于解压.tar.gz结尾的压缩包,
tar -cvf 文件名.后缀 /路径:用于将指定路径(即文件夹)压缩成指定后缀的压缩包

zip -r 文件名.zip /路径:用于将指定路径的所有文件递归地压缩打包成zip包
unzip 文件名.zip:用于解压zip包

posted on 2021-11-22 15:14  阿不思的落胤  阅读(69)  评论(0编辑  收藏  举报