linux基础

  • Post author:
  • Post category:linux




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返回命令模式



版权声明:本文为weixin_46686232原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。