Linux命令(持续更新ing)

*.命令语法:
  a.在进行参数设定时,通常为“-”号,若为完整参数名称,则输入“--”符号;
  b.指令太长的时候,可以使用“\”符号使指令连续到下一行;
  c.各种符号的意义:
    ''        单引号,最普通的引号,将内容作为普通字符串处理
    ""        双引号,可以识别内容中$标识的变量。(PATH="$PATH":/home/new)
    ``        反引号,将内容作为命令执行,并返回最终结果,该功能亦可用$()替代
    &         将指令变为后台运行
    $         取变量的值
    ~         家目录
    |         管道,仅能处理正确的信息
    &&        前面指令正确的情况下执行后面指令(类似于C++编译器中对&&的优化处理)
    ||        前面命令错误的情况下执行后面指令
  d.减号的用途:代替stdin或stdout,使得管线|的使用更加灵活(如:tar -cvf - /home | tar -xvf -,将/home打包但不保存为文件仅传送至stdout,经过管线后由 stdin接受并解包到当前文件夹)
  e.通配符:*表示任意字符串(可以为空),?表示任意单个字符,[^a-h]表示任意不是a~h之间的字符,[abc]表示a或b或c;
*.快捷键:
  0."Tab"                           命令补全(两次Tab显示所有可选命令,在目录下直接按Tab相当于执行ls指令...)
  a."Ctrl+C"                        终端中中断当前程序
  b."Ctrl+L"                        终端中清屏并复位
  c."q"                             退出某些程序(如退出man的帮助信息)
  d."Ctrl+Alt+T"                    打开终端
  e."Ctrl+Alt+左右"                 切换工作区
  f."Ctrl+Alt+F1~F7"                切换终端(其中F7为图形界面的终端)
  g."Ctrl+D"                        EOF或exit,键盘输入结束
  h."Ctrl+U"                        清除当前行输入的指令
  i."Ctrl+S"                        暂停屏幕输出
  j."Ctrl+Q"                        恢复屏幕输出
  k."Ctrl+Z"                        暂停当前命令
*.环境变量:
  HOME                              用户家目录,~也标识家目录
  SHELL                             当前使用的shell
  ENV                               用户的个人环境设定文件
  PATH                              命令执行时搜寻的路径
  LANG                              语种
  RANDOM                            随机数(/dev/random)
*.系统变量:(非环境变量,可通过echo或set | grep查看)
  PS1,prompt                       系统命令提示符格式变量,定义每行命令的提示符的格式,如“linux:~ # ”。PS1是bash的变量,promopt是csh的变量
  $                                 当前shell的PID (进程ID,与ps -ef中的相同)
  ?                                 上一个命令的返回值,正确执行的命令返回0,错误指令返回错误码
  OSTYPE                            操作系统的等级
  HOSTTYPE                          主机的等级
  MACHTYPE                          硬件的等级
