后端程序员必会常用Linux命令总结
1. 调整终端窗口大小: ctrl + '-' 缩小, ctrl + shift + '=' 放大。
2. command --help 查询命令详细 或者 man command
3.ls命令,查看文件夹下的文件:
-a 显示当前文件夹所有文件,包括隐藏文件
-l 以列表的形式显示文件详情 drwxr-xr-x 2 root root 48 2013-11-27 16:34 test/
格式为: 文件类型('d':文件夹,'-':文件,'b':设备文件)+ 文件读写(分别为USER,GROUP,OTHER的权限 r:可读,w:可写,x:可执行)
硬链接数(有多少种方式可以访问)
文件拥有着
文件所属组
文件大小
文件最后修改时间
文件目录
ls h* 查找当前目录以h开头的文件。
还包括支持ls h? ,*h, [a-f]这样的正则表示情况。
4.cd命令
cd + .. 进入上级命令
cd + ~ 返回家命令 (直接cd也可以)
cd + '-' 切换最近两个目录
5.touch命令创建文件
文件如果已经存在,则会修改文件最后修改日期
6.mkdir创建目录
-p 创建多级目录 mkdir -p a/b/c/d
7.rm命令
-r 递归里面的文件可以删除文件夹
-f 不显示提示信息
8.cp复制命令
cp 原文件 目标路径
-i 若有覆盖是会询问
-r 复制文件夹时会复制文件夹所有内容
9.mv移动命令
-i 覆盖前会询问
mv 源文件 目标路径
mv 原文件名 新文件名 可以重命名文件
10.tree命令显示当前文件夹结构
-d 只显示文件夹
11. cat查看文件命令,一次性查看所有内容
-b 对非空行进行编号
-n 对所有行编号
12. more查看文件命令,分页查看
13. grep搜索文本命令
grep h text 在text中查看包含h的内容
-n 显示行号
-v 不包含h的行
支持正则表达式:^,$
14.echo命令,显示参数通常会和重定向一同使用
15.重定向
Linux允许将命令执行结果重定向到一个文件,可以将本应显示在终端上的内容追加到指定文件中
> 表示输出,会覆盖原有的内容
>> 表示追加,会将内容追加到已有文件的末尾
16.关机或重启 shutdown ; reboot
shutdown -r 重启
shutdown 选项 时间 设定多长时间后关闭
shutdown 20:35
17 ssh基础
用户通过SSH客户端可以连接到运行了SSH服务器的远程机器上,传输的数据是加密和压缩的。
ssh [-p port] user@remote
port是ssh监听端口,如果不指定,默认值为22
user 远程机器上的用户名,不指定默认为当前用户
remote 是远程机器上的地址 可以是IP 或 域名
SSH高级
SSH 连接信息都会保存在家目录下的 .SSH文件夹里
免密码登录
配置公钥 执行ssh-keygen 即可生成SSH钥匙,一路回车
上传公钥到服务器 执行ssh-copy-id -p port user@remote 让远程服务器记住公钥
配置别名
如果需要ssh mac 代替 ssh -p port user@remote,需要在创建~/.ssh/config并追加以下内容:
Host mac
HostName ip地址
User username
Port 22
保存之后即可使用ssh mac来远程连接
18 scp 在linux下远程拷贝文件的命令(unix和linux之间文件传输信)
把本地当前目录下的文件复制到远程:scp -P port 源文件 user@remote: url地址/文件名
把远程目录下的文件复制到当前目录下: scp -P port user@remote: url地址/文件名 文件名
加上-r 选项可以传送文件夹
19 filezilla (windows和linux之间文件传输)默认端口21
20 chmod 修改用户/组对文件/目录的权限
chmod +/-rwx 文件名|目录名
目录如果没有可执行 文件就无法对其使用终端命令
目录的可读 是查看目录里的内容
目录的可写 是可以增删改里面的文件
chmod [-R] 755 文件名/目录名
21 执行目录下的文件脚本
./ + 文件名
22 组管理
groupadd 组名 添加组
groupdel 组名 删除组
cat/etc/group 确认组信息
chgrp [-R] 组名 文件/目录名 修改文件目录的所属组
23 用户管理
useradd 用户名 添加用户
-m 自动在home目录下创建家目录
-g 组名 指定新建用户的组
userdel 用户名 删除用户
-r 自动删除用户家目录
cat /etc/passwd 确认用户信息
wang:x:1002:1001::/home/wang:
用户名:表示密码加密的:uid:gid:用户的全名:家目录:登录使用的shell
/user/bin/passwd 适用于修改用户密码的程序
24 查看用户信息
id[用户名] 查看用户的UID和GID信息
who 查看当前所有登陆的用户列表
whoami 查看当前登录用户的账户名
25 usermod 用来设置用户的主组/附加组和登录shell
主组:在新建用户时指定,在etc/passwd 第四列GID对应的组
附加组:在etc/group中最后一列表示改组的用户列表,用于指定用户的附加权限(设置了之后需重新登录生效)
usermod -g 组 用户名 修改用户的主组
usermod -G 组 用户名 修改用户的附加组
usermod -G sudo 用户名 将用户添加到sudo组里可以使用sudo权限
usermod -s /bin/bash 修改用户的登录shell
26 which
which 命令 查询命令在终端中的保存位置
27 bin和sbin
bin 是二进制执行文件目录,主要用于具体应用
sbin(system binary) 是系统管理员专用的二进制代码目录,用于系统管理
/user/bin 后期安装的一些软件
/user/sbin 超级用户的一些管理程序
28 切换用户
su - 户名 切换用户,并且切换到用户的目录
‘-’ 用来切换到家目录
exit 退出当前登录账户
su 不接用户名 直接切换到root用户(不推荐使用)
29 chown 修改文件拥有者
chown 用户名 文件/目录
30 查询日期和时间
date 查看系统时间
calendar 查看本月日历
-y 查看一年的日年
31 查看磁盘信息
df [-h] 显示磁盘剩余空间(disk free)
du [-h] 目录 显示目录下的文件大小
32 查看进程信息
ps 查看进程工作状态(process status)
a 显示终端上的所有进程
u 显示进程的状态
x 显示没有控制终端的进程
top 动态显示系统cpu和内存使用情况并排序
kill [-9] PID 关闭某个进程
33 find [路径] -name ’文件名或部分文件名' (find的用法很多,可以查询文件类型,创建时间,大小等等,大家可以用 man 或 --help查看不做过多赘述)
34 软链接 ln -s 被连接的源文件路径 目标文件名 (可以用ls -l查看连接详情)
注意:源文件路径应该为绝对路径,否则软连接的文件移动时会失效
没有-s会创建硬链接,会占用同样大的空间
35 硬链接 ln 原文件的路径 目标文件名
36 软链接与硬链接的区别
在linux中,文件和文件数据是分开存储的,文件相当于指针,在系统中找到对应的文件数据,软连接的文件名可以找到被连接的原文件,继而找到数据,但是如果原文件删除了,就找不到数据了。硬链接则是相当于复制了原文件,即使原文件被删了,指针还是能找到数据
37 打包压缩
tar.gz tar负责将很多数据进行打包
文件打包 tar -cvf 打包文件路径 被打包的文件 (多个文件用空格分开)
文件解包 tar -xvf 打包文件名
gzip负责压缩tar文件,默认扩展名为.tar.gz
文件包压缩 tar -zcvf 打包文件路径 被打包的文件 (多个文件用空格分开)
压缩包解压 tar -zxvf 打包文件名
bzip2 默认扩展名为.tar.bz2
文件包压缩 tar -jcvf 打包文件路径 被打包的文件 (多个文件用空格分开)
压缩包解压 tar -jxvf 打包文件名
-C 指定目标目录(如果目录不存在会不存在)
38 软件安装
sudo apt-get install 软件名 安装软件
sudo apt-get remove 软件名 卸载软件
sudo apt-get upgrade 升级软件
39 配置软件源
图形界面:可以在软件与更新中找到国内服务器
40 VIM
vi 文件名 + 行数 打开文件可以跳到文件的指定行,不指定行数可以跳到末尾
命令模式下:(用vi打开文件时自动进入命令模式)
数字 + 命令 命令重复的次数
光标方向移动 h j k l
行内移动 w 向后移动一个单词
b 向前移动一个单词
0 回到行首
^ 跳到行内第一个非空格字符
$ 跳到行尾
gg 跳到文件首行
G 跳到末尾
行数 + G 或 行数 + gg 移动到对应行数
屏幕移动 ctrl + b 向前翻页
ctrl + f 向后翻页
段落寻找 { 向前寻找段落
} 向后寻找段落
在行内输入% 可以匹配到成对的括号
文本标记 在光标出输入m + 一个大小写字母标记位置,光标移动时可以用 ' + 标记字母返回之前位置
dd 删除所在行(vi的删除命令本质上是剪切操作,可以用p粘贴删除的文本内容)
D 删除到末尾
删除和移动的配套:
dw 向后删一个单词
d0 删到文本开头
d{ 删除到段落开头
ndd 删除n行
d'a 删除到标记位置
d行数G 删除到指定行数
y(移动命令) 复制所选区域
yy 复制当前行
p 粘贴
r 在光标处替换字符
R 光标向后移,一直替换
缩排命令(可视模式可以整体缩进)
>> 向右缩进4个空格
<< 向左缩进4个空格
。 重复上一次的缩进操作
/str 查找字符串
n 下一个
N 上一个
光标放在单词处
* 查找上一个同样的字符
# 查找下一个同样的字符
末行模式下:
%s/被替换的str/新的str/g[c] 将文本中str整体替换 c是确认替换模式
在可视模式中不用输入%
e . 查看当前目录其他文件,选中按回车经行编辑 (不保存当前文件无法切换)
e 文件名 编辑其他文件
n 文件名 新建文件
w 文件名 写入到另一个文件,相当于另存为
sp [文件名] 横向分屏
vsp [文件名] 纵向分屏
ctrl + w命令下:
w 切换分屏窗口
r 翻转分屏窗口
c 关闭当前窗口
q 退出当前窗口
o 关闭其他窗口
编辑模式下:
可以使用ctrl + v 粘贴其他软件复制的内容
可视模式下:
v 进入可视模式 光标经过的区域都会选中
V 可视行模式 光标所在的行会选中
ctrl + v 可视块模式 垂直选中
d 删除选中部分的文本
u 撤销上一次命令
ctrl + r 与撤销相反,回复操作
后端程序员必会常用Linux命令总结的更多相关文章
- Java程序员必会常用Linux速查手册
目錄 系统服务管理 文件管理 查看日志 压缩与解压 磁盘和网络管理 防火墙 ftp操作 软件的安装与管理 其他 系统服务管理 systemctl 输出系统中各个服务的状态: systemctl lis ...
- 程序员必知的LinuxShell命令
程序员必知的LinuxShell命令 grep (Globle Regular Expression Print全局正则表达式) 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的 ...
- 找工作的程序员必懂的Linux
一.为什么要学习Linux 首先,我想先说一下:“为什么要学习Linux”?Linux 是什么,它是一款操作系统,是一个支持多用户.多任务.支持多线程和多CPU的操作系统:32位和64位的硬件可以在L ...
- 【Linux常用命令①】程序员必须掌握的Linux命令
目录 man:帮助命令 echo:输出 date:时间 reboot:重启 poweroff:关闭系统 wget:下载 ps:查看进程状态 top:任务管理器 pidof:查询某个指定进程的PID值 ...
- Java 程序员必须掌握的 Linux 命令
作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服务器上都是Linux系统.所以,要和服 ...
- Java 程序员必须掌握的 Linux 命令(转:导师Jencks)
1.查找文件 find / -name filename.txt根据名称查找/目录下的filename.txt文件. find . -name "*.xml"递归查找所有的xml文 ...
- 初级程序员应该了解的Linux命令
基于Linux的系统最美妙的一点,就是你可以在终端中使用命令行来管理整个系统.使用命令行的优势在于,你可以使用相同的知识和技能来管理随便哪个Linux发行版. 对于各个发行版以及桌面环境(DE)而言, ...
- Java程序员应该知道的linux命令
1.查看Java进程:ps -ef|grep java,ps auxf|grep jva; 2.杀死所有Java进程: pkill java, kill -9 进程ID: 3.进入目录:cd /usr ...
- 后端程序员必备的 Linux 基础知识+常见命令(近万字总结)
大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令. 如果文章有任何需要 ...
随机推荐
- opencv学习之路(34)、SIFT特征匹配(二)
一.特征匹配简介 二.暴力匹配 1.nth_element筛选 #include "opencv2/opencv.hpp" #include <opencv2/nonfree ...
- 【Alpha】Scrum Meeting 8
目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第8次会议在4月12日21:00进行微信会议. 交流确认了任务进度,对下一阶段任务进行分配.时长15min. 任务分配 姓名 当前阶段任务 ...
- Linux驱动
1 驱动分类 常规分类:字符设备.块设备.网络设备 字符设备:一种按字节来访问的设备,字符驱动负责驱动字符设备,这样的驱动通常实现open.close.read和write系统调用.如串口.LED.按 ...
- MySQL 增删改查
增--添加数据 新建数据库 create database newdatabase; 选择数据库 use newdatabase; 新建表 create table newtable(id int,n ...
- VS2110。VC++编译错误"error LNK2005: 已经在 XXX.obj 中定义的问题"
有时候我们会在头文件当中定义一些全局变量或者全局函数,这种做法会比较方便,但有时候会出现“编译错误"error LNK2005: 已经在 XXX.obj 中定义的问题"的链接问题. ...
- Django模板语言
day66 2018-05-08 1. 内容回顾 1. 模板系统(字符串替换) 1. 语法 1. 变量相关: {{ name }},{{name|length}},{{name|default:&qu ...
- Java中的各种bean对应的意义(VO,PO,BO,QO, DAO,POJO,DTO)
VO(value object) 值对象 通常用于业务层之间的数据传递,用 new 关键字创建,由 GC 回收的,和 PO 一样也是仅仅包含数据而已.但应是抽象出的业务对象 , 可以和表对应 , 也可 ...
- Jquery封装的Ajax
$.get方法 语法: $.get(url,data,function(e){ //e就是服务器返回的数据 },dataType); 四个参数: url: 请求的服务器地址 data: 发送给服务器的 ...
- 记一次linux上的ftp搭建过程
最近公司测试环境需要搭建ftp,正好自己稍微有点空且这方面确实不会,就自告奋勇说让我先试试,玩炸了你们再帮忙重装系统重新搭吧(手动滑稽),虽然最终是完成了,但是中间磕磕碰碰遇到一些小问题,到处查百度, ...
- 怎么将GitHub上的项目下载到本地,并运行
第一步:首页的有项目的地址才能下载 第二步:使用git 下载 命令:git clone 项目地址 第三步:npm install 下载依赖 第四步:npm run dev 运行项目