linux

122 阅读11分钟

命令解释
cd -在最近的两次目录中切换
ls -lh以目录形式展示所有文件
touch创建一个空白文件 或 可以修改文件的末次修改日期
mkdir -p递归创建目录
rm -r递归删除目录下的目录以及文件
tree -d只显示目录
tree -L n显示n层目录
cp 源文件 目标文件copy复制/覆盖文件
cp -i覆盖文件前提示
cp -r若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
mv 源文件 目标文件move移动文件或者目录 文件或者目录重命名
mv -i覆盖文件前提示
cat 文件名concatenate查看文件内容、创建文件、文件合并、追加文件内容等功能
cat -b对非空输出行编号
cat -n对输出的所有行编号
more分屏显示文件内容(空格键:显示下一屏;Enter:一次滚动一行;b:回滚一屏;f:前滚一屏;q:退出;/word:搜索字符串)
grep 搜索文本 文件名-n 显示行号 -v 对搜索结果取反 -i 忽略大小写
grep ^a行首,搜索以a开头的行
grep ke$行尾,搜索以ke结束的行
hostnamectl status显示当前主机名设置
hostnamectl set-hostname设置系统主机名
重定向,表示输出,会覆盖文件原有的内容
>>重定向,表示追加,会将内容追加到已有文件的末尾
管道 |more、grepLinux 允许将 一个命令的输出 可以 通过管道 做为 另一个命令的输入
shutdown 选项 时间不指定选项和参数,默认表示1分钟后关机
shutdown -r now现在重新启动
shutdown -c取消关机/重启操作
shutdown 20:2520:25 会关机
shutdown +1010分钟后关机
ssh [-p port] user@ip
scp -P port 本地文件地址 user@ip:文件地址secure copy将本地计算机文件copy到远程服务器
scp -P port user@ip:文件地址 本地文件地址
-r可以复制文件夹

SSH远程登录

1、SSH 免密码登录

有关SSH配置信息都保存在在用户家目录下的 .ssh 目录下

  1. 使用 ssh-keygen 在 .ssh 目录下生成 id_rsaid_rsa.pub

  2. 执行 ssh-copy-id -p port user@remote 可以让远程服务器记住我们的公钥

2、SSH 设置登录别名
  1. ~/.ssh目录下(如果没有,则)创建config文件:~/.ssh/config

  2. ~/.ssh/config追加以下内容:

    Host redhat8
    	HostName 104.168.204.234
    	User root
    	Port 22
    

用户权限相关命令

权限英文缩写数字代号
readr4
writew2
执行excutex1
ls -l 可以查看文件夹下文件的详细信息,从左到右依次是:
  • 权限,第1个字符如果是d表示目录
  • 硬链接数,通俗地讲,就是有多少种方式,可以访问到当前目录/文件
  • 拥有者,家目录下 文件/目录 的拥有者通常都是当前用户
  • ,在 Linux 中,很多时候,会出现组名和用户名相同的情况
  • 大小
  • 时间
  • 名称
目录 拥有者权限 组权限 其他用户权限
文件权限示例: - r w - r w - r - -
目录权限示例: d r w x r w x r - x
chmod 简单使用(重要)
  • chmod 可以修改 用户/组文件/目录 的权限

  • 命令格式如下:

    chmod +/-rwx 文件名|目录名
    

组管理命令

创建组/删除组 的终端命令都需要通过 sudo执行

命令作用
sudo groupadd 组名添加组
sudo groupdel 组名删除组
cat /etc/group确认组信息
chgrp -R 组名 文件/目录名递归修改文件/目录的所属组
  • 组信息保存在 /etc/group 文件中
  • /etc 目录是专门用来保存 系统配置信息 的目录

给用户进行 sudo 提权

1、将用户添加到 sudo 用户组
usermod -aG sudo username

# 检查用户是否拥有 sudo 权限
sudo whoami

# 如果打印 root,则表示提权成功
2、将用户添加到 sudoers 文件
第一种方法,在 /etc/sudoers 文件下追加:

username ALL=(ALL) ALL

第二种方法,在 /etc/sudoers.d 目录下创建一个新文件,文件名随意,一般与用户名一致,添加如下内容:

