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粘贴到光标前面
  • 2 插入模式
    按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可.
  • 3 命令行模式
    输入esc 再输入:,在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的!
    • :w 将编辑内容写入文档中
      :q 离开vi
      :wq 存储并离开
      !在vi中有强制的意义
      :w [filename] 另存新档

      :set nu 显示行号 :set nonu去除行号

关机&重启命令

命令 功能
立刻关机 shutdown -h now halt poweroff
重启 reboot(需是root用户) shotdown -r now
十分钟后关机 shutdown -h 10

用户登录&注销

表示普通用户 || # 表示root用户

    1. 使用 su - username 来切换系统管理员身份。
    1. 使用logout退出当前用户。 该指令在图形运行级别无效。(在centOs的terminal中无法使用logout指令。)

添加用户&用户组

    1. 添加用户 useradd username
    1. 指定/修改密码 passwd username
    1. 添加组 groupadd groupname
    1. 增加用户时直接加上组 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命令

shell编程

posted @ 2022-08-10 14:27  Firewooood  阅读(36)  评论(0)    收藏  举报