Captain's Geek-Island Captain's Geek-Island
首页
生活如斯乎
架构师的路
  • 分类
  • 标签
  • 归档
沉洋官网 (opens new window)

SleepyOcean

走,找新大陆去
首页
生活如斯乎
架构师的路
  • 分类
  • 标签
  • 归档
沉洋官网 (opens new window)
  • 计算机基础

  • 并发专题

  • 性能调优专题

  • 工具专题

  • 源码框架专题

  • 设计模式

  • 分布式专题

  • 实战专题

  • 技术杂文

  • 云原生专题

  • 大数据分析专题

  • 前端专题

  • 运维专题

    • Linux基础 - 基础知识
    • Linux基础 - 命令手册
      • 1. 文件操作
        • 1.1 文件创建
        • 1.2 文件查看
        • 1.3 文件修改
        • 1.4 文件压缩
      • 2. 权限操作
        • 2.1 查看文件详情
        • 2.2 修改文件/目录的权限
        • 2.3 用户管理
        • 2.4 用户组的管理
      • 3. 网络相关
        • 3.1 设置静态IP
      • 运维相关命令
        • 常用命令
        • 端口信息 - netstat
        • 其他命令
        • 查看正在运行的进程
      • 📂 其他常用命令合集
        • 🔍 搜索命令
        • 🛠 VMware中给Linux 扩容
        • 👩 将普通用户加 sudo 权限
        • 🥘 磁盘大小查看
        • 👨 查看所有用户
        • 📝 更改文件夹目录权限
        • 🤹‍♂️ 查看所有环境变量
        • 🖇️ 修改 Linux 默认ssh端口
    • Windows 命令行配置代理
    • 自动运维 - 自动化脚本
    • 自动运维 - 配置自动化
    • 系统安装 - Win10安装教程
    • 系统配置 - MacOS配置
    • 系统配置 - Linux配置
    • 系统配置 - Android TV配置
    • 独门秘技 - 激活手册
  • 经验专题

  • 面试专题

  • 软实力专题

  • 架构师的路
  • 运维专题
SleepyOcean
2020-05-12

Linux基础 - 命令手册

对常用的Linux命令进行分类整理,Windows的命令也有哦

更多命令参考 Linux命令大全 (opens new window)

# 1. 文件操作

# 1.1 文件创建

touch(创建), nano(创建或编辑), vi(创建或编辑), vim(创建或编辑) 等等

# 1.2 文件查看

cat, more, less, tail 等等

命令 说明
cat 只能显示最后一屏内容
more 可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看
less 可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看
head -10 查看文件的前10行,Ctrl+C结束
tail -10 查看文件的后10行,Ctrl+C结束

注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件,会随着程序的运行,日志会变化,可以使用 tail -f catalina-2016-11-11.log 监控tomcat日志文件 catalina-2016-11-11.log 的变化

# 1.3 文件修改

# vim使用指南

wq/q! (输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存)

1. 移动光标

命令 说明
vim 可以使用小写英文字母 h j k l 分别控制光标左 下 上 右移动,也可以使用箭头
Ctrl+b 屏幕往后移动一页
Ctrl+f 屏幕往前移动一页
Ctrl+u 屏幕往后移动半页
Ctrl+d 屏幕往前移动半页
Shift+g == G 移动到文章的最后
Shift+4 == $ 移动到光标所在行的行尾
Shift+6 == ^ 移动到光标所在行的行首
w 光标跳到下个字的开头
e 光标跳到下个字的字尾
b 光标回到上个字的开头
#l 例如:5l ,56l 光标移动到该行的第'#'个位置
gg 进入到文本的开始

2. 删除文字

命令 说明
x 每按一次删除光标所在位置的一个字符
#x 栗子: 6x 删除光标所在位置的"后面"(包含自己在内)6个字符
Shift+x == X 每按一次,删除光标所在位置的前一个字符
Shift+#x == #X 栗子: 20X 删除光标所在位置的前面20个字符
dd 删除光标所在行
#dd 栗子: 6dd 从光标所在行开始删除6行

3. 复制

命令 说明
yw 将光标所在之处到字尾的字符复制到缓冲区中
#yw 栗子: 6yw 复制6个字符到缓冲区
yy 复制光标所在行到缓冲区
#yy 栗子: 6yy 拷贝从光标所在的该行"往下数"6行文字
p 将缓冲区内的字符贴到光标所在位置

注意:所有与y有关的复制命令都必须与p配合才能完成复制粘贴功能

4. 替换

