【Linux 学习日志】

@Linux 学习日志

Linux 学习日志

本文旨在记录Linux学习记录。

拿起以前安装的CentOS 进行学习时,使用Xsheel7 时出现“要继续使用此程序,您必须应用最新的更新或使用新版本”提示,其解决方案借鉴 : link

// 使用命令ifconfig用来获取Linux ip地址:
[zhuixun@zhuixun01 ~]$ ifconfig

使用xsheel7远程连接CentOS。

Linux系统的目录结构

Linux是一个树状结构,只有一棵树。路径之间的层次结构关系,使用:/ 来表示(右斜杠,而Windows是左斜杆)。根目录用 / 表示,描述路径只有斜杠开头。出现在开头时,表示:根目录,后面的则表示层次关系。例如:/test/hello.txt 。

Linux命令

命令行:即Linux终端(Terminal)记住这个单词。
命令的通用格式:

// command :命令本身
//-options:[可选,非必填] 命令的一些选项,可以通过选项控制命令的行为细节
//parameter :[可选,非必填] 命令的参数,多用于命令的指向目标等
command  [-options]  [parameter]

ls命令:用于列出目录下的内容,语法细节如下

// -a - l -h 是可选的选项 -a:all 列出全部文件(包括隐藏的文件,以  . 开头的文件)
// -l : 以列表(竖向排列)的形式展示内容,并展示更多信息
// -h : 表示以易于阅读的形式,列出文件大小,如k, m, g
//不用选项,以平铺的形式,列出当前工作目录(终端启动时,默认为HOME目录)下的所有文件
//例如:/home/用户名(zhuixun,tom)
ls  [-a - l -h]  [Linux路径]

cd命令:cd命令来自English :Change Directory ,用于更改当前所在的工作目录。

// cd 命令无需选项,只有参数,表示要切换到那个目录下
// cd 命令直接执行,不写参数,表示回到用户的HOME目录
cd  [Linux路径]

pwd命令:Print Work Directory ,用于查看当前所在工作目录

// 无选项,无参数,直接pwd搞定
pwd 

mkdir命令:Make Directory,用于创建新的目录(文件)

// 参数必填,表示Linux 路径,即要创建的文件夹的路径,相对路径或绝对路径均可
//-p选项可选,表示自动创建不存在的的父目录,适用于创建多层次的目录
//-p 可以创建一个链条式的目录,中间没有的自动创建
mkdir  [-p]  linux路径

注意,创建文件夹要在自己有权限的目录下才可以操作,在没有权限的目录下,无法操作。

touch命令:创建文件

// 无选项,参数必填,表示要创建的文件路径,相当,绝对,特殊路径符均可使用
touch  Linux路径

cat命令:查看文件内容

// 无选项,参数必填,表示要查看的文件路径,相当,绝对,特殊路径符均可使用
cat Linux路径

more命令:也是查看文件内容,more也是,只不过是可以翻页,翻页的时候按空格,退出按q。

// 无选项,参数必填,表示要查看的文件路径,相当,绝对,特殊路径符均可使用
more Linux路径

cp命令:copy ,可以用于复制文件\文件夹

// -r选项,可选,用于复制文件夹使用,表示递归
//参数1,Linux路径,表示被复制的文件或者文件夹
//参数2,Linux路径,表示要复制去的地方
cp  [-r]  参数1  参数2

注意,复制文件夹时,要带 -r 选项。

mv命令:用于移动文件\文件夹

//参数1,Linux路径,表示被移动的文件夹或者文件
//参数2,Linux路径,表示要复制去的地方,如果目标不存在,则进行改名,确保目标存在
mv 参数1 参数2

rm命令:可以用于删除文件、文件夹(remove)

// 同cp命令一样,-r 选项用于删除文件夹
//-f 表示force,强制删除(不会弹出提示确认信息)
普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提升
所以一般用户用不到-f选项
//参数1、参数2、.....表示要删除的文件或者文件夹路径,按照空格隔开
rm  [-r -f]  参数1 参数2 ......参数n

