Linux学习笔记

一、安装

1.1安装visualbox或者VMware
1.2安装centos或者Ubuntu

二、远程链接

2.1使用ifconfig命令查看IP地址
2.2使用IP地址进行远程链接(xshell工具 - 远程链接,远程命令,xftp工具 - 远程传输文件)
2.3没有使用教程里面老师提供的工具,在网上有人推荐了一款开源工具Tabby,感觉比较简单,可以直接ssh链接之后直接传输文件,目前测试运行良好

三、文件和用户操作

3.1vi和vim快捷键
    3.1.1正常模式下,可以使用快捷键
        yy - 复制(把一行内容复制,需要使用p来进行粘贴出来,前面加上数字,表示从改行开始复制指定行数)
        dd - 删除(删除一行内容,前面加上数字,表示从改行开始删除指定行数)
        gg - 光标跳到首行
        G - 光标跳到末行
        5G - 光标跳到第5行
        u - 撤回操作

    3.2.2命令模式下,可以保存退出
        :q - 不保存退出
        :wq - 写入并退出
        :q! -  修改后不保存强制退出
        set nu -  设置显示行号
        set nonu - 设置不显示行号


3.2文件
    mkdir 目录 - 创建文件夹
    touch 目录/文件名 - 创建文件
    rm 目录/文件名 - 删除文件
    cp 目录1/文件名  目录2/文件名  把文件1复制到文件2
    pwd 显示当前工作目录

3.3用户
    useradd  userName  - 创建用户,这种创建方法会在家目录创建一个该用户的文件夹
    useradd  -d  目录   userName    -  创建用户时指定目录(这种方式创建时,不能使用已经存在的目录)
    passwd   userName  - 给用户设置/修改密码
    userdel  userName  -删除用户(保留用户文件夹)
    userdel  -r   userName  -  删除用户(同时删除用户文件夹,实际中一般不用)
    id   userName -  查看用户信息
    su - userName  切换用户
    exit - 切换用户之后回到原来的用户
    who am i - 查看当前用户

3.4用户组
    groupadd  groupName - 创建用户组
    groupdel  - 删除用户组(只有在用户组里面没有用户的时候可以删除)
    useradd   -g  groupName  userName  -  创建用户,同时指定用户组

3.5用户配置文件
/etc/passwd - 存放用户信息
/etc/group - 存放用户组信息
/etc/shadow - 存放密码信息

四、操作指令

4.1 切换运行级别(/etc/inittab)

	0 - 关机
	1 - 单用户(找回root密码)
	2 - 多用户无网络服务
	3 - 多用户有网络
	4 - 保留级别
	5 - 图形界面
	6 - 重启

4.1.2 语法

init [0123456]

4.2 查看命令使用方法

man 命令
help 命令

4.3 文件操作

4.3.1 ls [目录] - 查看指定目录下面的内容,如果后面不填目录,则查看当前目录,

使用-a查看所有内容,包含隐藏内容
使用-l表示以列表的形式查看

4.4 pwd - 查看当前工作目录

4.5 cd - 切换工作目录

cd [目录] - 切换到指定目录
cd ~ - 切换到当前用户的家目录
cd - 切换到当前用户的家目录
绝对路径和相对路径
绝对路径,从/开始,相对路径,从当前工作目录开始
. - 表示当前目录
… - 表示当前目录的上一级目录

4.6 创建目录

mkdir [目录] - 创建指定目录
当需要创建的目录中有中间多级目录不存在时,需要用使用 -p 选项

4.7 删除目录

rmdir [目录] - 删除指定目录
如果要删除的目录不为空,需要使用rm -rf [目录]

4.8 创建文件

touch [路径+文件名] - 创建一个空文件(可以同时创建多个,空格隔开就可以)

4.9 拷贝命令

cp [选项] src dest 拷贝src到dest
常用选项:-r - 递归拷贝整个文件夹
强制拷贝,不询问是否覆盖,默认覆盖:\cp

4.10 删除目录或文件

rm -rf [目录名] - 删除目录
rm [文件名] - 删除文件
-r 表示递归删除整个目录下面的内容,删除目录必须使用
-f 表示强制删除,不提示

4.11 移动文件

mv [目录1/文件1] [目录2/文件1] - 移动目录1下的文件到目录2下,如果第二个里面只有目录名,则使用原文件名,如果指定了文件名,则在移动的同时重命名

