🗒️Linux基础

type
status
date
slug
summary
tags
category
icon
password
✅一些Linux基础知识。简单记录,方便回顾。

基础

  1. 系统变量: PATH:搜索命令的路径。 HOME:当前用户的主目录。 PS1:你的提示符设定。 SHELL设置登录shell的路径。 TERM设置你的登录终端的类型。 TMOUT:用于Shell内建命令read的默认超时时间。 HISTSIZE:记录在命令历史中的命令数。
  1. 变量定义:字母/下划线开头,大小写敏感
  1. 变量赋值引用:a=3;b=$a;echo $b
  1. 输出: var=shell;printf "%4.2s-%4.1s\n" $var(.n表示字符个数) %x16进制 %e浮点数 echo “is $var”或echo -e “is $var\t”(-e:激活转义字符)
  1. 变量引用:”$var”单引号不能引用变量
  1. 删除变量:unset var
  1. 检测变量是否存在: ${var? bcz}或${var:? bcz}
  1. 回调命令历史: ↑↓ ctrl+r history
  1. 大括号扩展: echo a{b,c}e输出abe,ace echo {a..z}输出a ... z
  1. 创建使用别名:~/.bashrc中alias var=’df -h’ 删除别名:unalias var

常用命令

  1. ls扫描目录: ls -l 时间倒序:ls -ltr 文件大小:ls -ls 所有文件:ls -la
  1. cat显示文件内容: 显示序号(-b不显示空行):cat -n file he开头:cat *he .sh结尾:cat *.sh
  1. less\more分屏显示文: 翻页查看(每页n行):more (-n) file more *.sh翻页查看.sh结尾 less支持前后翻页,不需要提前加载所有速度更快,能指出pageup和down,可以单行滚动。 退出q/ZZ,跳至开头g,跳至末尾G
  1. head显示文件头部: 前x行:head -n x file或head -x file 除最后x行外所有行:head -n -x file 前x个字节数据:-c x,-c -x:除…
  1. tail显示文件尾部: 最后x行:head -n x file head -x file 除前x行外所有行:head -n +x file 最后x字节:head -c num file 实时监控:head -f -n x file 每3秒更新最后x行:-f -s 3 -n x file
  1. file查看文件类型: file name 格式和编码:file -b name
  1. wc查看统计信息: 行-l,单词-w,字符数-c 文件个数:ls -l | grep “^-” | wc -l ③文件总个数:ls -lR | grep “^-” | wc -l 目录个数:ls -l | grep “^d” | wc -l
  1. find查找文件: 搜索/etc下是否存在group文件名的文件find /etc -name group 根目录下查找名为etc的目录find / -type d -name etc 文件名以.sh结尾的所有文件find / -type f -name “*.sh” 所有空文件find / -type -f -empty 所有空目录find / -type -d -empty 30天以前60天以内的所有文件find / -type f -mtime +30 -mtime -60:
  1. touch创建文件: 创建:touch file 更改访问时间:touch -a file或-c 改变修改时间:touch -m file ④更改修改和访问时间12/12/13/10/30:touch -c -t 1212131030 file
  1. mkdir创建目录: 自动创建不存在父目录:mkdir -p dir 设置权限:mkdir -p -m 777 dir
  1. cp复制: 复制he开头文件到当前目录:cp he* ./ 目录到目录:cp -r file1 file2
  1. ln链接文件:ln -s file2 file1
  1. mv重命名与移动: 重命名:mv file1 file2 mv source file
  1. rm删除: ①文件:rm file ②目录:rm dir -r
  1. ls -l显示权限:所有者-用户组-其他用户。读r4,写w2,执行x1。
  1. chmod修改权限: 移除文件ex.sh用户组成员的写权限:chmod g-w ex.sh 添加文件ex.sh其他用户的写权限:chmod o+x ex.sh 只给文件ex.sh的所有者执行权限:chmod u=x ex.sh 赋予所有人对文件ex.sh读、写、执行权限:chmod ugo+rwx ex.sh 赋予所有人对文件file.sh读、写、执行权限:chmod 777 file.sh 赋予文件的所有者和用户组成员读写权限、其他用户只读权限:chmod 664 file.sh
  1. sort文本排序: 按照数值大小对file内容逆序排序:sort -n -r file 字符串排序:sort  u file 按照第二列字符串顺序,-t指定分隔符,-k指定排序的列:sort -t ‘,’ -k2,2 file
  1. uniq文本去重: 去除重复行,并统计重复行次数:uniq -c file 显示重复行-d 显示不重复行-u 只比较每行前n个字符:uniq -w n file
  1. tr替换和删除字符: 小转大写:echo linux | tr a-z A-Z 删除字符:tr -d a-z
  1. grep查找字符串: ①file中是否存在xx字符串:grep xx file ②递归搜索dir目录下的文件是否包含xx(并显示行号):grep -r (-n) xx dir
  1. diff比较两个文件: diff file1 file2 w忽略空格,c另一种对比风格:diff -cw fil1 file
  1. hostname查看主机名
  1. w、who列出登录用户
  1. uptime查看系统运行时间
  1. uname查看系统信息:-a打印系统多个信息
  1. date显示和设置时间: 获取时间戳:date +%s 显示年月日:date +"%Y-%m-%d" ③date -d ④时间戳转日期:date -d ‘@时间戳’
  1. id显示用户属性

