1. 查看系统支持的shell: cat  /etc/shells
  2. 查看当前系统用的shell: echo $SHELL
  3. 从bash切换到zsh: 先yum安装,然后 chsh -s /bin/zsh ,退出重新登录即可(chsh -s 实际上是修改了/etc/passwd文件)
  4. env和export显示的环境变量
  5. set和declare显示的环境变量和自定义变量
  6. 指定PATH变量: export PATH=$PATH:/home/roc
  7. 有export则指定的是环境变量,没有export 的是指定自定义变量
  8. 在子进程中自定义变量无效的
  9. 从键盘输入自带提示语:
    1. read -p "please input your name and place:"
      echo "welcome $REPLY"  $REPLY变量输出结果

    2. #!/bin/bash
      if read -t 5 -p "please input your name and place:" name
      then
      echo "welcome $name"
      else
      echo "sorry,too slow"
      fi
      exit 0  #用-t设置超时时间,在read语句后面添加变量来接受输入

    3.  if read -s -p "please input your name and place:" name    # -s用来输入密码

    4. exec 3< c.txt
      count=0
      while read -u 3 var
      do
      let count=$count+1
      echo "Line $count:$var"
      done
      echo "finished"
      echo "Line no is $count" #从文件读入

    5. #!/bin/bash
      count=0
      cat c.txt | while read line
      do
      echo "Line $count:$line"
      let count=$count+1
      done
      echo "finiished"
      echo "Line no is $count"
      exit 0  #这种方法的结果是返回1 ,因为管道的两边一般需要新建进程,当执行完while后,新进程结束,当脚本执行结束后,输出的count是原来进程中的count,而不是while中的count了

    6. #!/bin/bash
      count=0
      while read line
      do
      let count=count+1
      echo "Line $count:$line"
      done< c.txt
      echo "finished"
      echo "Line no is $count"    #使用重定向技术可以避免像上一个脚本在循环中又新建变量的问题


  • scp -r root@43.224.34.73:/home/lk /root  # 将远端的文件夹下载到本地的/root
  • scp local_file remote_username@remote_ip:remote_file # 从本地复制到远程
  • nohup ./a.out &
    1. ./a.out &:用ctrl+c的话照样运行,但是断开远程终端就停止,nohup ./a.out:按ctrl+c会停止,但是关了终端仍然运行
    2. nohup ./a.out &  :ctrl+c和关闭终端都可以运行,类似于守护进程

  1.  alias vi='vim'  #如果起的别名和原来的命令重复则shelll默认使用别名,如果想使用原来的命令则通过/bin/vi这样的形式使用
  2.  #!/bin/bash --login 用这行代替/bin/bash可以使用系统中的别名,加上--login的作用是使shell称为一个login shell,可以读取用户的profile和rc文件
  3.  !15 #打开history命令后执行需要的命令
  4. 防止密码被保存到history的方法: 
    1.  export HISTCONTROL=ignorespace
    2.  输入重要命令功能的时候在前面加一个空格
    3. 在输入命令前输入export=HISTINGNORE=*
    4. 在输入命令结束后再次输入exprot=HISTINGNORE=
  5.   xargs #将echo作为自己的标准输入,eg: echo a.txt | cat #则会读取a.txt的内容
  6. file -i a.txt #a.txt: text/plain; charset=us-ascii
  • 列出了MIME类型:用来标记文件打开方式
  • 超文本标记语言文本 .html,.html text/html 
      普通文本 .txt text/plain 
      GIF图形 .gif image/gif 
      JPEG图形 .jpeg,.jpg image/jpeg 
      .pdf     application/pdf
      GZIP文件 .gz application/x-gzip 
      TAR文件 .tar application/x-tar

  • file -f a.txt  #用于输出文件列表的文件类型
  • find test a b c d -name a.txt  #在几个文件夹之间查找
  • find . -type f -mmin -5 # 5分钟以内有哪些文件被修改过
  • find . -type f -mmin +5  # 5分钟之前有哪些文件修改过
  • find . -type f -size +1M  -exec ls -al {} \;   #查找大于1M的文件
    • +1M #大于1M
    • -1M  # 小于1M
    • 1M #等于1M
    •   还有k,G
  •  find / -maxdepth 1 #搜索深度为1
  • find . -type f -a -name "aa" # 查找文件,文件名为aa

  


  1. du -sh #列出当前文件夹的占用量
  2. du -ah # 列出每个文件和文件夹的使用量
  3. du -ah | sort -hr #列出大文件
  4. du显示的是一个blok的大小,ls显示的是实际大小