username ALL=(ALL) ALL

用户管理

命令作用说明
useradd -m -g 组 新建用户名添加新用户-m 自动建立用户家目录
-g 指定用户所在的组,否则会建立一个同名的组
passwd 用户名设置用户密码如果是普通用户,直接用 passwd 可以修改自己的密码
userdel -r 用户名删除用户-r 选项会自动删除用户家目录
cat /etc/passwd | grep 用户名确认用户信息新建用户后,用户信息会保存在 /etc/passwd 文件中
查看用户信息
命令作用
id [用户名]查看用户 UID 和 GID 信息
who查看当前所有登录的用户列表
whoami查看当前登录用户的账户名
passwd 文件

/etc/passwd 文件存放的是用户的信息,由6个分号组成的7个信息,分别是:

  1. 用户名(简称)
  2. 密码(x,表示加密的密码)
  3. UID(用户标识)
  4. GID(组标识)
  5. 用户全名或本地账号(如果没有则和 1 保持一致)
  6. 家目录
  7. 登录使用的 Shell,就是登录之后,使用的终端命令,ubuntu默认是 dash
usermod
  • usermod 可以用来设置用户的主组/附加组和登录Shell,命令格式如下:

  • 主组:通常在新建用户时指定,在 /etc/passwd 的第4列GID对应的组

  • 附加组:在 /etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限

    ​ 提示:设置了用户的附加组之后,需要重新登录才能生效!

    # 修改用户的主组(passwd 中的 GID)
    usermod -g 组 用户名
    
    
    # 追加用户的附加组
    usermod -aG 组 用户名
    
    
    # 修改用户登录 Shell
    usermod -s /bin/bash
    
which

提示

  • /etc/passwd 是用于保存用户信息的文件
  • /usr/bin/passwd 是用于修改用户密码的程序
  • which 命令可以查看执行命令所在位置,例如:

    which ls
    
    # 输出
    
    # /bin/ls
    
    which useradd
    
    # 输出
    
    # /usr/sbin/useradd
    
bin 和 sbin
  • Linux 中,绝大多数可执行文件都是保存在 /bin/sbin/usr/bin/usr/sbin
  • /bin(binary)是二进制执行文件目录,主要用于具体应用
  • /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
  • /usr/bin/(usr commands for applications)后期安装的一些软件
  • /usr/sbin(super user commands for applications)超级用户的一些管理程序
切换用户
命令作用说明
su - 用户名切换用户,并且切换到用户家目录- 可以切换到用户家目录,否则保持位置不变
su -不接用户名,可以切换到 root
exit退出当前登录用户,返回之前登录的用户
修改文件权限
命令作用
chown修改拥有者
chgrp修改组
chmod修改权限
  • 命令格式如下:

    # 修改文件|目录的拥有者
    chown username 文件名|目录名
    
    
    # 递归修改文件|目录的组
    chgrp -R 组名 文件名|目录名
    
    
    # 递归修改文件的 拥有者、组、其他 用户的权限 (r=4,w=2, x=1)
    chmod -R 755 文件名|目录名
    
    

系统信息相关命令

时间和日期
date查看系统时间
calcalendar 查看日历,-y 选项可以查看一年的日历
磁盘信息
df -hdisk free 显示磁盘剩余空间
du -h [目录名]disk usage 显示目录下的文件大小
进程信息
命令作用
ps auxprocess status 查看进程的详细状况
a:显示终端上包括其他用户的所有的进程
u:显示进程的详细状态
x:显示没有控制终端的进程
top动态显示运行中的进程并且排序
kill [-9] 进程代号终止指定代号的进程,-9 表示强行终止

ps默认只会显示当前用户通过终端启动的应用程序

其他命令

查找文件
# 查找指定路径(如果省略表示当前目录)下扩展名是 .py  的文件,包括子目录
find [路径] -name  "*.py"
软链接(相当于windows下的快捷方式)
ln -s 被链接的源文件 链接文件
  1. 没有 -s 选项建立的是一个 硬链接文件
    • 两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
  2. 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用

打包压缩

打包 / 解包 tar
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...