4.12 查看文件内容

cat  -  只读查看,无法写入
	常用选项:  -n  -  显示行号
	通常加上| more,方便浏览
more  -  一个基于vi编辑器的文本过滤器,以全屏幕方式按页显示文本文件的内容;常用快捷键如下:

在这里插入图片描述
less - 分屏查看文件内容,与more类似,支持显示各种终端,并不是一次加载全部内容,而是根据需要显示要加载的内容,对于大文件有较高的效率;常用快捷键如下:
在这里插入图片描述

4.13 > 输出重定向和>>追加

基本语法
ls  -l   > [文件名]   -  将当前列表信息写入文件(如果文件原来有内容,则覆盖原来的内容;如果文件不存在,则创建文件)
ls  -l   >>  [文件名]  -  将当前列表信息追加写入到文件(如果文件原来有内容,则追加在原来的内容的后面;如果文件不存在,则创建文件)
cat  [文件1]  >  [文件2]  - 将文件1的内容写入文件2
cat  [文件1]  >>  [文件2]  - 将文件1的内容追加写入文件2
echo  "文本"  > [文件]   -  将文本内容写入到文件
echo  "文本"  >> [文件]   -  将文本内容追加写入到文件
cal  -  显示日历

4.14 查看命令

echo  -  直接输出内容
		echo  $PATH  -  输出环境变量
		echo  hello   -   输出hello
head   -n  5   [文件]  -  显示文件前5行的内容(-n  5 可以省略,如果不加,默认显示前10行)
tail   -n  5  [文件]  -  显示文件最后5行的内容(-n 5可以省略,如果不加,默认显示最后10行)
	tail  -f  [文件]  -  可以用来实时监控文件的更新

4.15 软链接命令(类似快捷方式)

ln -s  [目录/文件]  [链接名]
	ln  -s   /root   linktoroot
	删除软链接:rm  -r  [软链接名]
history  查看历史命令
history 5 查看最后5条历史命令
!5  -   执行历史命令里面的第五条

4.4 日期命令

data  -  显示当前日期和时间
date  +"%Y-%m-%d"   -  按照引号里面的格式显示日期
date  -s  "2022-01-01 00:00:00"   把系统时间设置成后面的时间
cal   -   显示日历
cal   2020   -   显示2020年的日历

5 查找命令

5.1 find [路径] [选项] [条件]

路径 - 要在哪个路径下面查找
选项 - ① -name 按照名字查找
② -user 按照文件所属用户查找
③ -size 按照文件大小查找 +n 大于n; -n 小于n; n 等于n
示例:
find /home -name test.txt 查找home目录下文件名为test.txt的文件

5.2 locate命令

利用事先建立的系统中所有文件名称和路径的locate数据库查找,无需遍历整个文件系统,所以速度极快
查找文件所在路径,速度很快,需要先更新数据库
updatedb 先更新数据库,需要root权限
locate test.txt 查找test.txt文件所在路径
注:如果执行提示command not found,可以尝试安装locate,yum install locate

5.3 grep命令

需要结合管道符使用
grep [选项] [查找内容]
常用选项:
① -n 显示行号
② -i 不区分大小写
例:
cat test.txt | grep -n java 查找test.txt文件中java文本所在行(区分大小写)
cat test.txt | grep -ni java 查找test.txt文件中java文本所在行(不区分大小写)

6 压缩命令

6.1 gzip和gunzip(实际使用较少,原来的文件会被删除,只保留压缩后的文件)

gzip [文件名] - 把文件压缩成gz压缩文件
例:gzip a.txt - 执行后生成a.txt.gz,a.txt文件被a.txt.gz替换
gunzip [压缩文件名] - 把压缩文件解压
例:gunzip a.txt.gz - 把a.txt.gz文件解压到当前目录,压缩文件被删除,只保留解压后的文件

6.2 zip和unzip(常用于打包编程项目)

zip [-r] xxx.zip [文件/路径名] - 把指定的文件/路径压缩成名为xxx.zip的压缩文件
其中,-r是代表递归压缩,如果别压缩的是一个目录,需要使用-r选项
unzip -d [路径名] [压缩文件名] - 把指定压缩文件解压到指定路径

6.3 tar

