H_On个人小站

个人站

这都被你发现了【惊
奖励你一朵小红花~


服务器学习历程 Part 1 - Linux 基础

Linux 常用命令

查看文件

  • ls [路径] - 列出指定路径下的文件和文件夹,默认为当前文件夹(下同)
  • ls -a [路径] - 列出指定路径下的 所有 文件和文件夹(包含隐藏文件)
  • ls -l [路径] - 以列表形式显示:是否为文件夹(第一个 “-“/”d” );此文件的操作权限(三个一组的 “-“/”rwx”);文件属主;文件属组;文件大小;最后更新时间
  • ls -la [路径] - 以列表形式详细显示
  • ll [路径] - 通常将 ls -la 定义为 ll ,效果相同,自定义命令的方法自行百度日后添加
  • la [路径] - 通常将 ls -a 定义为 la ,效果(基本)相同

路径操作

  • cd [路径] - 进入指定路径,默认为当前文件夹
  • cd ../ - 返回上级目录
  • cd / - 根目录
  • cd ~ - 当前用户操作目录/家目录
  • pwd - 查看当前路径

文件操作

  • mkdir <文件夹名> - 创建空文件夹
  • touch <文件名> - 创建空文件
  • rm [路径]<文件> - 删除文件
  • rm [路径]<文件夹名> -r - 删除文件夹
  • mv [路径]<文件/文件夹> <指向的路径> - 移动文件/文件夹
  • cp [路径]<文件/文件夹> [路径][文件/文件夹] - 复制文件到制定路径/文件,不指定新文件名时不能为当前路径,有新文件名时可以不指定路径,默认在当前文件夹创建新文件

压缩打包

  • tar <-操作>f <压缩包名> [文件]
    • -f - 放在多个操作选项的最后,指定操作的 tar 文件
    • -c - 创建一个包
    • -r - 追加文件到包内 tar -f [压缩包名] -r [文件名]
    • -t - 列出包内的文件
    • -x - 提取包内文件
    • -U - 首先删除已存在文件,然后解压
    • -z - ungzip 通过 gzip 过滤存档,简单来说就是压缩/解压缩选项

几个栗子:

  • tar -cf t.tar a.txt b.txt - 把文件 a.txt 和 b.txt 打包成 t.tar
  • tar -tvf t.tar - 详细信息的形式列出 t.tar 中的所有文件
  • tar -xf t.tar - 从 t.tar 中提取所有文件
  • tar -zcvf y.tar.gz <文件> - 将指定文件压缩打包成 y.tar ,同时显示操作的文件
  • tar -zxvf y.tar.gz - 解压提取包内文件同时显示解压出来的文件

压缩来说 tar 就是好程序了,7z 也不错,zip 也还行,其他的不考虑。由于 tar 是 Linux 自带的压缩程序,其他的都需要安装,操作 Linux 的话就用 tar 叭。

赋权分组

  • chmod <文件所有者权限><群组访问权限><其他人访问权限> <文件名> - 更改文件的权限
    • 输入 ll hon.txt (hon.txt 是 root 用户创建的文件)后会显示 -rw-r--r-- 1 root root 21 Sep 18 12:12 hon.txt
    • 最开始的十个字符就是指示文件的访问状态的
    • 第一个字符是文件标识,如果是 “-“ 说明这是个文件 ,如果是 “d” 说明这是个文件夹
    • 接下来三个一组
    • 第一个是 “r” - 可读 - 权值是 4
    • 第二个是 “w” - 可写 - 权值是 2
    • 第三个是 “x” - 可执行 - 权值是 1
    • 每组的三个字符如果是 “-“ 表示没有此操作的权限,如果是字母表示有此操作的权限
    • 例如上面那个实例,就是表示 hon.txt 是个文件;hon.txt 的所有者能读写;hon.txt 所有者所属用户组用户只能读;其他用户只能读
    • chmod 后面跟的三个数字表示的就是三个分组的权限:1 - 只执行;2 - 只写;3 - 可写可执行;4 - 只读;5 - 可读可执行;6 - 可读写;7 - 可读可写可执行
    • 例如 chomd 764 hon.txt 表示 文件的所有者 可读可写可执行;群组成员 可读写;其他用户 只能读
    • 我认为这些操作已经高于我目前的需要,更多操作请看文末的参考文章
  • chown [-R] <用户名.组名> <文件/文件夹> - 将文件的所有者改为制定用户(或组,或二者同时),加上 -R 可更改文件夹下所有文件的属主
  • chgrp [-R] <组名> <文件/文件夹> - 将文件的所属组改为制定组,加上 -R 可更改文件夹下所有文件的属组
    • 注:chown .hon a 和 chgrp hon a 的效果完全相同,都可以把文件 “a” 的数组变成 “hon”

用户操作

  • cat /etc/passwd - 显示所有用户
  • useradd <新用户名> - 创建新用户
  • userdel <用户名> - 删除用户
  • gpasswd -a [用户名] [组名] - 将用户加入到组
  • gpasswd -d [用户名] [组名] - 将用户从组中移除
  • passwd [用户名] - 更改用户密码,默认为当先用户的密码
  • w - 查看活动用户
  • who - 查看当前用户
  • whoami - 查看当前用户名
  • last - 查看登录成功的用户记录
  • lastb - 查看登录不成功的用户记录

