“Linux命令行与Shell脚本编程大全”学习记录上

1. 文件目录处理


 

文件

  • ls -sail                                显示文件块大小,列出所有文件,文件的索引节点,产生长列表
  • ls a?                                   显示所有a+“一个字符”文件
  • ls a*                                         显示所有a+“多个或零个字符”文
  • touch test                                创建名为test的空文件/改变已有文件的更新时间不改变内容
  • touch -a test                            改变test文件访问时间
  • touch -m test                           改变test文件修改时间
  • touch -t 201112251200 test     修改test文件时间为指定时间   
  • cp test1 test2                      将test1复制到test2  
  • cp -p test1 test2                    复制并保留源文件的访问时间和修改时间
  • cp -R test1 test2                      递归复制整个文件test1的内容到test2
  • cp -f test* test2                        将所有以test开头的文件复制到test2,-f为强制覆盖dir中的内容而不会提示用户
  • cp -l test1 test2                        创建指向test1的硬链接test2
  • cp -s test1 test2                       创建指向test1的软链接test2(相当于文件的快捷方式)
  • mv test1 test2                          将test1中的文件和目录移动到test2
  • rm -f test                                  不提醒强制删除test
  • stat test                                   查看文件所有状态信息
  • file test                                    查看文件类型(文件不能为空)
  • cat test                                    查看整个文件
  • cat -n test                                查看整个文件,并给每个文件加行号
  • cat -b test                                查看整个文件,给有文本的文件加行号
  • cat -s test                                查看整个文件,多个空白行压缩至单个空白行
  • cat -T test                                查看整个文件,并禁用制表符,用^I代替制表符
  • more test                                 查看整个文件
  • less test                                   查看整个文件
  • tail -f test                                  监控日志使用,看文件
  • head test                                  查看文件开头内容

目录

  • mkdir dir                                  创建目录dir
  • mkdir -p dir                              递增创建目录,即使上一层目录不存在
  • rmdir dir                                   删除目录dir,dir只能是空文件夹
  • rm -r dir                                   递归删除目录中的文件,最后删除目录自身(会逐一判断是否删除,很难受)
  • rm -rf dir                                  递归删除目录中的文件,最后删除目录自身, 直接删除,无需判断
  • stat dir                                     查看目录所有状态信息   
  • pwd                                         显示工作路径   

 

   

2. 监测程序,处理数据


进程

  • ps                                            显示当前用户,当前控制台的进程
  • ps -ef                                       显示所有运行在程序上的进程,并扩展输出
  • ps -H                                       显示树状进程
  • top                                           动态显示进程
  • kill 9 app                                  无条件终止app进程
  • killall http*                                终止以http开头的进程

磁盘

  • mount                                       输出当前系统挂载的设备列表
  • mount -t vfat sda sdb               手动将sda挂载到sdb上
  • umount /home/app                   卸载home下的app,不能卸载正在使用或有进程的App
  • df                                              查看已挂载磁盘使用情况
  • df -h                                          查看已挂载磁盘使用情况,并详细显示内存使用情况
  • du                                             显示当前目录下,所有文件,目录的磁盘使用情况
  • du -c                                         显示所有已列出文件,总的大小,磁盘使用情况
  • du -h                                         显示所有已列出文件,总的大小,并用可读格式代替字节
  • du -s                                         显示每个输出参数的总计
  • du -sh *                                     显示当前文件夹文件大小