tar [选项] xxx.tar.gz [要压缩的文件名] - 把要压缩的文件压缩成xxx.tar.gz的压缩文件
常用选项
在这里插入图片描述
一般都组合使用,打包压缩时使用-zcvf
解压时使用-zxvf
例:
tar -zcvf code.tar.gz code1.txt code2.txt - 把code1.txt和code2.txt打包压缩成code.tar.gz文件
tar -zcvf dircode.tar.gz code - 把code目录打包压缩成dircode.tar.gz
tar -zxvf code.tar.gz - 把code.tar.gz文件解压到当前目录
tar -zxvf dircode.tar.gz -C [路径名] - 把dircode.tar.gz解压到指定路径

五、组和权限管理

5.1 组管理

对于文件来说,有三个属性
① 所有者 - 文件属于谁
② 所在组 - 文件所在的组
③ 其他组 - 除了所有者和所在组之外的组

5.1.1

查看所有者和所在组
ls -ahl

5.1.2 创建用户和组

创建一个police组,创建一个用户wusong,放到用户组police
groupadd police
useradd -g police wusong
使用wusong登录,然后创建一个文件apple.txt
然后查看apple.txt文件的所有者和所在组

5.1.3 修改文件所有者和所在组

修改文件apple.txt所有者
chown [新所有者] [文件名] 把文件的所有者改成新所有者(需要root权限)
修改文件apple.txt所在组
chgrp [组名] [文件名] 把文件所在组修改成指定组

5.1.4 修改用户所在组

usermod -g [组名] [用户名] 把用户切换到指定组

5.1.5 修改文件读写权限

在这里插入图片描述
首先要清楚这里查看文件结果所代表的含义

第1位代表类型
d 表示是一个目录
- 表示是一个文件
l 表示是一个软链接
c 表示是一个字符设备(键盘、鼠标)
b 表示是一个块文件(硬盘)

第2-4位代表属主对该文件或目录的读®写(w)执行(x)权限
第5-7位代表属组对该文件或目录的读®写(w)执行(x)权限
第8-10位代表其他组用户对该文件或目录的读®写(w)执行(x)权限
若对应位为-,则表示没有对应权限

第11位开始的数字表示文件的硬链接数量(如果是目录,则代表目录的子目录数量)

随后的空格后面内容分别表示属主和数组

后面的日期时间表示最后修改的时间

5.1.5.1 用数字修改各个用户的读写执行权限

r=4, w=2, x=1
例如要给读写权限就是rw=4+2=6
语法:

chmod xxx [文件名]

其中xxx为3个数字,第一个代表属主权限,第二个代表数组权限,第三个代表其他用户权限
例如

chmod 741 /home

表示给/home属主读写执行权限,给所属组用户读权限,给其他用户执行权限

5.1.5.2 使用字母代表给文件或目录修改权限

语法:

chmod u=rwx,g=rx,o=r /home

其中,u代表属主,g代表数组,o代表其他组用户,a代表所有用户
=表示将权限重置为等号后面的权限
+表示添加权限
-表示取消权限

六、任务调度

有些任务需要定期执行,此时可以使用任务调度设置定时执行

crontab -e	//编辑定时任务
crontab -l	//查看定时任务
crontab -r	//删除所有定时任务
service crond restart	//重启定时服务

例:每隔一分钟将日期保存到/home/mydate文件

crontab -e
* * * * * date >> /home/mydate

语法分析:
前面的5个*分别代表:

位置含义
第一个*分钟
第二个*小时
第三个*每月的第几天
第四个*每年的第几月
第五个*每周的第几天(0和7都代表星期日)

每一位可以使用的格式及其含义(以分为例,月周日时同理):

格式含义
*表示每一分钟
1表示第1分钟
2,4,6表示第2分钟,第4分钟,第6分钟(逗号表示不连续)
2-10表示第2到第10分钟(-表示连续)
*/1表示间隔1分钟

后面的语句可以是简单的可以直接执行的语句,也可以是可执行文件,当指令比较简单时,可以直接写语句加在后面,如果比较复杂,就写出文件加载后面
例如:

*/5 * * * * /home/mytask.sh