1.系统操作类:
  启动图形界面                      startx
  操作说明                          man (空格翻页,/word搜索词)
  关机                             shutdown (一般可用 sudo shutdown -h now)
                                  halt/poweroff (暴力关机)
  重启                             reboot (相当与 shutdown -r now,常用sync;sync;sync;reboot)
  注销                             exit (退出当前用户,不关机)
  挂载硬盘到目录                     mount [分区名称<hda*等>] [挂载目录] (-l显示当前挂载状态,-o添加挂载选项,如中文编码iocharset=cp950,若想开机自动挂载,应写入/etc/fstab中)
  卸载硬盘                          umount [分区文件/挂载目录]
  查看硬盘的总容量、已用容量           df* (-ikmh区分单位,-a显示全部,-T显示文件系统)
  硬盘分区                          fdisk [硬盘名称<hda,sda等>] (-l显示分区表,只修改分区表而未格式化)
  硬盘格式化                        mke2fs (格式化为ext2文件系统)
  读取硬盘信息                      dumpe2fs [设备] (获得硬盘文件系统的信息)
  更改分区卷标                      e2label [设备名称] [卷标Label]
  检查硬盘坏轨                      fsck [分区名称<hda1,sda3等>]
  将内存数据同步写入硬盘              sync
  硬盘效能检测与启用                 hdparm    [硬盘名称] (-d是否开始DMA模式,-Tt测试cache与实际效能)
  静态显示进程                      ps* (ps显示当前shell,ps -l显示当前用户进程,ps aux显示所有进程,ps -ef|grep 关键字 检查是否存在匹配关键字的进程)
  动态显示执行中进程                 top (-b 显示所有进程,可重定向)
  杀死进程                          kill* [进程ID]
  显示日历                          cal [月份] [年份]
  显示设置系统时间                   date [时间] (时间格式为[MMDDhhmm [[CC]YY][.ss]],如date 112711562007)
  显示设置硬件时间                   hwclock (-w 更新hwclock为当前date)
  显示系统运行时间                   uptime
  显示内存使用                      free
  显示系统信息                      uname (-a显示所有系统信息)
  显示设置主机名                    hostname
  显示目前登陆的用户                 who* (用命令w会获得更多信息,命令whoami可以查看当前使用的用户)
  显示目前及过去登陆的用户            last [-f 文件名] (无参数时列出/var/log/wtmp中存储的所有登录信息,有参数时列出文件中最后一条登录信息)
  显示设置网络设备                  ifconfig (可查看各网卡的IP等信息,并设置IP等信息,默认显示激活网卡,-a显示全部)
  显示网络状态                      netstat* (-rn 查看路由信息,-an 查看所有网络状况)
  检测网络连接                      ping* [IP]
  列出被进程打开的文件的信息          lsof* [文件名] (查看谁在使用某文件)
                                        [-u 用户名] (查看某用户在使用的所有文件)
                                        [-u ^用户名] (查看除该用户外其他用户在使用的文件)
                                        [-p 进程号] (查看某进程使用的文件)
                                        [-i :端口号] (查看谁在使用某个端口)
  查看文件编码信息                  file [文件名] (查看是否ASCII、UTF-8等)
  备份文件系统                      dump [-f 备份设备] [目录或文件系统] (将目录或文件系统备份至指定设备,fstab中的dump选项值也会影响是否进行备份操作)
  bash声明删除环境变量              export [环境变量名] [环境变量值] (记录在.profile文件中,直接export与env的效果相同)
  csh声明环境变量                   setenv [环境变量名] [环境变量值] (环境变量值无需加引号,但其中的变量需用双引号,如:setenv PATH "$PATH":/bin)
  改变用户shell                     chsh (-l显示所有shell)
  显示账户信息                      finger [账户名]
  查看指令类型                      type [指令名] (-tpa ,找指令的功能比which强大一些)
  查看当前shell的环境变量           env
  查看当前生效的所有变量             set (set -x执行指令前先显示指令,)
  由用户输入赋值变量                read [变量名] (-p后结提示字符,-t限制输入时间,常用于脚本编写)
  宣告变量类型                     declare [变量名] (-a数组-i整数-x环境变量-r只读)
                                 typeset [变量名]
  命令别名                        alias [别名](=)['命令'] (将代码写入对应shell的rc文件中即可,.bashrc为等号,.cshrc为空格,取消别名unalias)
  清屏                            clear
  设置tty终端属性                  stty
2.用户权限类:
  设置用户密码                     passwd* [用户名] (可用来开启root账户)
  切换用户并跳转至家目录             su - * [用户名] (用户为root时可不填用户名,使用-表示切换用户时同时切换至该用户的shell否则使用原用户的shell)
  以高级用户身份运行                sudo (近似于以root身份运行)
  更改文件群组                     chgrp* [组名] [文件名]
  更改文件拥有者(和群组)            chown* [所有者名]:[组名] [文件名] (-R修改目录下所有文件)
  更改文件权限                     chmod* [权限] [文件名] (权限可用<augo><+-=><rwx>或数字两种方式表示)
  用户创建文件默认权限              umask (修改默认权限,参数为需要"拿掉"的权限,其中rwx分别为421,拿掉r+x则为4+1=5,参数共有4位表示4组权限:特殊/用户/组/其他)
  更改文件特殊属性                  chattr [属性] [文件名](如+i会禁止文件的删除更名链接写入)
  显示文件特殊属性                  lsattr [文件名] (查看文件特殊属性,包括ASacdijsu)
  创建群组                         groupadd [组名]
  创建用户                         useradd [用户名] (-d 用户路径 -s Shell -g 群组)
                                 adduser (不同Linux发布版本中效果不同,有的同useradd,有的是一个添加用户的Script)
  删除用户                         userdel [用户名] (-rf 强制删除用户及目录)
  更改用户                         usermod (-d 用户目录)
  查看用户组ID                     id [用户名] (-a显示全部组ID)