处理数据

  • sort file                                      按默认顺序为文本文件内容排序
  • sort -n file                                  按默认顺序为文本文件内容排序,数字按照数字顺序排序
  • sort -M file                                 按照三字符的月份命名排序
  • sort -r file                                   反序排序
  • sort -t':' -k 3 -n /etc/passwd       以":"为分隔符,以第3位为排序字段,以数字形式排序/etc/passwd文件
  • grep aa file                                在file中查找包含aa的文本,定位到行
  • grep -v aa file                            在file中查找不包含aa的文本,定位到行
  • grep -n aa file                            在file中查找包含aa的文本,并添加行号
  • grep -c aa file                            输出file中查找包含aa的文本的行数
  • grep -e a -e b file                       在file中查找文本中包含a或b的行,并集
  • grep [ab] file                              在file中查找文本中包含a或b的行,并集(正则表达式法)
  • bzip2【gzip】 dir                       用bzip2【gzip】工具,压缩文件dir
  • bzcat【gzcat】 dir.bz2              用bzip2【gzip】工具,显示压缩后的文本文件内容
  • bunzip2【gunzip】 dir.bz2        用bzip2【gzip】工具,解压文件dir.bz2
  • bzip2recover dir.bz2                  用来尝试恢复损坏的压缩文件
  • zip dir                                         创建一个压缩文件,包含指定的文件和目录
  • zipcloak dir                                创建一个加密的压缩文件,包含指定的文件和目录
  • zipnote dir.zip                            从zip中提取批注
  • zipsplit dir.zip                             将现有zip文件分割成多个固定大小文件
  • unzip dir.zip                               从压缩过的zip文件中提取文件和目录
  • tar -cvf file.tar dir1/ dir2/            创建一个包含dir1和dir2目录内容的叫file.tar的归档文件
  • tar -tf file.tar                               列出tar文件的内容,但不解压
  • tar -xvf file.tar                            从file.tar中提取文件内容(解压文件)
  • tar -xvf file.tar -C /path              解压文件到/path目录下

 

 

3. 环境变量 


 

  • printenv                                     查看全局变量
  • echo $HOME                            查看$HOME全局变量
  • set                                             查看某个进程设置的所有环境变量
  • test=testting                              给test环境变量赋值为testing
  • echo $test                                 显示test环境变量的值
  • test=‘testing is a word’              给test赋值带有空格的环境变量
  • export test                                 将已经设置为局部变量的test导出到全局变量
  • unset test                                  删除环境变量test
  • PATH=$PATH:/home/test          把目录加到PATH环境变量中
  • test=(one two three four)           给test环境变量赋值一个数组
  • echo ${test[2]}                           结果返回three
  • echo ${test[*]}                            显示整个数组
  • test[2]=seven                             改变某一索引的值
  • unset test[2]                               删除某一索引的值
  • unset test                                   删除整个数组
  • alias -p                                       查看命令别名设置
  • alias ll='ls -l'                                自建别名

 

 

4. 文件权限


  • usermod -e                                修改/etc/passwd文件,用户过期时间
  • usermod -l                                 修改/etc/passwd文件,用户账户的登录名
  • usermod -p                                修改/etc/passwd文件,用户账户的登录密码
  • usermod -L                                锁定账户,用户无法登录
  • usermod -U                                解除锁定用户可以正常登陆
  • passwd user1                            修改user1的密码
  • /usr/sbin/groupadd shared         在系统上创建新组
  • tail /etc/group                             查看组
  • /usr/sbin/usermod -G shared test    为shared组添加用户test
  • /usr/sbin/groupmod -n sharing shared   改组名shared为sharing,不影响文件内容
  • umask                                        显示文件默认权限
  • umask 026                                 设置文件的权限为640
  • chmod 760 file                           设置文件file权限为-rwxrw----
  • chmod a+x file                           为文件file添加x(可执行)权限
  • chmod u+x file                           为文件file的属主添加x(可执行)权限
  • chmod g+r file                            为文件file的属组添加r(可读)权限
  • chmod o-w file                           为文件file的其他用户去掉w(可写)权限
  • chown dan file                            文件file的属主改为dan
  • chown dan.shared file                同时改变文件file的属主为dan,属组为shared
  • chown .shared file                      改变文件file默认属组为shared
  • chgrp shared file                        改变文件file的默认属组

 

 

5. 安装软件程序


 

Debian版本

  • sudo                                           以root用户执行命令
  • aptitude show jdk                       Debian系统中,使用aptitude工具显示软件库jdk软件包信息
  • dpkg -L jdk                                 Debian系统中,使用dpkg工具显示已安装jdk软件包信息
  • dpkg --search /root/jdk.zip         查找jdk.zip属于哪个软件包(必须是决对路径)     
  • sudo aptitude install wine          以root身份运行,使用aptitude命令安装wine软件包   
  • aptitude search wine                 查找软件包wine,已安装显示为i,未安装显示为p
  • aptitude safe-upgrade               更新所有系统上的软件包,更新为软件库最新版
  • sudo aptitude purge wine          以root身份运行,删除软件包wine和相关数据和配置文件  
  • sudo aptitude remove wine       以root身份运行,删除软件包wine,保留相关数据和配置文件  

