linux学习记录
VMware 的网络适配器#
- 桥接模式
虚拟系统可以和外部系统直接通信,容易造成ip冲突
eg: 计算机使用192.168.0.20和外界通信,虚拟系统使用192.168.0.80和外部通信 - NAT模式 (一般情况下选择此模式)
网络地址转换模式,相当于在主机中加了一台交换机,虚拟系统通过交换机和外界通信 不会造成ip冲突。 - 仅主机模式
- 自定义
linux分区#
一般分为三个分区
- boot 1G
- swap 和内存大小一致 2G
- root 剩余内存 17G
vim的使用#
- 1 正常模式
- 以vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。
在正常模式下输入u可以撤销前面的活动
在正常模式下按 V 进入可视模式,可通过方向键来选定文字
按 Y 进行拷贝,按 d 剪切文本,按P将文本粘贴至光标后面。p粘贴到光标前面
- 以vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。
- 2 插入模式
按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可. - 3 命令行模式
输入esc 再输入:,在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的!- :w 将编辑内容写入文档中
:q 离开vi
:wq 存储并离开
!在vi中有强制的意义
:w [filename] 另存新档
:set nu 显示行号 :set nonu去除行号
- :w 将编辑内容写入文档中
关机&重启命令#
命令 | 功能 | ||
---|---|---|---|
立刻关机 | shutdown -h now | halt | poweroff |
重启 | reboot(需是root用户) | shotdown -r now | |
十分钟后关机 | shutdown -h 10 |
用户登录&注销#
表示普通用户 || # 表示root用户
-
- 使用 su - username 来切换系统管理员身份。
-
- 使用logout退出当前用户。 该指令在图形运行级别无效。(在centOs的terminal中无法使用logout指令。)
添加用户&用户组
-
- 添加用户 useradd username
-
- 指定/修改密码 passwd username
-
- 添加组 groupadd groupname
-
- 增加用户时直接加上组 useradd -g 组名 用户名
帮助指令#
man指令#
man [命令或配置文件] eg: man ls
help指令#
help 命令 (功能描述:获得shell内置命令的帮助信息)
常用指令#
cd指令#
- cd ~ 或 cd 回到自己的家目录
- cd .. 回到当前目录的上一级目录
mkdir 目录#
基本语法 mkdir [选项] 要创建的目录
-p 创建多级目录,例子如下:
mkdir -p ./code/js
rmdir 删除目录#
rmdir [选项] 要删除的空目录
若要删除的目录中还有文件可用rm -rf 删除
touch 创建空文件#
touch 文件名
cp 拷贝文件#
cp [选项] source dest
-r: 递归复制整个文件夹
rm 移除文件或目录#
rm [选项] 要删除的文件
-r 递归删除文件或目录
-f 强制删除不提示
mv 移动文件或重命名#
mv 旧名 新名
mv /tmp/movefile /targetFolder
echo 输出内容到控制台#
echo [选项] [输出内容]
eg: echo $PATH
date 显示&设置当前日期#
-d<字符串>:**显示**字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来**设置**日期与时间。字符串前后必须加上双引号;
%Y表示年,%m表示月,%d表示日,%H表示小时,%M表示分钟,%S表示秒,%s表示从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数,相当于time函数,%w表示一周中的第几天。
eg: date +"%Y-%m-%d" 2015-12-07
gzip压缩 gunzip解压#
zip [选项] xxx.zip
-r 递归压缩,即压缩目录
unzip [选项] xxx.zip
-d <目录> 指定解压后的目录
linux组管理和权限管理#
查看文件的所有者 - ls -ahl
修改文件的所有者 - chown 用户名 文件名
权限的基本介绍#
ls -ahl中显示的内容如下
-rw-rw-r--. 1 wxz firewood 182 3月 31 10:14 hello.java
文件列表信息分为:文件类型、权限、链接数(子目录数)、所属用户、所属用户组、文件大小、最后修改时间、文件名。
linux一共有7种文件类型,分别如下:
-:普通文件
d:目录文件
l: 软链接(类似Windows的快捷方式)
(下面四种是特殊文件)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如猫等串口设备)鼠标键盘
s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)
文件权限对应关系
权限 | 对应数字 | 意义 |
---|---|---|
r | 4 | 可读 |
w | 2 | 可写 |
x | 1 | 可执行 |
rwxr-xr-x 5 root root 94 Jun 27 2017 xdg
- rwx:代表 文件所有者(u表示)权限 ,这里是root,root对该文件拥有读写执行权限。
- r-x : 代表所属组(g表示)的权限,这里所属组拥有对该文件读和执行的权限。
- r-x : 代表其他人(o表示)的权限,这里和上面权限一样。
rwx 作用到文件时, 可以修改,但不代表可以删除该文件,删除一个文件的前提是对文件所在的目录有写的权限
rwx 作用到目录时, 具有修改目录结构的权限,比如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切和复制。
chmod - 改变文件的访问权限#
chmod [options] mode file...
[ugoa...][[+-=][rwxX]...][,...],
其中
[ugoa...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。
[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
[rwxX]
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
一般使用格式#
-
设置所有用户可读取文件 a.conf
chmod ugo+r a.sh 或 chmod a+r a.con
-
设置 c.sh 只有 拥有者可以读写及执行
chmod u+rwx c.sh
-
设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写
chmod a+r,ug+w,o-w a.conf b.xml
-
设置当前目录下的所有档案与子目录皆设为任何人可读写
chmod -R a+rw *
数字权限使用格式#
r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7; rw = 4 + 2 = 6; rx = 4 +1 = 5;
示例
设置所有人可以读写及执行
chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)
Linux常用权限#
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
定时任务调度#
基本语法 crontab [选项]#
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
占位符
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 表示任何时间,比如第一个*就代表每分钟执行一次的意思 |
, | 表示不连续的时间,比如0 8,12,16 * * * 命令,代表在每日8、12、16点执行一次 |
- | 代表连续的时间段 |
*/n | 代表隔多久执行一次,如 */10 * * * * 代表隔10分钟执行一次 |
实例#
0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache
50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务
50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务
0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘
1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码