3.文件存储管理类:
  打开文件夹                       cd* [目录路径] (cd - 回到上次进入的目录,cd或cd ~进入用户目录,cd ~username进入某用户家目录,目录名中有空格。以“\ ”转义)
  显示当前绝对路径                  pwd* (如果当前在软连接指向的路径中,默认显示软链接路径,-P显示确实的路径)
  建立文件夹                       mkdir* [目录路径] (-p自动建立中间目录,如mkdir -p dir1/dir2/dir3)
  删除空文件夹                     rmdir* [目录路径] (-p自动删除中间目录,如rmdir -p dir1/dir2/dir3)
  拷贝文件                         cp* [源文件 源文件] [目标路径] (-r递归复制文件夹,-u复制改变的文件<当源文件比目标文件新时才复制>,-p连同文件属性一同复制,否则会采用当前用户和组以及默认权限,-d若源文件为软连接则复制后仍为软连接,-a相当于-pdr ,-l复制为硬链接,-s复制为软连接)
  删除文件                         rm* [文件路径] (删除非空文件夹需加-rf)
  列出当前路径的文件及其属性          ls [目录路径] (-a表示显示所有文件,-l显示详细信息,-t按时间排序,-S按容量排序)
  列出当前路径所有文件及其属性        ll* [目录路径] (相当于 ls -l,这是用户配置的快捷命令)
  查看文件夹已用容量                 du [文件夹] (-s仅显示总计,-b以字节为单位,-m以M为单位(m为1024制M为1000制))
  移动文件                         mv* [源位置] [目标位置] (重命名也使用这个命令~想想~~)
  顺序查看文件                     cat [文件路径] (-n显示行号,直接显示完,文件长则来不及看)
  倒序查看文件                     tac [文件路径] (-n显示行号,直接显示完,文件长则来不及看)
  按页查看文件                     more [文件路径] (空格翻页,/查找,:f显示文件名)
  按页查看文件                     less* [文件路径] (可前后翻页。/向下搜寻,?向上搜寻,n搜寻下一个,q退出。)
  按二进制格式显示文件              od [文件路径] (一般用于非文本文件,如二进制文件,-t设置输出类型:a 预设字符 c ASCII d 十进制 f 浮点数 o 八进制 x 十六进制)
  输出文件尾部                     tail [文件路径] (-f 持续更新显示尾部10行;-n 行数n 使用显示尾部n行)
  输出文件并添加行号                nl [问你件路径] (可控制行号的输出方式)
  建立链接                        ln [目标文件] [源文件]  (-s提供软链接<符号链接>,否则为硬链接)
  设定文件访问修改时间为当前         touch* [文件路径] (不存在则创建新文件,故可用来建立文件,touch -d 'YYMMDD HH:mm'指定目标时间,touch -d 'HH:mm'亦可)
  查找可执行文件                   which* [文件名] (通过PATH环境变量查找可执行文件)
  查找文件(配合数据库)              whereis [文件名] (-b查找二进制文件<可执行文件>,-s源文件,很快)
  查找文件(配合数据库)              locate* [文件名] (和whereis一样使用数据库,很快,但太新的文件找不到)
  查找文件(搜寻硬盘)                find* [查找范围路径] [-name 文件名,-size <+->1000<kc>]
  更新数据库                       updatedb* (更新之后就可以放心whereis和locate了~)
  查看文件类型                     file* [文件路径]
  解压tar类压缩文件                tar* [压缩文件] (-xvf解包*.tar,-zxvf解包解压缩*.tar.gz,-j采用bzip2解压缩)
  压缩tar类文件(夹)                tar* [压缩文件] [源文件(夹)] (-cvf打包*.tar,-zcvf打包压缩*.tar.gz,-j采用bzip2压缩,-P采用绝对路径压缩不拿掉首位的'/')
  查看压缩文件内容                 tar* [压缩文件] (-tvf查看*.tar内容,-ztvf查看*.tar.gz内容)
  FTP功能                        ftp [主机名/IP](get,put,by,user)
  查看文件的inode信息              stat [文件名]
  压缩为zip文件                   zip [压缩后文件名] [压缩前文件名]
  解压zip文件                     unzip [压缩文件] (-o直接覆盖文件,同样支持解压.Z文件)
  压缩为.Z文件                    compress [压缩前文件名] (直接压缩为“压缩前文件名.Z”,并删除源文件)
  解压.Z文件                      uncompress [压缩前文件名] (直接将“压缩前文件名.Z”解压为“压缩前文件名”,并删除源文件)
  批量文件重命名                   rename [源字段] [目标字段] [文件名带通配符] (如rename foo foo0 ./foo*)
  获取某路径中的文件名              bashname [路径] (basename /opt/oracle/product --> product)
  获取某路径中的目录名              dirname [路径] (dirname /opt/oracle/product --> /opt/oracle)
