目录结构
Windows操作系统中路径是:
1 | C:\Users\Vicczyq\Desktop\a.cpp |
Linux操作系统路径:
1 | /Users/Vicczyq/Desktop/a.cpp |
基础命令
1、ls命令:
语法:ls [-a -l -h] [Linux路径]
- -a -l -h 是可选的选项
-a:显示全部文件,包括隐藏文件
-l:以列表的形式展示文件,更细节
-h:搭配-l使用,人性化的显示文件大小(K,M,G)
-d:显示目录本身属性
--color:以颜色区分不同类型的文件
可以组合使用,如-al,-alh
- Linux路径 是可选的参数
如果不加选项和参数,直接使用ls命令,表示:以平铺的形式,列出当前工作目录(开始默认为HOME目录,/HOME/用户名)内容
2、cd命令(change directory):
语法:cd Linux路径
- cd命令无需选项,只有路径(只有参数)
- cd命令不给路径(不写参数)的表示回到用户HOME目录
3、pwd命令(print work directory):
语法:pwd
pwd命令无选项,无参数,直接输入即可查看当前所在工作目录路径
4、相对路径、绝对路径、特殊路径符:
cd /home/Vicczyq/Desktop 绝对路径
cd Desktop 相对路径
特殊路径符:
. 表示当前目录
.. 表示上一级目录
~ 表示HOME目录
5、mkdir命令(make directory):
语法:mkdir [-p] Linux路径
-p:自动创建不存在的父目录,用于多级文件夹创建
6、touch、cat、more查看命令:
语法:touch Linux路径
例如:touch test.py 创建test.py文件(相对路径绝对路径都可以)
语法:cat Linux路径
例如:cat test.py 查看test.py文件
语法:more Linux路径
可以翻页查看文件(空格翻页,回车换行,q退出)
7、cp、mv、rm文件操作命令:
语法:cp [-r] 参数1 参数2
- -r用于复制文件夹(如果要复制文件夹就要带上-r)
- 参数1 Linux路径,表示被复制的文件或者文件夹路径
- 参数2 Linux路径,表示要复制去的地方
语法:mv 参数1 参数2
- 参数1 Linux路径,表示被移动的文件或文件夹路径
- 参数2 Linux路径,表示要移动去的地方
可以用于改名
语法:rm [-r -f] 参数1 参数2 参数3.....参数n
- -r 用于删除文件夹
- -f 强制删除,不会弹出确认信息(root超级管理员才用到)
- 可以有多个参数Linux路径,删除多个
rm可以配合通配符,用来做模糊搜索删除
- 符号*表示通配符,及匹配任意内容:
- test* 表示以任意test开头的内容
- *test 表示任意以test结尾的内容
- test表示任意包含test的内容
8、which、find查找命令:
语法:which 查找的命令
通过which可以查找命令程序的文件目录,如which pwd、while mkdir
语法:find 起始路径 -name "文件名"
文件名可以使用通配符
语法:find 起始路径 -size +|-n[kMG]
- +、-表示大于或小于
- n表示数字大小
- kMG表示大小单位(k为小写)
例如:
- 查找小于10KB的文件,find -size -10k
- 查找大于100MB的文件:find -size +100M
9、grep、wc(文件内容筛选和统计)管道符命令:
语法:grep [-n] 关键字 文件路径
- -n可选,表示结果显示匹配的行的行号
- 参数,关键字,必填,表示文件内容筛选的关键字
- 参数,文件路径,必填,可以做内容输入(见管道符)
语法:wc [-c -m -l -w] 文件路径
- 选项,-c,统计bytes数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,必填,可以做内容输入(见管道符)
拓展:管道符 |
cat test.txt | grep 关键字
cat test.txt | wc -l
将左边的输出作为右边的输入
只要左边有输出就可以作为右边的输入
10、echo、tail、head、重定向符:
语法:echo 输出的内容
例如:echo hello world!
echo
pwd被包围的内容会按照命令去执行,最后以echo的形式显示结果
语法:tail/head [-f -num] Linux文件路径
- 选项,-f,表示持续追踪,相当于动态显示文件内容,Ctrl+C可以停止
- 选项,-num,表示查看尾部多少行,不填默认为10
重定向符:
>表示覆盖写入到文件
>>表示追加写入到文件
例如:ls -al > Desktop/test.txt
11、ln命令(软链接)快捷方式:
语法:ln -s 参数1 参数2
- -s选项 创建软链接
- 参数1:被链接的文件或文件夹
- 参数2:链接的文件或文件夹(快捷方式)
12、date时间设置命令、cal日历命令
通过date命令可以在命令行中查看系统时间
语法:date [-d] [+格式化字符串]
-d 按照给定的字符串显示日期,一般用于日期计算
- year 年
- month 月
- day 日
- hour 小时
- minute 分钟
- second 秒
例如:date -d "-1 day"
格式化字符串:通过特定的字符串标记,控制显示的日期格式
- %Y 年
- %y 年份后两位(如99)
- %m 月份(01,12)
- %d 日(0,31)
- %H 小时(00,23)
- %M 分钟(00,59)
- %S 秒(00,60)
- %s 自1970-01-01 00:00:00: UTC到现在的秒数
date -d "-1 day" %d
修改时区:rm -f /etc/localtime
Vi、Vim编辑器
vi/vim是命令行下对文本编辑的最经典的编辑器
vim是vi的加强版本,兼容vi的所有指令,而且具有shell程序编辑的功能
语法:vim 文件名 进入命令模式
| i | 当前光标位置进入输入模式 | dd | 删除光标所在行 |
|---|---|---|---|
| a | 当前光标位置 之后进入输入模式 | ndd | n为数字,删除当前光标下n行 |
| I | 当前行的开头进入输入模式 | yy | 复制当前行 |
| A | 当前行的结尾进入输入模式 | nyy | n为数字,复制当前光标下n行 |
| o | 当前光标下一行进入输入模式 | p | 粘贴 |
| O | 当前光标上一行进入输入模式 | u | 撤销修改 |
| esc | 进入命令模式 | gg | 到首行 |
| 0 | 光标移动到行开头 | G | 到尾部 |
| $ | 光标移动到行结尾 | :wq | 保存并退出 |
| / | 进入搜索模式 | :q | 直接退出 |
| n | 向下继续搜索 | :q! | 强制退出 |
| N | 向上继续搜索 | :set nu | 设置显示行号 |
网络请求和下载
1、ping
语法:ping [-c num] ip或者主机名
- -c 检查的次数,不使用-c就无限次
2、wget
语法:wget [-b] url
- -b 可选,后台下载,会将日志写入到当前目录的wget-log文件中
- url 参数,下载链接
3、curl
可以用于发送http网络请求,用于:下载文件,获取信息等
语法:curl [-O] url
- -O 选项,用于下载文件,当url是下载链接时候,可以使用此选项保存文件
- url,参数,要发起请求的网址
软件
1、yum命令(root)软件安装:
RPM包软件管理器,用于自动化安装Linux软件,并可以解决依赖问题
语法:yum [-y] [install | remove | search] 软件名称
- -y,自动确认,无需手动确认安装或卸载过程
- install:安装
- remove:卸载
- search:搜索
2、systemctl命令
控制软件:启动、停止、开机自启
语法:systemctl [start | stop | status |enable | disable] 服务名
- start:启动
- stop:关闭
- status:查看状态
- enable:开启开机自启
- disable:关闭开机自启
压缩和解压缩
1、tar压缩
语法:tar [-c -v -x -f -z -C] 参数1 参数2...参数n
- -c,创建压缩文件,用于压缩模式
- -v,显示压缩,解压过程,用于查看进度
- -x,解压模式
- -f,要创建的文件,或要解压的文件,-f选项必须在所有选项的最后
- -z,gzip格式,不使用就是普通的tarball格式,必须在最前面
- -C,解压目的地
tar:tar -cvf test.tar 1.txt 2.txt 3.txt
gzip:tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
2、tar解压
语法:tar -xvf test.tar
指定解压路径:tar -xvf test.tar -C /home/vicczyq/Desktop
3、zip压缩文件
语法:zip [-r] 参数1 参数2.....参数n
- -r,被压缩的包含文件夹时候,需要使用
4、unzip解压文件
语法:unzip 参数 [-d 文件路径]
-d指定解压去的路径位置,参数为zip压缩包文件
快捷键
1、Ctrl+C 强行停止
- Linux某些程序运行,如果想强行停止可以Ctrl+C
- 输入命令错误,可以通过Ctrl+C清空输入
2、Ctrl+D 退出或登出
用户切换时候等效于exit,但不能退出vi/vim
可以退出python等软件
3、history命令可以查询历史使用命令
history | grep "关键词"
可以筛选
4、!命令前缀
执行历史记录中以前缀开头的最近的命令
5、Ctrl+R 搜索历史命令
6、Ctrl+a 跳到命令开头
7、Ctrl+e 跳到命令结尾
8、Ctrl+键盘左右键 左右跳单词
9、Ctal+L 清空终端内容
等效于输入命令clear
10、Ctrl+U清空至行首
11、Ctrl+K清空至行尾
12、Home跳到行首
13、End跳到行尾
环境变量
临时设置:
语法:export 变量名=变量值
永久生效:
ecport PATH=\(PATH :/添加的东西(\)PATH取当前PATH的值)
针对当前用户:配置当前用户的~/bashrc文件
针对所有用户:配置在系统的/ect/profile文件
配置完成,通过source 配置文件命令立刻生效
IP地址和主机用户
1、hostname 查看主机名
2、hostnamectl set-hostname 主机名
修改主机名
3、设置静态IP
使用vim编辑 /ect/sysconfig/network-scripts/ifcfg-ens33文件
Linux用户
用户账号文件:/etc/passwd
用户密码文件:/etc/shadow
组账号:/etc/group
组密码:/etc/gshadow
最大权限的账户名:root
切换用户(Switch User):
1 | su [-] [用户名] |
- “-”符号表示表示是否加载环境变量,建议加上
- 用户名为可选参数,不填默认为root
切换用户后,可以用exit切回上次用户
1 | sudo 其它命令 |
这条命令以root的身份去执行,临时root授权
并不是所有的用户都有权力使用sudo,只有配置sudo认证的才能
配置sudo认证:
切换到root用户,执行visudo命令,在文件最后添加
1 | 用户名 ALL=(ALL) NOPASSWORD |
wq保存退出
用户和用户组
1、创建用户组:
语法 groupadd 用户组名
2、删除用户组
语法 groupdel 用户组名
3、创建用户
语法 useradd [-g -d -s] 用户名
- -g 指定用户组,如果不指定就会创建一个和用户名一样的组自己加入
- -d 指定用户HOME路径,不指定默认在/home/用户名
- -s 指定shell,默认为/bin/bash
4、删除用户
语法 userdel [-r] 用户名
- -r 删除用户的HOME目录,不使用-r只删掉用户,不删目录文件
5、查看用户所属组
语法 id [用户名]
- 不加用户名默认显示当前用户所属用户组
6、修改用户所属组
语法usermod -aG 用户组 用户名
- 将指定用户加入指定组
7、getent
语法 getent passwd
查看当前系统中的用户
语法 getent group
查看当前系统中的用户组
8、更改/设置用户口令
语法passwd 用户名
权限管理和修改
r:表示可读权限
w:表示可写权限
x:表示执行权限
-:无权限
权限修改:
1、chmod命令:
语法:chmod [-R] 权限 文件或文件夹
- -R指文件夹内所有文件进行相同操作
实例:
chmod u=rwx,g=rx,o=x hello.txt
修改后的权限信息为:rwxr-x--x
0:--- 1:--x 2:-w- 3:-wx
4:r-- 5:r-x 6:rw- 7:rwx
chmod 751 hello.txt
2、chown命令:
语法:chown [-R] [用户] [:] [用户组] 文件或文件夹
- -R指文件夹内所有文件进行相同操作