表示每隔5分钟执行一次/home/mytask.sh这个文件(注意:当把比较复杂的脚本或者代码放到文件里面定时启动时,一定要确保这个文件是可执行的文件,也就是确保有执行权限

七、磁盘管理

7.1 Linux硬盘说明

Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本都是SCSI硬盘

7.1.1 IDE硬盘

驱动器标识符一般为hdx~,其中:
hd表示分区所在的设备类型
x表示盘号(a为主盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘)
~代表分区用数字1,2,3,4…表示1-4为主分区,后面的是逻辑分区

7.1.2 SCSI硬盘

驱动器标识符一般为sdx~,其中:
sd表示分区所在设备类型
其他含义和IDE硬盘相同

7.2 给Linux增加一个硬盘

补充:lsblk -f 命令可以查看当前硬盘分区挂载情况

  1. 添加硬盘(如果是虚拟机就直接创建虚拟硬盘,如果是服务器,要加真实硬盘)
  2. 分区 fdisk /dev/sdb 执行后会有提示,选择m查看指令,选择n新增分区,继续选择p(增加主分区)或e(扩展分区)
  3. 格式化 mkfs -t ext4 /dev/sdb1 其中:-t ext4 表示格式化成ext4格式,格式化之后lsblk -f 查看磁盘挂载情况可以看到sdb1这个分区有了uuid
  4. 挂载 mount /dev/sdb1 /home/newdisk 将/sdb1挂载到/home/newdisk
  5. 自动挂载,使得重启后挂载依旧有效(永久挂载)修改/etc/fstab 后重启

7.3 卸载

umount /dev/sdb1	//umount 分区路径
umount /home/newdisk	//umount 挂载文件路径

umount 分区路径

umount 文件名
就可以卸载挂载的分区了

7.4 磁盘查看指令

7.4.1 查看磁盘整体的使用情况

df -h
-h 表示用k,m,g等单位显示文件或目录大小
在这里插入图片描述

7.4.2 查看指定目录的磁盘占用情况

du -ach [目录]
-a:表示包含文件
-c:表示统计汇总
-h:带计量单位
-s:指定目录占用大小汇总
–max-depth=1:查找深度
在这里插入图片描述

7.4.3 查看指定目录下的文件或者文件夹数量

ll /home | grep "^d" | wc l		//查看/home路径下的目录数量
ll -R /home | grep "^d" | wc l		//递归查看/home路径下的目录数量
ll /home | grep "^-" | wc l		//查看/home路径下的文件数量
ll -R /home | grep "^-" | wc l		//递归查看/home路径下的文件数量
tree /home	//以树状视图显示/home路径(需要安装tree)

八、网络配置

8.1 查看网络IP和网关

ifconfig

8.2 查看网络联通情况

ping ip

8.3 修改IP配置文件

文件路径
/etc/sysconfig/network-scripts/ifcfg-enp0
使用vim打开上面这个文件进入编辑
设置:
ONBOOT=yes //启用boot
BOOTPROTO=static //以静态方式获取IP,可选项为[none|static|boottp|dhcp]
IPADDR=192.168.56.3 //ip地址
GATEWAY=192.168.56.1 //网关地址
DNS!=192.168.56.1 //dns地址,和网关地址相同即可
修改后保存退出
然后重启网络服务
service network restart

九、进程管理

9.1 进程查看

Linux中,每个执行的程序(代码)都是一个进程,每一个进程都会有一个ID号
每一个进程都对应一个父进程
进程分为前台和后台两种,后台进程又称守护进程,屏幕上看不到
一般的系统服务都是后台进程,直到关机才会结束

查看命令
ps -aux 查看所有进程
ps -aux | less 查看所有进程,分页显示
ps -aux | grep sshd 查看sshd相关进程
-a 表示查看所有进程
-u 表示以用户的格式显示进程信息
-x 表示显示后台进程运行的参数
在这里插入图片描述
其中:
USER 表示用户名称
PID 表示进程号
%CPU 表示cpu占用情况
%MEM 表示内存占用情况
VSZ 表示占用的虚拟内存大小(单位:k)
RSS 表示进程占用的物理内存大小(单位:k)
TTY 表示终端名称
STAT 表示进程状态;其中(S表示睡眠,R表示正在运行,s表示该进程是会话的先导进程,N表示比普通进程的优先级更低,D表示短期等待,Z表示僵死进程,T表示被跟踪或者被停止)
START 表示进程启动的时间
TIME 表示进程使用cpu的总时间
COMMAND 启动进程所用的命令和参数,如果过长会截断显示

查看父进程
ps -ef 查看所有进程的父进程
ps -ef | grep sshd 查看sshd的父进程

9.2 终止进程

语法:
kill 进程ID
killall 进程名
选项:
-9 表示强制终止
实例:

9.2.1 终止一个用户的远程登录

  1. 先查看所有的远程登录进程,找到要终止的用户登录的进程信息
  2. 使用kill 进程号命令终止该进程
    例:
ps -aux | grep sshd		//查看远程登录相关进程,回车后显示所有远程登录进程,找到要终止的进程ID假设为6220
kill 6220		//终止进程号为6220的进程

9.2.2 终止sshd远程登录服务,适当的时候重启

ps -aux | grep sshd		//找到sshd服务的进程ID假设为6120
kill 6120		//终止任务号为6120的进程

9.2.3 终止多个进程,比如不同用户启动了多个vim进程

killall vim		//终止所有名字为vim的进程

9.2.3 终止一个终端进程

ps -aux | grep bash		//查看终端进程,回车后显示所有终端进程,找到要终止的任务ID假设为6320
kill -9 6320		//强制终止任务号为6220的进程

9.3 以树状视图查看进程

pstree -p 以树状视图显示进程,-p表示显示进程的pid
pstree -u 以树状视图显示进程,-u表示显示进程的用户

9.4 服务管理

9.4.1 服务管理命令

service 服务名 操作[stop | start | restart | reload | status]
centos7之后service命令可能就不支持了,可以使用systemctl命令
例如:
service iptables status //可以查看当前防火墙的状态
在Windows命令提示行或者Linux终端使用telnet ip port 可以测试该IP的对应端口是否开放

使用service 服务名 操作 对服务进行的启动,停止等操作立即生效,但是重启后会回归到以前的设置

9.4.2 查看所有服务

9.4.2.1 使用setup查看(有些系统不支持)
9.4.2.2 使用ls命令查看/etc/init.d 路径
ls -l /etc/init.d/

9.4.3 chkconfig命令

9.4.3.1 查看所有服务在不同运行级别下的自启动状态
chkconfig --list	//查看所有服务的状态
chkconfig	mysql	--list	//查看mysql服务的状态
chkconfig --list | grep mysql	//和上面语句作用相同
9.4.3.2 使用chkconfig修改某服务在指定运行级别的自启动设置
chkconfig --level 2 mysql off	//把mysql服务在2这个运行级别设置为关闭(也就是不自动启动)
chkconfig mysql off		//把所有运行级别下mysql服务都设置为不自动启动

chkconfig修改设置后要重启设备才能生效

9.5 动态监控进程和网络状态

9.5.1 动态监控进程

命令top
选项:
-d 指定刷新的秒数
-i 不显示僵死进程
-p 只显示指定的进程号的进程,后面加对应的进程id可以多个,用,隔开

进入监控后可以使用交互操作对显示的进程进行筛选或者排序
u 表示筛选用户,输入u然后输入用户名回车,即可筛选指定用户的进程
P 根据cpu占用情况排序;默认就是按照这个排序
M 根据内存占用情况排序
N 根据进程id排序
k 可以终止指令,输入k后输入要终止的进程id即可终止对应id

9.5.2 动态监控网络状态

命令netstat
选项
-an 按照一定顺序排序显示
-p 显示哪个进程在调用
netstat -anp | grep sshd //显示所有sshd进程的网络状态

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux学习笔记是关于学习Linux操作系统的记录和总结。在学习Linux时,你可能会遇到以下几个方面的内容。 首先,Linux是一个面向网络服务的操作系统,因此你可以随意更换桌面系统。Linux有多种不同的桌面系统供你选择。这意味着你可以根据自己的喜好和需求,选择适合自己的桌面环境。 其次,在Ubuntu中,root用户默认是被锁定的,因此你无法直接使用root权限进行操作。但是,你可以使用sudo命令来提升权限,以执行需要root权限的操作。通过sudo命令,普通用户可以在需要时暂时获得root权限,以便进行需要的操作。 此外,如果你需要修改内核为bash,可以使用vim编辑器打开/etc/passwd文件进行修改。在Linux系统中,vim是一种常用的文本编辑器,类似于Windows的记事本。通过编辑/etc/passwd文件,你可以修改用户的登录shell为bash。 总结起来,Linux学习笔记记录了学习Linux操作系统的过程和经验,包括选择适合自己的桌面环境、使用sudo提升权限以及通过vim编辑器修改/etc/passwd文件等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux学习笔记](https://blog.csdn.net/m0_65379736/article/details/125700177)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值