# 解包文件
tar -xvf 打包文件.tar

选项作用
-c生成档案文件,创建打包文件
-x解开档案文件
-v列出归档解档的详细过程,显示进度
-f指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后
压缩/解压缩
gzip
  • targzip 命令结合使用可以时间文件打包和压缩

    • tar 只负责打包文件,但不压缩
    • gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz这是linux中最常见的压缩文件格式
  • tar 命令中有一个选项-z可以调用gzip,来实现打包、压缩和解包、解压缩

  • 命令格式如下:

    # 压缩文件
    tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
    
    
    # 解压缩文件
    tar -zxvf 打包文件.tar.gz
    
    
    # 解压缩到指定路径
    
    # -C 解压缩到指定目录,注意:要解压缩的目录必须存在
    tar -zxvf 打包文件.tar.gz -C 目标路径
    
bzip2

gzip使用方法一致,有两点不同:

  1. gziptar 里使用的是 -zbzip2 使用的是 -j
  2. gzip 后缀为*.gzbzip2 后缀为 *.bz2
tar -jcvf 打包文件.tar.bz2 被压缩文件/路径...
tar -jxvf 打包文件.tar.bz2

CURL 命令

参考链接

发送 POST 请求数据体 -d
curl -d 'login=emma&password=123'-X POST https://google.com/login
或者
curl -d 'login=emma' -d 'password=123' -X POST  https://google.com/login
将 POST 请求发送的数据进行 URL 编码 --data-urlencode
curl --data-urlencode 'comment=hello world' https://google.com/login
GET 请求构造 URL 的查询字符串 -G
curl -G -d 'q=kitties' -d 'count=20' https://google.com/search
添加 HTTP 请求的标头 -H
curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login
打印出服务器响应的 HTTP 标头,空一行,再输出网页的源码 -I
curl -i https://www.example.com
只打印服务器HTTP响应标头 -I
curl -I https://www.example.com
限制 HTTP 请求和回应的带宽,模拟慢网速的环境 --limit-rate
curl --limit-rate 200k https://google.com
指定 HTTP 请求的方法 -X
curl -X POST https://www.example.com
输出通信的整个过程,用于调试 -v
curl -v https://www.example.com

--trace参数也可以用于调试,还会输出原始的二进制数据

curl --trace - https://www.example.com

Redhat8—配置yum源

在Linux命令行中进行计算的6种方法

Linux查看系统基本信息,版本信息(最全版)

Ubuntu Server 20.04 配置Netplan连接没有密码的Wifi

Linux 目录结构

/
├── bin -> usr/bin			/bin 所有二进制命令所在的目录(用户),/usr/bin 用户可执行文件目录(应用程序)
├── boot					Linux内核及引导系统程序所需的目录
├── dev						所有设备文件的目录(如声卡、磁盘、光驱)
├── etc						二进制安装包(yum,rpm)配置文件默认路径,服务启动命令存放目录
├── home					普通用户的家目录默认数据存放目录
├							/lib 库文件存放目录
├── lib -> usr/lib
├── lib32 -> usr/lib32
├── lib64 -> usr/lib64
├── libx32 -> usr/libx32
├── lost+found				在EXT3系统中,当系统意外崩溃或意外关机时,会产生一些碎片文件在这个目录下面,系统启动时fcsk工具会检查这个目录,并修复已损坏的文件系统
├── media
├── mnt						用于临时挂载存储设备,通常情况下可以挂载LINUX ISO光盘进行无网条件下安装其它软件包
├── opt						自定义软件安装存放目录,用户自行安装的软件包存放目录
├── proc					进程及内核信息存放目录
├── root					root 用户的家目录
├── run
├── sbin -> usr/sbin		/sbin 系统管理命令存放目录(超级管理员使用的命令),/usr/sbin存放一些网络管理工具的软件目录
├── snap
├── srv
├── swap.img
├── sys
├── tmp						临时文件目录,程序运行时产生的临时文件存放目录
├── usr						系统存放程序的目录(命令和帮助文件)
└── var						存放内容常变动的文件目录,/var/log/meseage 系统日志文件,/var/spool/cron 系统定时任务配置文件