命令 说明
r 替换光标所在处的字符
R 替换光标所到之处的字符,知道按下Esc键为止

5. 撤销上一次的操作

命令 说明
u 回到上一个操作,按动多次'u'可以执行多次回复

6. 更改

命令 说明
cw 更改光标所在处的字到字尾处
c#w 栗子: c3w 表示更改三个字

7. 跳至指定行

命令 说明
Ctrl+g 列出光标所在行的行号
#G 栗子: 15G 表示移动光标到文章的第15行行首

# 1.4 文件压缩

Linux中的打包文件一般是以 .tar 结尾的,压缩的文件一般是以 .gz 结尾的。而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般 .tar.gz。

# 1.4.1 打包压缩

# 格式
tar -zcvf xxx.tar.gz xxx

# 示例
# 假设test目录下有三个文件分别是 :aa.txt bb.txt cc.txt,我们要打包test目录并指定压缩后的压缩包名称为test.tar.gz
tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt 
# 或
tar -zcvf test.tar.gz /test/
1
2
3
4
5
6
7
8
  • z:调用gzip压缩命令进行压缩
  • c:打包文件
  • v:显示运行过程
  • f:指定文件名

# 1.4.2 解压缩

# 格式
tar [-xvf] xxx.tar.gz

# 示例
# 将/test下的test.tar.gz解压到当前目录下可以使用命令
tar -xvf test.tar.gz

# 将/test下的test.tar.gz解压到根目录/usr下。( -C 代表指定解压的位置)
tar -xvf xxx.tar.gz -C /usr
1
2
3
4
5
6
7
8
9
  • x:代表解压

# 2. 权限操作

操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。

# 2.1 查看文件详情

$ ls -l
total 1508
drwxr-xr-x.  3 root root     4096 Aug  8  2018 abrt
drwxr-xr-x.  4 root root     4096 Aug  8  2018 acpi
-rw-r--r--.  1 root root       16 Aug  8  2018 adjtime
-rw-r--r--   1 root root    12288 Jan 21  2019 aliases.db
-rw-r-----.  1 root chrony    481 Sep 15  2017 chrony.keys
lrwxrwxrwx.  1 root root       14 Aug  8  2018 system-release -> centos-release
1
2
3
4
5
6
7
8

权限解释

文件的类型:

  • d: 代表目录
  • -: 代表文件
  • l: 代表链接(可以认为是window中的快捷方式)

Linux中权限:

  • r:代表权限是可读,r也可以用数字4表示
  • w:代表权限是可写,w也可以用数字2表示
  • x:代表权限是可执行,x也可以用数字1表示

# 2.2 修改文件/目录的权限

# 修改 aa.txt 的权限为属主有全部权限,属主所在的组有读写权限, 其他用户只有读的权限
$ chmod u=rwx,g=rw,o=r aa.txt

# 或使用数字表示
$ chmod 764 aa.txt
1
2
3
4
5

小技巧: 开机自启动(以 zookeeper 为例)

# 新建一个脚本 zookeeper
$ touch zookeeper

# 为新建的脚本 zookeeper 添加可执行权限
$ chmod +x zookeeper

# 把 zookeeper 这个脚本添加到开机启动项里面
$ chkconfig --add zookeeper

# 看看是否添加成功
$ chkconfig --list
1
2
3
4
5
6
7
8
9
10
11

# 2.3 用户管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

# 相关命令
$ useradd 选项 用户名:添加用户账号
$ userdel 选项 用户名:删除用户帐号
$ usermod 选项 用户名:修改帐号
$ passwd 用户名:更改或创建用户的密码
$ passwd -S 用户名 :显示用户账号密码信息
$ passwd -d 用户名: 清除用户密码
$ su - 用户名:切换登录用户
1
2
3
4
5
6
7
8

useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。该文件内容的解释:用户名:密码:用户id:组id:用户说明:用户的主目录:用户使用的shell环境(默认为bash)

passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

# 2.4 用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

# 相关命令

# 增加一个新的用户组
$ groupadd 选项 用户组

# 要删除一个已有的用户组
$ groupdel 用户组

# 修改用户组的属性
$ groupmod 选项 用户组
1
2
3
4
5
6
7
8
9
10

# 3. 网络相关

# 3.1 设置静态IP

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens33
auto ens33
iface ens33 inet static
address 192.168.88.100
netmask 255.255.255.0
gateway 192.168.88.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 运维相关命令

# 常用命令

