• 文章
  • 在线工具

linux完整简洁笔记

linux命令 linux笔记 linux教程
809

文件操作

一、 文件类型(常见三种)

  • 文件
表达方式: -
  • 目录(类似windows的文件夹)
表达方式:d
  • 链接(类似windows的快捷方式)
表达方式:l

二、 文件权限

  • r 可读
  • w 可写
  • x 可执行(脚本,比如shell脚本)
  • - 特殊字符,表示没有任何权限
文件的归属
  • 拥有者 owner u
  • 属于组 group g
  • 其他人 other o

举例说明

[root@iZm5e9tuuj84fiyy7b3bx3Z /]# ll
drwxr-xr-x   3 root root  4096 Jun 23 09:04 app
lrwxrwxrwx   1 root root     7 Apr 26 15:48 bin
-rw-r--r--   1 root root     0 Jul 24 16:10 springboot.log
1. 第一部分 drwxr-xr-x
  • 10个字符代表着不同意义,将这个10个字符分为4组,第一字符为1组,后面9个字符分3组 d rwx r-x r-x。
  • 第一字符表示文件类型
  • 后面9个字符表示针对不同用户的的权限关系
d       //第一个字符是文件类型,d代表着目录rwx     //拥有者r-x     //属于组r-x     //其他人
2. 第二部分 root root
  • 第一个字符串表示文件拥有者root
  • 第二个字符串表示文件所属组root

修改权限

*需要使用Root用户

  • chmod 命令(change mode)

举例说明:

  • 对于同组用户,仅仅可读;
 # chmod g-w 文件名称
  • 对于其他用户,既不可读也不可写
 # chmod o-r 文件名称

改变所属组和拥有者

  • 改变拥有者
 # chown root /home/a.txt
  • 改变所属组
 # chgrp root /home/a.txt

三、文件查看

  • cat 文件名称

查看全部内容,适合内容比较少的方式

 # cat a.txt  
  • more 文件名

翻页查看内容,适合内容比较大的方式

 # more a.txt
  • tail -f 文件名

查看文件末尾的内容,一般查看日志用

 # tail -f a.txt
 # tail -200f a.txt //200
  • head 文件名称

查看文件开头内容,内容模板样式

 # head a.txt

四、文件创建

  • touch 文件名称
 # touch a.txt

五、文件修改

  • vim/vi 文件名称

vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计

 # vim a.txt
  • echo '内容' >> 文件名称

文本内容追加

 # echo '123456' >> a.txt
  • 快捷键(在vi查看模式下)
* dd : 表示删除光标所在的行的内容* ZZ : 表示的是保存文件内容* x  : 表示将光标处的字符给删除* o  : 表示在光标的下一行进行插入内容

六、文件的拷贝

  • cp 文件名称 目标目录/名称

复制单个文件或文件夹情况下(出现多个文件时报错)

 # cp a.txt /home/a.txt
  • cp -r 目录 目标目录

-r表示递归删除子文件

复制目录及目录文件

 # cp -r /etc/a.txt /home

七、文件移动与重命名

  • mv 文件 目标文件 同目录情况下则是重命名,不同目录则是移动
 # mv a.txt b.txt
 # mv a.txt /home/b.txt

八、文件删除

  • rm 单个文件

如果删除多个文件则会报错

 # rm a.txt
 # rm file
  • rm -rf file

r表示递归删除子文件, f表示强制删除, 一般建议给绝对路径,以免误操作

 # rm 

九、创建目录

  • mkdir 目录名称

只能创建单个目录

 # mkdir file
  • mkdir -p 多级目录

-p如果父级文件没有则创建,有则不创建

 # mkdir -p /a/b/c

十、链接

  • 软链接 sort link
  • 硬链接 hard link
  • 区别:删除连接时,是否删除源文件
  • 创建软链接 -s代表软连接
 # ln -s file/dir linkName
  • 创建硬链接
 # ln file/dir linkName

十一、文件搜索

  • find ~/ -name file

~/当前目录,精确搜索

 # find ~/ -name a.txt
  • find ~/ -name file\*

模糊搜索a开头的文件

 # find ~/ -name a\*

系统管理

一、查看系统信息

  • uname
[root@izwz9awjm6q5koj7sjg0jsz ~]# unameLinux
  • uname -r 查看版本
[root@izwz9awjm6q5koj7sjg0jsz ~]# uname -r3.10.0-514.26.2.el7.x86_64
  • cat /proc/cpuinfo 查看cpu信息
[root@izwz9awjm6q5koj7sjg0jsz ~]# cat /proc/cpuinfoprocessor	: 0vendor_id	: GenuineIntelcpu family	: 6model		: 79model name	: Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHzstepping	: 1microcode	: 0x1cpu MHz		: 2494.224cache size	: 40960 KB...
  • date 查看当前日期
  • cal 2020 查看日历表
  • cat /proc/meminfo 查看内存信息
[root@izwz9awjm6q5koj7sjg0jsz ~]# cat /proc/meminfoMemTotal:        1883724 kBMemFree:          118348 kBMemAvailable:     794852 kBBuffers:           77276 kBCached:           709520 kBSwapCached:            0 kBActive:          1339492 kB...
  • df -lh 查看磁盘使用情况
