linux基础
linux下的目录下的目录与文件不能重名
-
pwd 显示当前路径
-
touch 创建一个文件,如果文件存在,则可以修改文件的末次修改时间
-
ls 查看目录下的内容
- ls -a 显示指定目录下所有子目录与文件,包括隐藏文件
- ls -l 以列表方式显示文件的详细信息
- ls -h 配合-l以人性化方式显示文件大小
-
ls -a 显示隐藏目录
-
cd 切换目录
-
mkdir 创建一个文件夹
- mkdir -p 递归创建目录
-
rm 删除一个文件
- rm -f 强制删除,忽略不存在的文件,无需提示
- rm -r 递归的删除文件夹下的文件,删除文件夹必须要加此参数
-
rmdir 删除一个空的文件夹
-
cp 拷贝文件
-
mv 移动文件
-
clear 清屏
-
command –help 查看文档帮助命令
-
man command 查看详细文档帮助命令
ls通配符的使用
-
*代表任意字符
-
?代表任意一个字符,必须是一个
-
[] 表示可以匹配字符组中的任意一个
-
[a,b,c] 表示匹配a,b,c中的任意一个
-
[a~f] 表示匹配a到f范围内任意一个字符
cd的使用
-
cd 切换到用户的主目录
-
cd ~ 切换到用户的主目录
-
cd – 在最近工作的两个目录进行切换
-
cd . 保持当前的目录不变
-
cd … 切换到上级目录
拷贝和移动文件
-
tree 以树状查看目录结构
- tree -d 只显示目录
-
cp 源文件 目标文件 复制文件
- cp -i 覆盖文件前提示
- cp -r 复制一整个目录
-
move 源文件 目标文件 移动文件或给文件或目录重命名
- mv -i 覆盖文件前提示
查看文件内容
-
cat 查看文件内容,创建文件,文件合并,追加文件内容等功能
- cat -b 对非空输出行编号
- cat -n 对输出的所有行编号
-
more 分屏显示文件内容
- 空格键 显示手册页的下一屏
- Enter键 一次滚动手册页的一行
- b 回滚一屏
- f 前滚一屏
- q 退出
- /word 搜索word字符串
grep查找
- grep 搜索文本 文件名 搜索文本文件内容
- grep -n 显示匹配行及行号
- grep -v 显示不包含匹配文本的所有行(类似于求反)
- grep -i 忽略大小写
- ^a 行首,搜索以a开头的行
- ke$ 行尾,搜寻以ke结束的行
- 如果搜索的单词中有空格,则需要用””把单词引起来
echo和重定向和管道
- echo hello world 会在终端中显示参数指定的文字,一般和重定向一起使用
- 重定向, > 表示输出,会覆盖原有文件内容;>> 表示追加文件内容
- | 表示管道命令
- 命令1 | 命令2 表示执行完命令1之后的结果再执行命令2
关机
-
shutdown 选项 时间 关机,重新启动,默认一分钟之后完成
- shutdown -r 重新启动
- shutdown now 立刻关机
- shutdown -r now 立刻重新启动
- shutdown +10 系统再过10分钟之后关机
- shutdown 18:30 系统将在18:30的时候进行关机
- shutdown -c 取消 重新启动或关机
查看或配置网卡信息
- ipconfig 查看网卡配置信息
- ping ip地址 检测目标的ip地址是否导通
-
ssh [-p port] user@remote
- port 默认为22
- user为服务器名称
- remote 可以是ip地址,也可以是服务器别名
- 在进行xshell进行远程连接时,如果连接不上,那么就是unbuntu的ssh服务没有启动,再ubuntu终端中输入sudo apt-get install openssh-server,ps -e | grep ssh ,查看如果有sshd则说明已经启动成功,此时再用xshell连接即可。详情请参考https://www.cnblogs.com/yadongliang/p/8663146.html
-
scp -P port 源文件 user@remote:目标文件 远程拷贝文件
- -r 可以复制一个文件夹
- 在windows中进行远程文件交互,可以下载软件filezilla,以FTP格式进行传输,注意此时的端口号为21
- 在xshell中进行文件传输时,首先需要在unbuntu中安装lrzsz包,安装命令是 sudo apt-get install lrzsz,然后在ubuntu中操作,sz是把ubuntu中的文件下载到本地,rz是将本地的文件上传到unbuntu中。并且上传时不能有同名文件,否则会失败。
权限
- 使用 ls-l,对于终端中显示的界面,
目录 | 拥有者权限 | 组权限 | 其他用户权限 |
---|---|---|---|
– | rw- | rw- | r– |
d | rwx | rwx | r-x |
d表示目录,r代表读,w代表写,x代表执行
- 修改权限 chmod +/-权限 文件名,例如 chmod +r hello.py,表示给hello.py增加读的权限
- 使用sudo 会进入到超级管理员root身份
组管理
- 在实际开发中,可以预先针对组设定好权限,然后将不同的用户添加到对应的组中,从而不用依次为 每一个用户设置权限
- 下面的操作均需加上sudo命令
- groupadd 组名 添加组
- groupdel 组名 删除组
- cat /etc/group 确认组信息
- chgrp -R 组名 文件/目录名 递归修改文件/目录的所属组
用户管理
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | useradd -m -g 组 新建用户名 | 添加新用户 | -m 自动建立用户家目录;-g 指定用户所在的组,否则会建立一个和同名的组 |
02 | passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用passwd可以修改自己的账户密码 |
03 | userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
04 | cat /etc/passwd | grep 用户名 | 确认用户信息 | 新建用户后,用户信息会保存在/etc/passwd文件中 |
查看用户信息
序号 | 命令 | 作用 |
---|---|---|
01 | id[用户名] | 查看用户的UID和GID信息 |
02 | who | 查看当前所有登陆的用户列表 |
03 | whoami | 查看当前登录的用户的账户名 |
-
usermod 可以用来设置用户的主组/附加组和登录shell,命令格式如下
-
主组:通常在新建用户时指定,在/etc/passwd的第四列GID对应的组
-
附加组:在/etc/group中的最后一列表示该组的用户列表,用于指定用户的附加权限
-
设置了用户的附加组之后,需要重新登录才能生效
-
usermod -g 组 用户名 修改用户的主组 usermod -G 组 用户名 修改用户的附加组 usermod -s /bin/bash 用户名 修改用户登录Shell -
默认添加的user用户是没有sudo命令的,可以用下面的命令为其添加sudo命令
- usermod -G sudo 用户名
- 当自己创建的用户,通过远程登录ubuntu时,其终端界面会默认是dash,没有颜色,而且上下键不能切换命令,此时我们需要在ubuntu下修改用户登录shell,使用usermod -s /bin/bash 用户名,重新远程连接即可。
切换用户
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
1 | su – 用户名 | 切换用户,并且切换目录 | – 可以切换到用户家目录,否则保持位置不变 |
2 | exit | 退出当前登录账户 |
- su 不接用户名,可以切换到root,但是不推荐使用,因为不安全
which
- 使用which 可以查看执行命令的所在位置,例如 which passwd
修改目录权限
序号 | 命令 | 作用 |
---|---|---|
1 | chown 用户名 文件名/目录名 | 修改拥有者 |
2 | chgrp -R 组名 文件名/目录名 | 修改组 |
3 | chmod -R 755 文件名/目录名 | 修改权限 |
拥有者 | 组 | 其他 | ||||||
---|---|---|---|---|---|---|---|---|
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
# 时间和日期
- date 查看当前系统时间
-
cal 查看日历
- cal -y 查看当前一年的日历
磁盘信息
- df -h 显示磁盘剩余空间
- du -h [目录名] 显示目录下的文件大小
- -h 以人性化的方式显示文件大小
进程信息
-
ps aux 查看进程的详细状况
- a 表示显示终端上的所有进程,包括其他用户的进程
- u 显示进程的详细状态
- x 显示没有控制终端的进程
-
top 动态显示运行中的进程并且排序
- 退出top,可直接输入q即可
- kill [-9] 进程代号 终止指定代号PID的进行,-9表示强行终止
- ps默认只会显示当前用户通过终端启动的应用程序
- 使用kill命令时,最好只终止当前用户开启的进程,不要终止root开启的进程,否则系统容易奔溃
find查找
-
find [路径] -name “文件名” 查找指定目录下的文件,包括子目录
- 学习的通配符照样可以使用在文件名中
- 如果不指定路径,则默认在当前文件夹下
ln软链接
-
ln -s 被链接的源文件 链接文件 创建一个文件的软链接,就类似于windows下的快捷方式
- 没有-s的创建的是一个硬链接,硬链接中两个文件占用相同的磁盘大小,工作中几乎不会创建硬链接
- 源文件要使用绝对路径,方便文件移动后可以继续使用
打包压缩
- tar是linux中最常用的备份工具,可以把一系列文件打包成一个大文件,也可以把一个打包的大文件变成一系列文件,tar只负责打包,不负责压缩,gzip负责压缩
-
打包文件
- tar -cvf 打包文件.tar 被打包的文件/路径
-
解包文件
- tar -xvf 打包文件.tar
- c 生成档案文件,创建打包文件
- x 解开档案文件
- v 列出归档解档的详细过程,显示进度
- f 指定档案名称,f后面一定是.tar文件,所以必须放选项最后。
- gzip是打包命令,后缀名为.gz,但是一般都是用tar打包之后,再用gzip压缩,所以压缩包的后缀名为.tar.gz
- tar 中有一个选项-z可以直接调用gzip,从而可以方便的实现压缩和解压缩的功能
- 命令格式 如下:
-
压缩文件
- tar -zcvf 打包文件.tar.gz 被压缩的文件/路径
-
解压缩文件
- tar -zxvf 打包文件.tar.gz
-
解压缩文件到指定路径,目标目录必须存在
- tar -zxvf 打包文件.tar.gz -C 目标路径
- bzip2也是一种压缩,后缀名为.bz2,与gzip类似,只不过tar中调用bzip2使用-j,其他与gzip一样
apt软件安装
-
安装软件
- sudo apt install 软件包
-
卸载软件
- sudo apt remove 软件包
-
更新已安装的包
- sudo apt upgrade
VIM
命令 | 解释 |
---|---|
vim 文件名 | 创建或打开一个文件 |
vim 文件名 +行数 | 快速定义到某一行,如果只写+号,则会定义到末尾 |
i | 进入编辑模式 |
Esc | 退出当前模式 |
:w | 保存 |
:q | 退出 |
:wq | 保存并退出 |
:q! | 强制退出 |
😡 | 保存并退出 |
:e . | 会打开内置的文件浏览器,浏览当前目录下的文件,必须先保存当前文件 |
:n 文件名 | 新建文件 |
:w 文件名 | 另存为,但是会仍然编辑当前文件,并不会切换文件,必须先保存当前文件 |
:sp[文件名] | 横向增加分屏 |
:vsp[文件名] | 纵向增加分屏 |
ctrl w w | 切换到下一个窗口 |
ctrl w r | 互换窗口 |
ctrl w c | 关闭当前窗口,但不能是最后一个窗口 |
ctrl w q | 退出当前窗口,如果是最后一个窗口,则退出VIM |
ctrl w o | 关闭其他窗口 |
先输入数字,在输入命令 | 让命令重复指定次数 |
hjkl | 左下上右 |
w | 向后移动一个单词 |
b | 向前移动一个单词 |
0 | 回到行首 |
^ | 回到行首第一个非空白字符 |
$ | 回到行尾 |
gg | 移动到文件顶部 |
G | 移动到文件末尾 |
数字gg | 移动到数字所在行数 |
数字G | 移动到数字所在行数 |
:数字 | 移动到数字所在行数 |
ctrl b | 向上翻页 |
ctrl f | 向下翻页 |
H | 移动到屏幕顶部 |
M | 移动到屏幕中间 |
L | 移动到屏幕底部 |
{ |
跳转到上一段的空行 |
} | 跳转到下一段的空行 |
% | 在成对的括号中进行匹配或切换 |
mx | 添加标记x,x是a-z,A-Z中的任意一个字母 |
‘x | 直接定位到标记x的所在位置 |
v | 进入可视模式,从光标位置开始按正常模式选择文本 |
V | 进入可视行模式,选中光标经过完整的行 |
ctrl v | 进入可视块模式,垂直方向选中文本 |
可视模式+移动命令 | 在可视模式下可以和移动命令连用 |
ggVG | 选中所有文本 |
u | 撤销 |
ctrl r | 反撤销 |
x | 删除光标所在字符,剪切,删除操作实际上就是剪切操作 |
d(移动命令) | 删除移动命令对应的内容,剪切 |
dd | 删除光标所在行,剪切 |
D | 删除至行尾,剪切 |
dw | 从光标位置删除到单词末尾 |
d0 | 从光标位置删除到行首 |
d} | 从光标位置删除到段尾 |
ndd | 从光标位置向下删除n行 |
d代码行G | 从光标位置删除到指定代码行 |
d’a | 从光标所在行删除到标记a之间的所有代码 |
y(移动命令) | 复制 |
yy | 复制一行 |
nyy | 复制n行 |
p | 粘贴 |
r | 替换光标字符 |
R | 替换光标之后的行字符 |
>> | 向右缩进4个字符,在可视模式V下,只需要按一个>号 |
<< | 向左缩进4个字符,在可视模式V下,只需要按一个<号 |
. | 重复上次命令 |
/str | 查找str |
n | 查找下一个 |
N | 查找上一个 |
* | 向后查找当前光标坐在单词 |
# | 向前查找当前光标所在单词 |
:%s/旧文本/新文本/g | 查找并全局替换 |
先选中要替换文字的范围 然后输入:s/旧文本/新文本/g |
可视区域内进行替换 |
:%s/旧文本/新文本/gc | 确认替换 |
y | 替换 |
n | 不替换 |
a | 全部替换 |
q | 退出 |
i | 在当前字符前插入文本 |
I | 在行首插入文本 |
a | 在当前字符后添加文本 |
A | 在行末添加文本 |
o | 在当前行后面添加空行 |
O | 在当前行前面添加空行 |
########## |
1、在命令模式下 2、输入10,表示要重复10次 3、输入i进入编辑模式 4、输入#也就是重复的数字 5、按下Esc返回到命令模式,返回之后vim就会把第3,4的操作重复10次 |
给多行代码添加注释 |
1、移动到要添加注释的第一行代码,按^来到行首 2、按ctrl v进入可视化模式 3、使用j向下选中要添加的代码行 4、输入I进入编辑模式,并在行首插入,注意,一定要是I 5、输入注释符号# 6、按下Esc返回命令模式 |