命令 说明
pwd 显示当前所在位置
grep 要搜索的字符串,要搜索的文件。 --color: 搜索命令,--color代表高亮显示
ps -ef / ps aux 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:ps aux
kill -9 进程的pid 杀死进程(-9 表示强制终止。)先用ps查找进程,然后用kill杀掉
ln 创建链接文件

注意:

  • 如果直接用ps(Process Status)命令,会显示所有进程的状态,通常结合 grep 命令查看某进程的状态。
  • 创建软链接文件:ln -s [源文件] [目标文件] (硬链接不需-s选项)。
    • 软链接特点:权限是所有人都可以访问,并且软连接文件指向源文件。软链接就像windows系统中的快捷方式一样,特点也都类似。
    • 硬链接:类似copy,硬链接大小和源文件一样,并且是同步更新的。

# 端口信息 - netstat

  • an: 所有的连接和端口
  • tuln: 查看正在监听TCP(t)和UDP(u)的端口 ,例如:netstat -tuln | grep LISTEN
  • rn: 查看网关 route -n

# 其他命令

# 查看进程详细信息(可查看启动的jar包所在的目录), PID是启动的进程ID
$ ll /proc/{PID}

# 查看80端口占用
$ netstat -tunlp |grep 80
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp6       0      0 :::8080                 :::*                    LISTEN      910/java       
tcp6       0      0 :::80                   :::*                    LISTEN      721/apache2

# 递归下载服务器目录
$ scp -r sleepy@192.168.31.245:/home/sleepy/ e:\script
# 递归上传本地目录
$ scp -r script sleepy@192.168.31.17:/home/sleepy

# 解压
$ tar -zxvf xxx.tar.gz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 查看正在运行的进程

  • ps 命令:
$ ps -f | grep xxx	// 匹配xxx关键字进程
1

常用参数的意义:

  • -A:显示所有程序。
  • -e:此参数的效果和指定"A"参数同。
  • -f:显示UID,PPIP,C与STIME栏位。

各相关字段的意义:

  • UID:s程序被该 UID 所拥有
  • PID:就是这个程序的 ID
  • PPID:则是其上级父程序的ID
  • C:CPU使用的资源百分比
  • STIME:系统启动时间
  • TTY:登入者的终端机位置
  • TIME:使用掉的CPU时间。
  • CMD:所下达的是什么指令

# Windows命令

# 查看80端口占用
> netstat -aon|findstr "80"
1
2

# 📂 其他常用命令合集

# 🔍 搜索命令

# 搜索根目录/下所有包含jenkins的记录
$ find / -name jenkins
1
2

# 🛠 VMware中给Linux 扩容

使用工具 Gparted-live (opens new window)

参考文档: https://www.cnblogs.com/jytx/p/6323550.html

# 👩 将普通用户加 sudo 权限

# 修改 /etc/sudoers 文件, 增加一行指定用户的配置,例如将用户 sleepy 加 sudo 权限

sleepy ALL=(ALL:ALL) ALL


# 然后保存文件即可
1
2
3
4
5
6

# 🥘 磁盘大小查看

  • df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
  • du可以查看文件及文件夹的大小。
# 查看当前系统块的使用情况
$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             3.9G  300M  3.4G   8% /
/dev/sda7             100G  188M   95G   1% /data0
/dev/sdb1             133G   80G   47G  64% /data1
/dev/sda6             7.8G  218M  7.2G   3% /var
/dev/sda5             7.8G  166M  7.2G   3% /tmp
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
tmpfs                 2.0G     0  2.0G   0% /dev/shm

# 查看文件或文件夹的磁盘使用空间
$ du -h --max-depth=1 work/testing
27M     work/testing/logs
35M     work/testing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 👨 查看所有用户

# 方法一、通过 /etc/passwd 文件查看
cat /etc/passwd

# 方法二、通过 compgen 命令查看
compgen -u
1
2
3
4
5

# 📝 更改文件夹目录权限

# golden-data的目录递归授权给ocean用户
chown -R ocean golden-data
1
2

# 🤹‍♂️ 查看所有环境变量

printenv
1

# 🖇️ 修改 Linux 默认ssh端口

1)修改/etc/ssh/sshd_config文件

#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
# 修改port,保存
Port 1022
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

2)重启sshd服务

service sshd restart
1
#Linux
上次更新: 2022/03/12, 04:03:00

← Linux基础 - 基础知识 Windows 命令行配置代理 →

新鲜出炉
01
记录 - 快速搭建自动化部署平台
04-13
02
Docker搭建各类Paas服务
03-01
03
系统配置 - Android TV配置
02-12
更多文章>
Copyright © 2019-2022 SleepyOcean | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式