组操作

  • cat /etc/group - 显示所有组
  • groups [用户名] - 显示用户所在组,默认为当前用户所在组
  • groupadd <新组名> - 创建新组
  • groupdel <组名> - 删除组
  • groupmod <组名> -n <组新名> - 更改组名

查看进程

  • top - 实施浏览服务器使用情况
  • ps - 查看静态的进程统计信息 ( Processes Statistic )
    • a - 显示当前终端下的所有进程信息,包括其他用户的进程
    • u - 使用以用户为主的格式输出进程信息
    • x - 显示当前用户在所有终端下的进程
    • -e - 显示系统内的所有进程信息
    • -l - 使用长(long)格式显示进程信息
    • -f - 使用完整的(full)格式显示进程信息

需要注意的是,有一部分选项是不带 “-“ 前缀的(添加 “-“ 前缀后含义可能会有出入)
习惯上将上述选项组合在一起使用,如,ps auxps -elf

远程文件传输

  • scp -r [文件/文件夹] [连接服务器的用户]@:[路径] - 将本地文件上传到目标服务器

    例:scp -r /root/hon.txt root@192.168.1.100:/root/ 将本地的文件 “hon.txt” 上传到目标服务器的 “/root” 文件夹中
    注意连接时要输入目标服务器的 root 用户的密码

  • scp -r [连接服务器的用户]@:[路径] [路径] - 将目标服务器的文件/文件夹下载到本地文件夹中

    例:scp -r root@192.168.1.100:/root/newhon.txt /root/ 将远程服务器的文件 “newhon.txt” 下载到本地 “/root” 文件夹中
    注意连接时要输入目标服务器的 root 用户的密码

编辑器

  • nano - Linux 自带的编辑器,操作简便难受
  • vi - Linux 自带编辑器,经典编辑器之神,没有常年的联系恐怕适应不了
  • vim - 需要安装的优化版 vi 编辑器,在 vi 的功能基础上支持各种简便操作,能够使新人快速上手

vim 基础操作

注:在 vim 编辑器内 按 esc 返回到命令模式 所有 vim 命令的都是在命令模式下开始的,如果不确定自己现在是什么模式,狂按几下 esc 就好了

编辑

  • i - 从当前位置开始插入
  • I - 从光标所在行行首开始插入
  • a - 从光标下一个位置开始插入
  • A - 从光标所在行行末开始插入
  • s - 删除当前字符并插入
  • S - 清空光标所在行并开始编辑
  • o - 在下面新建一行开始编辑
  • O - 在上面新建一行开始编辑
  • x - 剪切当前位置的一个字符(或选中的一段字符)
  • X - 剪切上一个位置的一个字符(若已有选框,剪切整行)
  • u - 撤销一步操作
  • U - 撤销一步撤销
  • p - 在光标后面的位置粘贴
  • P - 在光标前面的位置粘贴
  • v - 从当前字符开始以单个字符为单位扩选
  • V - 从当前行开始以行为单位扩选
  • h - 光标向左移动
  • j - 向下
  • k - 向上
  • l - 向右
  • d - 选中一段文字后按 “d” 进行剪切
  • dd - 剪切一行(带行末的换行符)
  • D - 剪切一行(不带行末的换行符)
  • y - 选中一段文字后按 “y” 进行复制
  • yy/Y - 复制一行(带行末的换行符)

敲代码实用命令

  • >> - 适光标所在行(或选中的多行)增加一个 tab 的缩进
  • << - 适光标所在行(或选中的多行)减少一个 tab 的缩进
  • { - 跳转到上一个空行
  • { - 跳转到下一个空行
  • [[ - 跳转到所有文本的顶部
  • ]] - 跳转到所有文本的底部

注:一个整数 (n) + 以上任何一条指令,能使指令重复运行 n 次
如:3x - 能够删除光标后的三个字符

实用技巧

先 [[ 跳转到文首,然后 V 进入可视模式(–VISUAL–),然后 ]] 到文末选中全部,按一下 “=” 就会发现代码自动格式化了,小心不喜欢
补救方法就是看看上面的文章按 u 就可以撤回辣

冒号命令

  • :q - 退出编辑器
  • :q! - 强制退出编辑器,不保存以更改内容
  • :w - 保存
  • :wq - 保存并退出
  • :x - 保存并退出
  • :%s/<字符串a>/<字符串b>/g - 将整个文件中的 "字符串a" 更换为 "字符串b"
  • :s/<字符串a>/<字符串b>/g - 将光标所在行的 "字符串a" 更换为 "字符串b"

斜杠命令

  • /<字符串> - 在文件中匹配字符串的位置
    • 按 “n” 可以查找下一个
    • 按 “N” 可以查找上一个

vim 的命令我这里只放出来了几个我个人写程序的时候经常用的,vim 的功能当然不限于此,更多的功能可以期待猹后期的补充哟~关于猹的更多小秘密点击页面下面的链接看看叭~

参考文章:
Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux上新建用户及赋权操作
Linux如何查看和控制进程
Linux tar解压缩命令详解
linux 远程复制文件或文件夹