4.重定向类:
  管道                           输入 | 输出    (将前者作为后者输入进行处理)
  覆盖文件                        输入 > 文件    (将前者输出到指定文件,覆盖文件内容,:>用户清空文件)
  追加到文件末尾                   输入 >> 文件 (将前者输出到指定文件,追加到文件末尾)
  输出正确信息                     输入 1> 文件
  输出错误信息                     输入 2> 文件
  输入信息                        文件 < 输入
  以符号作为结束符                 输出 > 文件 < 符号
  虚拟垃圾桶                      /dev/null (重定向到此的数据会直接消失)
5.数据库类:
 a. linux命令(在linux命令行中执行)
  登录sqlplus                     sqlplus 用户名/密码@服务名as 角色(sysdba等)
  数据库监听                       lsnrctl (以oracle用户登录,status查看监听状态,start启动监听,stop关闭监听)
  创建删除数据库(图形界面)           dbc (需配置DISPLAY环境变量)
  创建删除实例(图形界面)             dbca (需配置DISPLAY环境变量)
  创建删除监听服务名(图形界面)        netca (需配置DISPLAY环境变量)
  查看数据库裸设备                  lvs -a
  导入导出用户数据                  expdp user/pwd@ORA11 dumpfile=user.dmp logfile=user.log
                                 impdp user/pwd@ORA11 dumpfile=user.dmp logfile=user.log
                                 impdp user_new/pwd@ORA11 schemas=user remap_schema=user:user_new dumpfile=user.dmp logfile=user.log
                                 exp user/pwd@ORA11 buffer=10000000 file=user.dmp log=user.log
                                 imp user_new/pwd@ORA11 fromuser=user touser=user_new buffer=10000000 file=user.dmp log=user.log
  批量插数据                       sqlldr userid=user/pwd@ORA1 control=result.ctl log=user.log rows=1000 errors=0 readsize=3096000 bindsize=3096000
 b. sqlplus命令(在sql命令行中执行)
  停止Oracle服务                   shutdown immediate
  启动Oracle服务                   startup (startup mount仅启动控制文件,不启动数据文件,可在此时更改配置后再用alter database open启动数据文件)
  登陆其他用户                      conn 用户名/密码
  查看数据库参数                    show parameter XXX (service服务,instance实例,processe连接数<session数>)
  查看归档日志信息                   archive log list
  AWR报告                          @$ORACLE_HOME/rdbms/admin/awrrpt
  更改AWR报告生成周期                exec dbms_workload_repository.modify_snapshot_settings (interval=>20, retention=>3*24*60);    (20表示20分钟)
6.程序类:
  显示gcc版本                       gcc -v
  打印内存镜像                      jmap -dump:live ,format=b ,file=[文件名] [PID]
  jconsole (图形界面)               jconsole -J-Xmx512M (需要配置DISPLAY变量)
7.HA双机类:
  显示HA双机状态                    hastatus
  启动HA双机                        hastart
  停止HA双机                        hastop -all -force
  操作HA双机资源                    hares (-online,-offline)
8.vi文本编辑器:
  一般模式:
  iaor进入编辑模式,/?查找替换,:进入命令模式,ESC回到一般模式
  hjkl对应左上下右移动光标,gg移动至首行,G移动至末行,nG移动至n行,^移动至行首,$移动至行尾,(移动至文件首,)移动至文件尾
  x向后删除,X向前删除,dd删除当前行,ndd删除当前n行,
  yy复制当前行,nyy复制当前n行,p在当前行下面粘贴
  u撤销,CTRL+r重做
  命令模式:
  :wq!,:w filename 文件另存为,:r filename 读入另一个文件,:e! 还原文档至最初状态,:! [命令]暂时离开vi查看命令执行结果,:set nu 显示行号,:set nonu 隐藏行号
  :m ,ns;oldstr;newstr; 替换m行至n行之间的oldstr为newstr