echo的用法:

  单引号无视所有特殊字符,所有字符都是普通的字符

   双引号识别 $  \  和`

grep用法

  grep -n root /etc/passwd # 将含有root的行找出来并加上行号

grep查找前和后相邻行:

  After1行 :grep -A 1 root /etc/passwd

  Before1行: grep -B 1 root /etc/passwd

  前后1 行: grep -C 1 root /etc/passwd

不区分大小写: grep -i "aa" /etc/passwd

找词: grep  -w "bin"  /etc/passwd

egrep '^root | bash$' /etc/passwd


sed命令用法:

head -n /etc/passwd | sed 's/:.*$//' #替换冒号后面的值

cat /etc/passwd | sed -n '10,20p' # 打印10到20行的内容

cat /etc/passwd | sed '/^[r]/s/o/AA/g'  # 把r开头的行中的o替换为AA

# /AA/s/BB/CC/g  匹配文件中带有AA的行,并且将所有BB替换成CC

 cat mytext.txt | sed 's/Bei/&2008/'  # &为在后面拼接 eg: Beijing ----Bei2008jing

cat mytext.txt | sed 'y/ei/ie/' #将Beijing替换成Biejing

sed '/200[4-6]/w new.txt' mytext.txt #把筛选结果写入新的文件中


awk用法:

  awk 'NR%2==0 {next} {print NR,$0}' input.txt # 打印奇数行

  awk '{print $0 }' input.txt test.txt  #两个文件一起输出

  awk 'NR=FNR&&FNR==1 {print FILENAME,$0} NR>FNR&&FNR==8 {print FILENAME,$0}' my,txt test.txt #将第一个文件的第一行数据和第二个文件的第八行数据还有文件名输出

 


cut的用法:

  who | cut -b 3 # 获取每行的第三个字节

  who | cut -b 8,3-5 # 获取每行第八,三到五个字节,顺序按照文本的顺序,所以和3-5,8等价

  cat /etc/passwd | head -n 5 | cut -d : -f 1 # -d:指定分隔符 -d:指定第一个域

  cat /etc/passwd | head -n 5 | cut -d : -f 1-2 # -d:指定分隔符 -d:指定第一到第二个域

  cat /etc/passwd | head -n 5 | cut -d : -f 1-2 # -d:指定分隔符 -d:开头到第二个域

cat test.txt | cut -d ' ' -f 1 # 以空格为分隔符

split -b 400M a.txt # 拆分成400Mb的文件

    cat xaa xab > a.txt # 合并文件

md5sum b.txt # 检查合并后的文件是否完整

split -b 400M a.tx b_   #指定前缀的拆分

split -b 400M  -d a.tx b_   #-d 指定数字的拆分

split -d -10 c.txt bb_ # -10:指定每10行拆分

md5sum b.txt # 检查合并后的文件是否完整

 sort用法:

  -u:消除重复

  -r:倒序

  sort -r number.txt -o number.txt # 保存到原文件

  -n: 按照数值来排序而不是ascii码


vim用法:

%s/abc/xyz/g  # 全文替换字符串abc为xyz

%s/\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)/'\1'/g   # 把2001-01-01 变成 '2001-01-01'


des解密:

openssl enc -des3 -d  -in passwd.des3 -out passwd.txt  

des加密:

openssl enc -des3 -k 123 -in mysed.txt -out passwd.des3  #123为密码

   

  

  

  

  

Linux大棚命令记录的更多相关文章

  1. 《Linux大棚命令百篇下》网络篇的总结

    本文是<Linux大棚命令百篇下>网络篇的总结 ping -c 指定数量,在windows下会自动停止,linux下会一直ping下去 -q 简短报告 -s 指定每次ping的数据包大小, ...

  2. Linux常用命令记录

    产用Linux命令 cat /proc/partitions //查看系统分区情况 fdisk -l /dev/sdb //查看磁盘物理存储 mount /dev/目录 /mnt/目录 //挂载文件 ...

  3. 【原创】Linux常用命令记录

    1. 查看网络状态分布 #!/bin/sh netstat -apn >/dev/ \ | awk 'BEGIN {printf("%-15s%-15s%-15s%-15s\n&quo ...

  4. linux 常用命令记录&& xsheel 使用记录

    cp -r x1 x2                     复制文件x1到x2 ls                                   当前目录下的文件列表 ll         ...

  5. linux 相关命令记录

    NetworkManager关闭及禁用 关闭:systemctl stop NetworkManager 禁用:systemctl disable NetworkManager 查看日志:journa ...

  6. Linux 常用命令记录(学习笔记)

    不同机器间文件传输(转自:http://www.zhimengzhe.com/mac/323324.html) scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件 ...

  7. Linux使用命令记录

    1.对一个文件夹中所有的文件进行修改权限: • chmod –R 777 aa (- R 递归式改变指定目录及其所目录文件拥者) • 目录/his及其所文件目录,chown - R www.www / ...

  8. 【开发记录】Linux常用命令记录(一)【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  9. 【开发记录】Linux常用命令记录(一)

    记录CentOS下,常用的命令.有时候很难记得清楚,同时方便新来的同学查阅.(将不停的追加和完善) 1)查看CPU情况 cat /proc/cpuinfo |grep "model name ...

随机推荐

  1. 【PAT】B1061 判断题(15 分)

    简单逻辑题, #include<stdio.h> #include<algorithm> using namespace std; int main(){ int N,M;// ...

  2. 【PAT】B1085 PAT单位排行(25 分)(c++实现)

    终于做的有点眉目了,今天学习了一点stl的皮毛,解题瞬间变容易了 下边开始分析本题 这道题如果用纯c解决实在太麻烦,试了半天两个超时,果断放弃,还是用map方便: 我的方法与柳神的方法是有区别的,我只 ...

  3. January 17th, 2018 Week 03rd Wednesday

    Don't let go too soon, but don't hold on too long. 不要太快放手,也别紧握太久. It is inevitalbe to encounter with ...

  4. January 15th, 2018 Week 03rd Monday

    We got things to do. Places to go. People to see. Futures to make. 我们有很多事情要做,有很多地方要去,有很多人要见,有很多美好的未来 ...

  5. Lua 与 C 交互之UserData(4)

    lua作为脚本于要能够使用宿主语言的类型,不管是宿主基本的或者扩展的类型结构,所以Lua提供的UserData来满足扩展的需求.在Lua中使用宿主语言的类型至少要考虑到几个方面: 数据内存 生命周期 ...

  6. lamp/lnmp下添加PHP扩展

    在linux下安装好基本的PHP运行环境后有时候添加了新的功能,就得增加新的扩展,比如之前没有安装redis扩展,可以手动编译安装相关的扩展可以找下下载的php源码包中,ext目录下是否有相关的扩展源 ...

  7. Python yield的用法

    yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法. 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: def addlist( ...

  8. [题目] Luogu P5038 [SCOI2012]奇怪的游戏

    学习资料 -----1----- -----2----- P5038 [SCOI2012]奇怪的游戏 一道甚神但没用到高深模型的题 思路 没思路,看题解吧 代码 #include <iostre ...

  9. 【opatch打补丁】oracle10.2.0.5.0升级10.2.0.5.9 for linux

    https://wenku.baidu.com/view/c38702b56edb6f1afe001f59.html    这篇文章也不错,可参考 任务:oracle 10.2.0.5.0 打补丁升级 ...

  10. <数据结构与算法分析>读书笔记--要分析的问题

    通常,要分析的最重要的资源就是运行时间.有几个因素影响着程序的运行时间.有些因素(如使用编译器和计算机)显然超出了任何理论模型的范畴,因此,虽然它们是重要的,但是我们在这里还是不能考虑它们.剩下的主要 ...