Red Hat系统

  • rpm -q xterm                               查看包xterm是否安装
  • yum list installed                        列出系统所有已安装的包
  • yum list xterm                            查看xterm包是否安装
  • yum provides file                        查找什么包提供了系统上的file文件
  • yun install xterm                         使用yum工具安装xterm包
  • yum localinstall xterm.rpm         本地安装xterm.rpm包
  • yum list updates                          列出系统中所有需要更新的安装包
  • yum update xterm                       使用yum工具更新xterm包
  • yum update                                 更新所有安装包
  • yum remove xterm                      卸载xterm包,保留配置文件和数据文件
  • yum erase xterm                         卸载xterm包和配置文件和数据文件
  • yum update --skip-broken           跳过损坏包,更新下面的的包
  • yum repolist                                 查看是在什么库中获取的包
  • urpm -i xterm                               查看xterm包信息
  • urpm xterm                                  使用urpm工具安装xterm包
  • urpme xterm                                卸载xterm包和配置文件和数据文件
  • zypper search -s xterm               查看xterm包信息
  • zypper install xterm                     使用zypper工具安装xterm包
  • zypper update                             更新所有安装包
  • zypper remove xterm                  卸载xterm包和配置文件和数据文件

 

 

6. 编辑器


 

Vim编译器

  • vi file.txt                                       查看文件内容,进入普通模式
  • i                                                   文本进入编译模式
  • ESC键                                         退出编译模式,进入普通模式
  • Ctrl+f                                           普通模式下,下翻一屏数据
  • Ctrl+k                                          普通模式下,上翻一屏数据
  • G                                                 普通模式下,移到缓冲区最后一行
  • num G                                         普通模式下,移到缓冲区第num行
  • gg                                                普通模式下,移动到缓冲区第一行
  • :                                                 进入命令行模式
  • :set number                                  加行号
  • :q                                                   命令行模式下,如果未修改缓冲区数据,退出
  • :q!                                                  命令行模式下,取消所有对缓冲区的修改并退出
  • :w test.txt                                       命令行模式下,将文件保存到test.txt文件下
  • :wq                                                 命令行模式下,保存缓冲区文件并退出
  • dd                                                  普通模式下,删除光标所在行
  • x                                                    普通模式下,删除光标所在位置的字符(删除键默认为此命令)
  • yw                                                 普通模式下,复制光标所在位置的单词
  • y$                                                  普通模式下,复制光标所在位置,到行尾之间的文本
  • v                                                    进入可视模式,并且移动光标高亮显示,并覆盖想要复制的内容 
  • y                                                    可视模式下,激活复制命令,并进入普通模式
  • p                                                    普通模式下,在光标所在位置插入上一次删除或复制的内容 
  • /                                                     普通模式下,可输入字符,按回车进行查找
  • n                                                    光标移动到要查找下一个字符
  • :s/old/new                                      用new单词来快速替换old单词,只替换第一次出现old的单词
  • :s/old/new/g                                   用new单词来快速替换old单词,替换所有
  • :n.ms/old/new/g                             替换行号n和m之间所有的old
  • :%s/old/new/g                                用new单词来快速替换old单词,替换整个文件old

 

 7.文本处理


  • awk '{print $1,$4}' log.txt                以空格为分隔符输出文本中第1,4项

  • awk -F, '{print $1,$2}' log.txt           以,为分隔符输出文本中第1,2项
  • awk 'NR==1 {print $1}'                   打印第一行的第一个字段

  • sed -n '3p' passwd                         输出passwd文件中的第三行

  • sed -n '3,5p' passwd                   输出passwd文件中的第3-5行

  • sed -n '3,5d' passwd                   删除passwd文件中的第3-5行 

  • sed 's#3#88#g' test.txt                  把test文件中所有3替换为88(#为分隔符,默认为/,也可以是其他字符除了\)       

  • sed -i '0,/a/s/a/e/g' test.txt             在test.txt文件中,把a替换成e,替换一次
  • sed -e '/abc/d' test.txt                    删除文件中包含abc的行

 

 

初学者,臭原创,臭手敲,不定时更新,随学随记,欢迎来参与讨论

若有错误,请评论指出,谢谢!

转发请标明出处 https://www.cnblogs.com/yeshengx/p/13879684.html 谢谢!

posted @ 2020-10-26 17:31  夜声息  阅读(135)  评论(1)    收藏  举报