9.实用功能类:
  gedit文本编辑器                   gedit [文件路径](文件不存在会自动创建,不保存则会消失)
  下载并安装软件                    sudo apt-get install [软件名]
  计算器                            bc* (支持 + - * / ^ %, scale=n设定小数位数, quit退出)
  显示环境变量PATH                  echo* $PATH (PATH中记录了命令的默认搜寻路径)
  查看当前shell                     echo $0
  查找文件/文本中字符串               gerp [范本] [文件或目录] (从文件中查找含有范本的项,-r递归子目录,-i不区分大小写,-v反向选择,-n行号,-c计算搜寻到的次数) 
                                        输入 | grep (grep常结合重定向进行使用)
  计算字数                          wc [文件] (-c字节数,-l行数,-w字数)
                                        输入 | wc (wc常结合重定向进行使用)
  TCP抓包                           tcpdump port 1521 and host 10.137.161.26 ([-w 文件名]输出到文件,-i 指定网卡,-s 指定包文件大小,-c指定抓取报文数量)
                                   tcpdump -s 0 port 1521 and host 10.137.161.26 -Xvvv -w [文件名]
                                   tcpdump -s 0 -i lo port 1521 and host 10.137.161.26 (z转)
  DHCP相关命令                      rcdhcpd (status查看状态,start启动,stop停止)
  转换并拷贝文件                     dd             if=[文件输入] of=[文件输出] bs=[数据块大小] count=[数据块数量](可用于测试读写速度)
  设置用户定时任务                   crontab [-u 用户名] [-e 编辑 -l 列出 -r 删除] (定时任务的格式为“分/n 时-时 日 月 周”,系统定时任务在/etc/crontab)
  根据标准输入构造命令行              xargs [命令] (-e指定EOF,-0还原特殊字符为一般字符,-n指定一个命令使用几个参数,不指定命令则使用echo命令,-I指定标志字符用于确定命令参数的位置)
                                        输入 | xargs [命令] (xargs常结合重定向进行使用)
  ping程序检测网络连接               ping [IP] (-i 设置时间间隔,单位为s,-s设置数据包字节数)
  文本编程处理                      awk (对输入文本进行处理,支持简单编程)
  文本分析处理                      sed (对文本分析后进行处理,a新增,c取代,d删除,i插入,p打印,s正则取代,)
                                  sed s/正则表达式/欲替换的内容/g [文件]
  文本截取                          cut (-d 分隔字符,-f 第几个字段多个字段以逗号分隔)       
  换行符格式转换                    dos2unix
                                  unix2dos
  递归批量拷贝文件                   cp `find [源路径] -name "*.*"` [目标路径]
                                  find [源路径] -name "*.*" | xargs -I {} cp {} [目标路径]
                                  find [源路径] -name "*.*" | awk '{print $0}END{print "[目标路径]"}' | xargs cp
  执行历史命令                      !!执行上一条命令,!30执行30条之前的命令,!cd执行最近的cd开头的命令
  共享屏幕                         screen -S [session名] (命名当前session,建立共享屏幕)
                                  screen -x [session名] (连接某个session的共享屏幕)
  排序                             sort (-k 以哪个字段进行排序,-r反向排序,-n将字段作为数字处理,-u效果同uniq)
  剔除连续的重复信息                 uniq (-i忽略大小写,-c计数)
  分割大文档                        split [大文档] {分割文件前缀] (-b 字节数,-l 行数,合并文件则可以通过数据流重导向来实现:cat xx* >> filename)
  查询某进程建立的总数                lsof -p 20658 | grep ESTABLISHED | wc -l
  测试命令                          test (-e测试文件/文件夹是否存在)
  秒级延时                          sleep
  毫秒级延时                        usleep
  统计TCP连接状态                    netstat -n | awk '/^tcp/ {++state [$NF]} END {for (key in state) print key ,"t",state [key]}'
  删除大量文件                       find -name "*.*" | xargs rm -rf (直接rm会报错命令太长)

上一篇:Level 4 Unit 3 part 4


下一篇:Exercise 16 - reading and writing file