rm命令支持通配符 * ,用来做模糊匹配
符号 * 表示通配符,即匹配任意内容(包含空),实例:
test *, 表示匹配任何以test开头的内容
*test , 表示匹配任何以test结尾的内容
*test *, 表示匹配任何包含test的内容

如果在root管理员用户下执行,
rm -rf/ rm -rf/*
等同于删库跑路,切记。

which命令:查找所使用的一系列命令的程序文件存放在哪里

which  要查找的命令

find命令:搜索指定的文件

find  起始路径 -name  "被查找的文件名"

find命令也支持通配符 * ,用来做模糊匹配
符号 * 表示通配符,即匹配任意内容(包含空),实例:
test *, 表示匹配任何以test开头的内容
*test , 表示匹配任何以test结尾的内容
*test *, 表示匹配任何包含test的内容

// + - 表示大于和小于 
// n表示大小数字
// kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
find  其实路径  -size  +|-n[kMG]

停止快捷键ctr + c 。

grep命令:从文件夹中通过关键字过滤文件行

// 选项-n,可选,表示在结果中显示匹配的行的行号
// 参数,关键字,必填,表示过滤的关键字,带有空格或者其他特殊符号,建议使用""将关键字包围起来
// 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
grep  [-n]   关键字  文件路径

wd命令:用于统计文件的行数、单词数量等

// 选项,-c,统计bytes数量 
// 选项,-m,统计字符数量
// 选项,-l,统计行数
// 选项,-w, 统计单词数量
// 参数, 文件路径,被统计的文件,可作为内容的输入端口
wc  [-c -m -l -w]  文件路径

搭配grep命令,经常使用的有一个新的特殊符号,管道符:| ,可以将管道符左边命令的结果,作为右边命令的输入。例如:

cat  test.txt  |  grep  hello

而且可以无限套娃,一个套一个,无限套。例如:

//统计test文件中hello有多少行
cat  test.txt  |  grep  hello  |  wc  -l

echo命令:在命令行内输出指定内容

// 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用" "包围
echo  输出的内容

反引号 `` :被包围的内容会作为命令被执行,并且输出执行的结果。
重定向符:>和>>
>:将左侧命令的结果,覆盖写入到符号右侧指定的文件中;
>> :将左侧命令的结果,追加写入到符号右侧指定的文件中;
例如:

// 第一种是覆盖掉,第二种会覆盖在后面
echo  "hello world!"  > text.txt
echo  "hello world!"  >>  text.txt

tail命令:可以查看文件尾部内容,跟踪文件的最新更改

// 选项 ,-f ,表示持续跟踪
// 选项 ,-num,表示查看尾部多少行,不填默认10行
// 参数,linux路径,表示被跟踪的文件路径
tail  [-f -num]  Linux路径

相对路径和绝对路径

绝对路径:以根目录为起点,描述路径的一种写法,路径以 / 开头
相当路径:以当前目录为起点,描述路径的一种写法,路径描述无需以 / 开头
很容易理解,无需多言。
特殊路径符:

  • . 一个点,表示当前目录,比如:cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致。
  • … 两个点,表示上一级目录,比如:cd … 即可切换到上一级目录,cd …/… 切换到上二级目录,一个点点表示回一级,所以回两级。
  • ~ 表示HOME目录,比如:cd ~ 即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录。其实有一种链式编程的思想。

VI\VIM 编辑器

vi或者vim是visual interface的简称,是Linux中最经典的文本编辑器。
有三种工作模式:
命令模式(Command mode): 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模式下,不能自由进行文本编辑。
输入模式(insert mode):就是编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
底线命令模式(last line mode):以:开始,通常用于文件的保存、退出。
vim进入的时候,默认是命令模式,按 i 键就可以进入输入模式,再esc就可以退回到命令模式,命令模式下按:就可以进入底线命令模式。下面介绍各种模式下的命令:
命令模式下:

模式命令描述
命令模式i在当前光标位置进入输入模式
输入模式esc任何情况下输入esc都能回到命令模式
命令模式PgUp向上翻页
命令模式PgOn向下翻页
命令模式/进入搜索模式
命令模式n\N向下\向上搜索
命令模式dd删除光标所在行的内容
命令模式nddn是数字,表示删除当前光标向下n行内容
命令模式yy复制当前行
命令模式p粘贴复制的内容
命令模式u撤销修改
命令模式Ctrl+r反向撤销修改
命令模式gg跳到首行
命令模式dG从当前行开始,向下全部删除
命令模式dgg从当前行开始
命令模式d$从当前光标开始,删除到本行的结尾
命令模式dO从当前光标开始,删除到本行的开头
底线命令模式:wq保存并退出
底线命令模式:q仅退出
底线命令模式:q!强制退出
底线命令模式:w仅保存
底线命令模式:set nu显示行号
底线命令模式:set paste设置粘贴模式
以上只是一些有用的,掌握这些即可。

Linux用户和权限

root用户拥有最大的系统操作权限。
su命令:Switch User ,用于账户系统切换的系统命令。

//  - 符号是可选的,表示是否在切换用户后加载环境变量
//参数:用户名,表示要切换的用户,省略表示切换到root
//切换用户后,可以通过exit命令退回到上一个用户,也可以使用快捷键Ctrl+d
su  [-]   [用户名] 

使用普通用户,切换到其他用户时需要输入密码,比如切到root用户
使用root用户切到其他用户,不要密码,可以直接切换。

sudo命令:为普通的命令授权,临时以root身份执行。

// 在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权
//但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证
sudo  其他命令

那么怎么配置sudo用户呢,首先,在root用户下,执行visudo命令,会自动打开一个文件,然后在文件的最后添加:

用户名   ALL=(ALL)  NOPASSWD:ALL

最后通过wq保存。怎么取消?打开文件,删掉那一行就行了。

Linux系统中可以配置多个用户、配置多个用户组、用户可以加入多个用户组中,Linux中关于权限管控级别有2个级别,分别是:针对用户的权限控制,针对用户组的权限控制。下面介绍相关命令:
以下命令需要root用户执行:

//创建用户组
groupadd  用户组名
//删除用户组
groupdel  用户组名
// 创建用户
useradd  [-g  -d]  用户名
//选项:-g 指定用户的组,不指定 -g 会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
//选项:-d 指定用户HOME路径,不指定,HOME目录默认在:/HOME/用户名
// 删除用户
userdel  [-r]  用户名
//选项:-r 删除用户的HOME目录,不使用-r,删除用户时,会保留HOME目录
// 查看用户所属组
id  [用户名]
//参数:用户名,被查看的用户,如果不提供则查看自身
// 修改用户所属组
usermod -aG 用户组  用户名
//将指定用户加入指定用户组
// 查看当前系统中有那些用户
getent passwd

Linux文件认知权限

通过ls -l 可以以列表形式查看内容,并显示权限细节。

-rwxrwxr-x  1 zhuixun zhuixun 8360 4月   2 16:12 a.out
-rwxrw-r--  1 zhuixun zhuixun  177 4月   3 15:20 hello.cpp
-rwxrw-r--. 1 zhuixun zhuixun   94 7月  28 2022 hello.sh
-rw-rw-r--  1 zhuixun zhuixun    0 4月   3 00:02 test1.txt
drwxrwxr-x  2 zhuixun zhuixun 4096 4月   2 23:39 zhuin
drwxr-xr-x. 2 zhuixun zhuixun 4096 6月   6 2022 公共
drwxr-xr-x. 2 zhuixun zhuixun 4096 6月   6 2022 模板
drwxr-xr-x. 2 zhuixun zhuixun 4096 6月   6 2022 视频

第一列:表示文件、文件夹的权限控制信息。其中以-开头表示是一个文件,以d开头表示是一个文件夹,以i开头的表示软链接。后面的每三个一组,分别表示所属用户权限,所属用户组权限,其他用户权限。每一组又分别有:r或- 、 w或-、x或-,r表示可读,w表示可写,x表示可执行。

第三列:表示文件、文件夹所属用户
第四列:表示文件、文件夹所属用户组

chmod命令:用于修改文件、文件夹的权限信息。注意,只有文件、文件夹的所属用户或root用户可以修改。

// 选项:-R,对文件夹内的全部内容应用同样的操作
chmod  [-R]  权限  文件或文件夹
// 例如 :
chmod   u=rwx,g=rx,o=x  hello.txt
// 表示将文件权限修改为:rwxr-x--x,其中:u表示user所属用户权限,g表示group组权限,o表示other其他用户权限
// 除此之外,还有快捷写法:
chomd 751 hello.txt  

权限也可以用3位数字表示,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其他用户权限。数字的细节如下:
r记为4,w记为2,x记为1,可以有:
0:— ,无任何权限
1:–x,仅有x权限
2:-w-,仅有w权限
3:-wx,有w和x权限
4:r–,仅有r权限
5:r-x,有r和x权限
6:rw-,有r和w权限
7:rwx,有r和w和x权限
其中,可任意组合,例如751、 230等等。

chown命令:可以修改文件、文件夹的所属用户和用户组。普通用户无法修改所属为其他用户或组,所以只适用于root用户执行。

// 选项,-R,同chmod,对文件夹内全部内容应用相同规则
// 选项,用户,修改所属用户
// :,用于分割用户和用户组
// 选项,用户组,修改所属用户组
chown  [-R]  [用户]  [:]  [用户组]  文件或文件夹
//例如:
// 将hello.cpp所属用户修改为root
chown root hello.cpp   

Linux使用操作

下面介绍一些,常用的快捷键。
Ctrl + c :强制停止。
Ctrl + d :退出账户的登录,或者退出某些特定程序的专属页面。但不能退出vi、vim编辑。
history :查看历史输入过的命令。可以加入管道,例如:history | grep pwd。
!命令前缀:自动执行上一次匹配前缀的命令。太久了,就别用了。
Ctrl + r:输入内容去匹配历史命令。
光标移动快捷键:
Ctrl + a :跳到命令开头
Ctrl + e :跳到命令结尾
Ctrl + 键盘左键,向左跳一个单词
Ctrl + 键盘右键,向右跳一个单词

Linux系统的应用商店

yun命令:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。

// 选项,-y,自动确认,无需手动确认安装或卸载过程
// install:安装
// remove:卸载
// search :搜索
yun  [-y]  [install]  [remove]  [search]  软件名称
//例如:
yun [-y]  install wget

systemctl命令:Linux系统很多软件(内置或者第三方)均支持使用systemctl命令控制:启动、停止、开机自启。能够被systemctl管理的软件,一般也称之为:服务。

// A code block
systemctl  start | stop | status | enable | disable  服务名

系统内置的服务比较多,比如:

  • NetworkManager,主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • sshd,ssh服务

ln命令:用于在系统中创建软链接,可以将文件、文件夹链接到其他位置。类似Windows系统中的快捷方式。

//  选项,-s,创建软链接
//参数1,被链接的文件或文件夹 
//参数2,要链接去的目的地
ln   -s   参数1   参数2

Linux系统的日期、时区

date命令:可以在命令行中查看系统的时间。

// 选项,-d,按照给定的字符串显示日期,一般用于日期计算
// 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
// 特定的字符串格式:%Y 年 , %y  年份后两位数字<00,99>,%m 月份<01,12>,%d 日<01,31>
                  %H 小时 <00,23>  ,%M  分钟<00,59>,%S 秒 <00,60>,
                   %s  自1970-01-01 00:00:00 UTC到现在的秒数             
date [-d] [+格式化字符串]

Linux的ip地址,主机名

ifconfig命令:查看本机的ip地址。

// 查看本机ip地址
ifconfig 

hostname:查看主机名

// 查看主机名
hostname
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值