Linux基础

Linux基础命令
ls命令的讲解
ls -a 的选项 |
-a选项,表示:all的意思,即列出全部文件夹(包含隐藏的文件/文件夹)
- 表示是Linux系统的隐藏文件/文件夹(只要以.开头的,就能自动隐藏)
- 只有通过-a选项,才能看到这些隐藏文件/文件夹
ls -l选项 |
-l表示:以列表(竖向排列)的形式展示内容并展示更多内容
ls命令选项的组合使用
- ls -l -a
- ls -la
- ls -al
上述三种写法,都是一样的,表示同时应用-l和-a的功能
ls命令的 -h选项 |
ls [-a -l -h] [Linux路径] |
- -h表示以阅读的形式,列出文件大小,如K、M、G
- -h选项必须搭配-l一起使用
cd和pws命令
cd的切换命令使用
语法: cd [Linux路径] |
- cd命令无需选项,只有参数,表示要切到哪个目录下
- cd命令直接执行,不写参数,表示回到用户的HOME目录
pwd查看当前工作目录
语法: pwd |
- pwd命令,无选项,无参数,直接输入pwd即可
相对路径、绝对路径和特殊路径符
绝对路径
- 绝对路径:以根目录起点。描述路径的一种写法,路径描述以/开头
cd /home/xiaolu/Desktop |
相对路径
- 相对路径:以当前目录起点,描述路径的一种写法,路径描述无需以/开头
cd Desktop |
特殊路径符
- . 表示当前目录,比如cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
- .. 表示上一级目录,比如:cd .. 即可切换上一级目录,cd ../.. 切换到上二级目录
- ~ 表示HOME目录,比如:cd ~ 即可切换到HOME目录下或cd ~ /Desktop,切换到HOME内的Desktop目录
创建目录命令(mkdir)
语法: mkdir [-p] [Linux路径] |
- 参数必填,表示Linux的路径,即创建的文件夹的路径,相对路径或绝对路径均可
- -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
写法: mkdir -p itcast/good/666 |
文件操作命令part1(touch、cat、more)
touch创建文件
可以通过touch命令创建文件
语法: touch Linux路径 |
- touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可使用
cat命令 查看文件内容(参数必填)
语法: cat Linux路径 |
more命令查看文件内容(参数必填)
more命令同样可以查看文件内容,同cat不同的是:
- cat是直接将内容显示出来
- more支持翻页,如果文件内容过多,可以一页页的展示
语法: more Linux路径 |
- 使用空格进行翻页,使用q退出查看
文件操作命令part2(cp、mv、rm)
cp命令复制文件文件夹
语法: cp [-r] 参数1 参数2 |
- -r选项,可选,用于复制文件夹使用,表示递归
- 参数1,Linux路径,表示被复制的文件或者文件夹
- 参数2,Linux路径,表示要复制去的地方
mv移动文件或文件夹
语法: mv 参数1 参数2 |
rm删除文件、文件夹
rm命令可用于删除文件、文件夹
语法: rm [-r -f] 参数1 参数2......参数n |
- 同cp命令一样,-r选项用于删除文件夹
- -f表示force,强制删除(不会弹出提示确认信息)
- 普通用户删除内容不会弹出提示,只有root管理员用户删除内容才会有提示
- 所以一般普通用户用不到-f选项
- 参数1、参数2、…….、参数N表示要删除的文件或文件夹路径,按照空格隔开
rm删除文件、文件夹-通配符
rm命令支持通配符*,用来做迷糊匹配
- 符号*表示通配符,即可任意匹配(包含空)
- test*,表示匹配任何以test开头的内容
- *test,表示匹配任合以test结尾的内容
- *test *,表示匹配任何包含test的内容
写法1: rm -r test* |
如下命令,千万不要在root管理员用户下执行:
等同于在Windows上执行C盘格式化
rm -rf / |
查找命令(which、find)
which命令
我们可以通过which命令,查看所有使用的一系列命令的程序文件存放在哪里
语法: which 要查找的命令 |
find命令-按文件命查找文件
语法: find 起始路径 -name "被查找文件命" |
find命令-按照文件大小查找文件
语法: find 起始路径 -size + | -n[KMG] |
- +、-表示大于和小于
- n表示数字大小
- KMG表示大小单位,K(小写字母)表示kb,M表示MB,G表示GB
示例:
查找小于10KB的文件: find / -size -10k |
grep、wc和管道符
grep命令
可以通过grep命令,从文件中通过关键字过滤文件行
语法: grep [-n] 关键字 文件路径 |
- 选项-n,可选,表示在结果中显示匹配的行号。
- 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用 “ “ 将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
wc命令做数量统计
可以通过wc命令统计文件的行数、单纯数量等
语法: wc [-c -m -l -w] 文件路径 |
- 选项,-c,统计bytes字节数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
管道符的使用
语法: cat 文件路径 | grep "关键字" |
echo、tail和重定向符
echo命令
可以使用echo命令在命令行内输出指定内容
语法: echo 输出的内容 |
无需选项,只有一个参数,表示要输出的内容,复杂内容可以用 “ “ 包围
重定向符
- “>”,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
- “>>”,将左侧命令的结果,追加到写入到符号的右侧指定文件中
写法1: echo "Hello Linux" > test.txt # 覆盖 |
tail命令
使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改
语法: tail [-f -num] Linux路径 |
- 参数,Linux路径,表示被跟踪的文件路径
- 选项,-f,表示持效跟踪
- 选项,-num,表示,查看尾部多少行,默认10行
vi、vim编辑器
语法: vi 文件路径 |
- 如果文件路径表示的文件不存在,那么此命令用于编辑新文件
- 如果文件路径表示文件存在,那么此命令用于编辑已有文件
- 输入完后,按esc回退命令模式
- 在底线命令输入:wq,保存文件并退出vi编辑器
命令快捷键
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置 之后进入 输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的结尾,进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
命令模式 | esc | 任何情况下输入esc都能回到命令模式 |
命令模式 | 键盘上、键盘k | 向上移动光标 |
命令模式 | 键盘下、键盘j | 向下移动光标 |
命令模式 | 键盘左、键盘h | 向左移动光标 |
命令模式 | 键盘右、键盘l | 向右移动光标 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的结尾 |
命令模式 | pageup(PgUp) | 向上翻页 |
命令模式 | pangdown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删掉光标所在行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下的n行 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的n行 |
命令模式 | p | 粘贴复制内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl + r | 反撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到结尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
底线命令模式
模式 | 命令 | 描述 |
---|---|---|
底线命令模式 | :wq | 保存退出 |
底线命令模式 | :q | 仅退出不保存 |
底线命令模式 | :!q | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
用户组管理
- 创建用户组
groupadd # 用户组名 |
- 删除用户组
groupdel # 用户组名 |
用户管理
useradd [-g -d]用户名
- 选项:-g指定用户组,不指定-g,会创建同名组并自动加入,指定-g需要组已存在,如已存在同名组,必须使用-g
- 选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
写法1: useradd test # 不指定 |
userdel[-r]用户名
- 选项:-r删除用户的HOME目录,不使用-r,删除用户时,home目录保留
写法1: userdel test |
id[用户名]
usermod-aG 用户组 用户名,将指定用户加入只当用户组
写法1: getent passwd # 查看系统全部用户信息 |
共有7份信息,分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
查看权限控制
所属用户权限
- -表示文件
- d表示文件夹
- l表示软链接
权限意思
- r:read可读取
- w:write可写入
- x:execute可执行
针对文件,文件夹的不同,rwx的含义有细微差别
- r,针对文件可以查看文件内容
- 针对文件夹,可以查看文件内容,如ls命令
- w,针对文件表示可以修改文件
- 针对文件夹,可以在文件夹内:创建、删除、改名等操作
- x,针对文件表示可以将文件作为程序执行
- 针对文件夹,可以表示更改工作目录到此文件夹,即cd进入
ls -l列出的权限信息如何解读
序号1,表示文件、文件夹的权限控制信息
序号2,表示文件、文件夹所属用户
序号3,表示文件、文件夹所属用户组
修改权限控制 - chmod
我们可以使用chmod命令,修改文件、文件夹的权限信息。
注意,只有文件,文件夹的所属用户或root用户可以修改。
语法: chmod [-R] 权限 文件或文件夹 |
- 选项:-R,对文件内的全部内容应用同样的操作
示例:
- chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwxr-x–x
- 其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
- chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x–x
权限的数字序号
权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其他用户权限。
数字的细节如下:r记为4,w记为2,x记为1,可以有:
- 0:无任何权限,即 —
- 1:仅有x权限,即 –x
- 2:仅有w权限,即 -w-
- 3有w和x权限,即 -wx
- 4既有r权限,即 r–
- 5有r和x权限,即 r-x
- 6有r和w权限,即 rw-
- 7有全部权限,即 rwx
chown
使用chown命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户
语法: chown [-R] [用户] [:] [用户组] 文件或文件夹 |
- 选项,-R,同chmod,对文件夹内全部内容应用相同规则
- 选项,用户,修改所属用户
- 选项,用户组,修改所属用户组
- : 用于分割用户和用户组
示例:
- chown root hello.txt,将hello.txt所属用户修改为root
- chown :root hello.txt,将hello.txt所属用户组修改为root
- chown root:itcast hello.txt,将hello.txt所属用户修改为root,用户组修改为itcast
- chown -R root test,将文件夹test所属用户修改为root并对文件夹内全部内容应用同样规则
快捷键
历史命令搜索
history |
光标移动快捷键
- ctrl + a,跳到命令开头
- ctrl + e,跳到命令结尾
- ctrl + 键盘左键,向左跳一个单词
- ctrl + 键盘右键,向右跳一个单词
软件安装
yum命令
yum:RPM软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法: yum [-y] [install] | remove | search 软件名称 |
- 语法: yum [-y],自动确认,无需手动确认安装或卸载过程
- install:安装
- remove:卸载
- search:搜索
yum命令需要root权限,可以su切换到root下,或者使用sudo提权。
yum命令需要联网
通过yum命令安装wget程序
yum install wget |
如果安装报错了输入这条命令试一下
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo |
Ubuntu安装
语法: apt [-y] [install] | remove | search 软件名称 |
systemctl命令
Linux系统很多软件(内置或第三方)均支持使用systemcrtl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
语法: systemctl start | stop | status | enable | disable 服务名称 |
- start:启动
- stop:停止
- status:查看状态
- enable:开启开机自启
- disable:关闭开机自启
系统内置的服务比较多,比如:
- NetworkManager,主网络服务
- network,副网络服务
- firewalld,防火墙服务
- sshd,shh服务(FinalShell远程登陆Linux使用的就是这个服务)
掌握使用ln命令创建软链接
在系统中创建软链接,可以讲文件、文件夹链接到其他位置
语法: ln -s 参数1 参数2 |
- -s选项,创建软链接
- 参数1:被链接的文件或者文件夹
- 参数2:要链接去的目的地
示例:
- ln -s /etc/yum.conf ~/yum.conf
- ln -s /etc/yum ~/yum
日期和时区
通过date命令可以在命令行中查看系统的时间
语法:date [-d] [+格式化字符串] |
- -d按照给定的字符串显示日期,一般用于日期计算
- 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
- %Y 年
- %y 年份后两位数(00..99)
- %m 月份(01..02)
- %d 日(01..31)
- %H 小时(00.23)
- %M 分钟(00.59)
- %S 秒(00.60)
- %s 自 1970-01-01 00:00:00 UTC 到现在的秒数
使用root权限,执行如下命令,修改时区喂东八区时区
rm -f /etc/localtime |
讲系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Guangxi文件链接到localtime文件即可
ntp程序
可以通过mtp程序自动校准系统时间
安装ntp:yum -y install ntp
启动并设置开机自启
- systemctl start ntpd
- systemctl enable ntpd
当ntpd启动后定期的帮助我们联网校准系统的时间
也可以手动校准(需要root权限):ntpdate -u ntp.aliyun.com
IP地址、主机名
可以使用命令:hostname查看主机名
hostname |
可以使用命令:hostnamectl set-hostname (主机名),修改主机名(需要root权限)
hostnamectl set-hostname 主机名 |