[root@izwz9awjm6q5koj7sjg0jsz ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  6.3G   31G  17% /
devtmpfs        911M     0  911M   0% /dev
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           920M  508K  920M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
overlay          40G  6.3G   31G  17% /var/lib/docker/overlay2/784d21c5380dd6edcc5943998078143/merged

...
  • du -sh 目录: 查看某个目录磁盘使用情况
[root@izwz9awjm6q5koj7sjg0jsz home]# du -sh /home974M	/home
  • mount 查看挂在磁盘信息
  • umount 卸载磁盘
  • fdisk -l 修复磁盘,自动修复
[root@izwz9awjm6q5koj7sjg0jsz home]# fdisk /home
  • free -m 看内存使用情况
[root@izwz9awjm6q5koj7sjg0jsz ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1839         900         119           0         819         769Swap:             0           0           0

sudo设置普通用户权限

vi /etc/sudoers//增加到第一行root2 ALL=(root)NOPASSWD:ALL

防火墙

  • sudo service iptables status 查看防火墙的状态

  • sudo service iptables stop 停止关闭防火墙

  • sudo service iptables start 启动防火墙

  • sudo service iptables restart 重启防火墙

  • sudo chkconfig iptables off|on 永久关闭|开启防火墙

定时调度Crontab

  • crontab -e 创建定时任务
 # crontab -e
 
 */1****  /bin/date  >> /home/log.txt
  • crontab -l 查出任务列表
  • crontabl -r 删除所有的任务

软件安装

1、第一种方式

  • rpm -qa|grep name 检测软件是否安装
[root@izwz9awjm6q5koj7sjg0jsz ~]# rpm -qa|grep java
  • rpm -e --nodeps xxxxx 卸载已安装的软件
  • rpm -ivh xxxx.rpm 安装软件

2、第二种方式

  • yum

3、第三种方式

tar 源码 编译 不推荐使用源码编译方式安装软件

压缩软件

zip压缩软件

  • unzip xxx.zip 解压
  • zip yy.zipe filename 压缩

tar压缩软件

  • tar zxvf xxxx.tar.gz 解压
  • tar zcvf xxxx.tar.gz dir/file 压缩

shell 编程

注意事项

  • 编写脚本第一行指定用哪个程序来编译和执行脚本
 #!/bin/bash      或者     #!/bin/sh
  • 变量名:必须以字母或下划线开头,后面可以跟字母、数字或者下划线。区分大小写敏感
 # name=nihao  //定义变量 # echo $name  或者  echo ${name}  //打印变量
 nihao # unset name  //清除变量
  • 变量类型:根据变量的作用域,变量可以分为本地变量和环境变量;本地变量则是只在创建他们的shell中可用。而环境变量则在Shell中所有的用户进程都可以用,通常称为全局变量
  • 位置参量:是一种特殊的内置变量,通常被shell脚本用来从命令行接收参数,或者被函数用来保存传递给他的参数

说明
$0当前脚本文件名
$1-9第 1 个到第 9 个位置参量
${10}第 10 个位置参量
$#位置参量个数
$*以单个字符串显示所有位置参量
$@未加双引号时与 $* 含义相同,加双引号时有区别
$$脚本运行的当前进程号
$!最后一个后台运行的进程的进程号
$?显示前面最后一个命令的退出状态。О表示没有错误,其他任何值表示有错误。

执行shell脚本时,用户可以通过命令行向脚本传递信息,跟在脚本名后面 以空格隔开每个字符串都称为位置参量 例如:$1表示一个参数;$2表示第二个参数;第10个之后参数则用${10}

 //脚本内容
 #!/bin/sh
 echo "hello ${1} ${2}"
 # . a.sh word! aaaaa
 hello word! aaaaa //打印语句
  • 执行脚本
 # ./a.sh
 # . a.sh 
 # sh a.sh
  • if判断命令

关于某个档名的『文件类型』判断,如test -e filename表示存在否
-e该『档名』是否存在?(常用)
-f该『档名』是否存在且为档案(file)?(常用)
-d该『文件名』是否存在且为目录(directory)?(常用)

关于档案的权限侦测,如test -r filename表示可读否(但root权限常有例外)
-r侦测该档名是否存在且具有『可读』的权限?
-w侦测该档名是否存在且具有『可写』的权限?
-x侦测该档名是否存在且具有『可执行』的权限﹖

关于两个整数之间的判定,例如test ni -eq n2
-eq两数值相等(equal)
-ne两数值不等(not equal)
-gtn1大于n2 (greater than)
-ltn1小于n2 (less than)
-gen1大于等于n2 (greater than or equal)
-len1小于等于n2 (less than or equal)

判定字符串的数据
test -z string判定字符串是否为О?若string为空字符串,则为 true
test -n string判定字符串是否非为О?若string为空字符串,则为false.
test str1 = str2str2判定str1是否等于str2 ,若相等,则回传 true
test str1 != str2判定str1是否不等于str2,若相等,则回传false

1、单层、简单条件判断式

if[条件判断式];then
    当条件判断式成立时,可以进行的指令工作;fi // if反过来写,就成为fi!结束if之意!

2、多重、复杂条件判断式

if[条件判断式];then
    当条件判断式成立时,可以进行的指令工作;elif[条件判断式];then
    当条件判断式不成立时,可以进行的指令工作;else
    当条件判断式不成立时,可以进行的指令工作;fi 
  • 循环
 for var in 1 2 3 4 5
 do 
    echo ${var}
 done
 num=10 s=0 for((i=0;i<${num};i=i+1)) do 
    s=$((${s}+${i}))
 done


评论
或者使用社交账号快捷登录