进阶命令

  1. paste合并文件:将文件各行按照’|’进行合并:paste -d’|’ file1 file2
  1. dd备份和拷贝文件:
  1. gzip、bzip2压缩和归档文件: 压缩并生成.gz结尾的文件,删除原始文件:gzip file 压缩并保留,写入到指定文件:gzip -c file > file.gz -d解压缩:gzip -d file.gz
  1. tar打包和解包文件: -c创建新的归档,-v列出被处理的文件,-f指定归档文件的名称 对/home/data目录进行归档不压缩(tar.gz就是压缩):tar -cvf /home/file.tar /home/data 对归档文件file.tar进行解压:tar -xvf /home/file.tar 对压缩文件file.tar.gz进行解压:tar -zxvf /home/file.tar.gz 列出文件file.tar的内容,不进行解压:tar -tvf /home/file.tar tar -tzvf /home/file.tar.gz
  1. mount、unmount挂载和卸载存储介质: ①查看磁盘分区与挂载信息:df -h或lsblk -f ②查看磁盘信息:fdisk -l ③fdisk路径 进行磁盘分区添加,mkfs -t路径 进行分区格式化、mount 路径 进行文件系统挂载
  1. df报告磁盘利用率:可读显示磁盘可用空间信息:df -h
du评估文件空间利用率:显示dir目录所有目录大小且以1024字节为单位(可读\递归\可读
+递归):du (-a\-h\-ah) dir
  1. crontab执行计划任务: 分时日月周 用户 命令 每天六点:0 6 * * *每周一到周五凌晨两点:0 2 * * 1-5 每五分钟:*/5 * * * * 每天零点,两点:0 0,2 * * * 列出当前用户所有定时计划:crontab -l 创建或修改定时计划:crontab -e
  1. nohup 运行一个对挂起免疫的命令:nohup 命令 参数 &

shell编程基础

  1. 命令模式:i输入模式,x退格,:底线命令模式,Ctrl+v可视化模式(可复制粘贴),x字符删除
  1. 底线模式:ESC退出,w保存,q退出vim,q!强制退出
  1. 输入模式:backspace\del字符删除,enter回车,方向键移动
  1. 定义变量:$a或${a}。${a}引用a的值。
  1. 大括号扩展: ①${a^}第一个字符大写,小写’,’,’^^’全大写’,,’全小写。 ②${!a*}或${!a@}以a开头所有变量名。
  1. 字符串移除: ${参数#模式}, #和##用于移除从参数值的开头匹配指定模式的字符串, %h和%%用于从参数值的末尾匹配指定模式的字符串, ‘#’和‘%’表示将移除匹配指定模式的最短文本, ‘##’和‘%%’表示移除匹配指定模式的最长文本。
  1. 字符串搜索和替换: 替换参数值中匹配指定模式的子字符串: ${参数值/模式/子字符串}。 ‘/’表示只替换一个匹配的字符串, ‘//’表示替换所有匹配的字符串。 ‘##’和‘%%’表示移除匹配指定模式的最长文本。 字符串长度:${#参数} 子字符串:${参数:起:终}
  1. 运算符: 按位:&与,^异或,|或 逻辑:&&与,||或,ex?ex:ex条件运算
  1. let运算:let a=5+4;echo

条件执行

  1. test条件测试: test表达式,0真1假 test 5 -eq 5 && echo Y || echo N:输出Y(大于-gt,大于等于ge,小于lt,小于等于le) 判断文件是否存在:test -e file && echo “$_ found” || “$_ not found”
  1. if结构: if [命令];then命令;fi if [];then;命令;else;if [] then;命令;fi
  1. 逻辑与&&:1成功才2。var长度不为零且存在:if [-n $var] && [-e $var]
  1. 逻辑或||:1失败才2。
  1. case语句: case expres in;参数1;命令;;;;参数2;命令;;;;esac

循环

  1. for循环: for var in item1,item2或$fileNames;do或((i=;i<;i++));do;命令1;命令2;done for循环遍历:LIST="one two ";for
    1. var in $LIST;do;echo "$var";done
  1. while循环:无限循环:while :或true;do;命令;done
  1. until循环:假才执行。until ();do;命令;done
  1. select循环:select var in list;do;命令;done
  1. break语句:退出(n层)循环:break [n]
  1. continue语句:不能select。跳过剩余循环,开始下次循环:continue [n]

函数

  1. 函数定义:[function] name();{;命令;}
  1. 调用函数:name 参1 参2。 脚本开头要定义所有变量:TEST=”/tmp/filename”;delete_file(){;echo “Deleting $TEST”;}。 函数中调用:. 路径.sh 或source filename 参数。 递归函数调用:a=${name $a}
  1. 本地变量:默认全局,创建本地:local 变量
  1. return返回:最大255,返回测试值:if [checkpid $pid1 $pid2];then;echo “running”;else;echo “not” fi
  1. 函数放到后台运行:name &
上一篇
Go语言题目练习
下一篇
Python基础
Loading...