linux 常用命令大全
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 常用命令大全相关的知识,希望对你有一定的参考价值。
一 实时日志跟踪 主动刷新,确保看到最新的档案内容。 格式: tail -f 文件名全称 默认情况下它显示文件的最后十行。 如: cd/app/log/passage tail -f passage.log 实时日志跟踪 tail -f -n 100 catalina.out 从最后的100行开始显示 二。vim 文件编辑器 vim test.txt 解释:如果没有该文件 则建立该文件 并进入命令模式 如果有的话直接进入命令模式 按下 i 键 进入编辑输入模式 输入内容 按下ESC键 返回到命令模式 输入 :wq 文件保存并退出 ,如果不保存 则 :q 即可 vim 三种操作状态,分别是命令模式、插入模式和底线命令模式 三。文件删除 文件删除 格式 : rm 文件名 四。删除目录及其下所有文件、文件夹 rm -rf命令 -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思 如: rm -rf /var/log/httpd/access/ 将会删除access目录及其下所有文件、文件夹 如: rm -f /var/log/httpd/access.log 将会强制删除 access.log这个文件 rm -rf * #删除当前目录下所有文件,排除 delete.bat rm -rf `ls *.|egrep -v delete.bat` rm -rf *.log rm -rf session/Fixco* 五。删除空的目录 rmdir dir1 删除一个叫做 ‘dir1‘ 的目录 六。文本文件查看和连接工具。 cat cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。 比如: cat passage.properties 另一种方式 格式 more 例子: more ‘NollPointerException‘ datashift.log > temp.log more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示, 按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在 例子 输入 :200 就可以滚动一定的页数 或者 :100 启动时就加载整个文件。 如 :more config.ada.php | grep ‘[email protected]‘ 查看config.ada.php所有内容,并显示kong@chinascopefinancial.com的地方 grep ‘data/000592.csv:2016-01-27‘ 1.txt 或: cat config.ada.php | grep ‘[email protected]‘ 七. 定向输出到文件 格式 > more datashift.log |grep ‘开始导入: 基金投资前十名股票‘ > temp.log > 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空; 如:ping 192.168.120.204 > test.log 在后台ping远程主机。并输出文件到test.log; 这种做法也使用于一个以上的档案监视。用Ctrl+c来终止。 输出内容追加到目标文件中 格式 >> 如: echo ‘测试隐患‘ >> test.log 会在 test.log文件最后最佳 测试隐患这句话 八。查看进程状态 格式 ps ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照, 就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使 用top命令。 如: ps -ef|grep passage 或: ps aux | grep passage 查看passage包的进程状况 例子: ps aux | grep csf-webai ps aux | grep 4775 九. 杀死进程 kill XXX 如: kill -9 324 十. 上传本地文件到linux 格式 : rz -be 此时会打开对话框 ,选好之后,会自动上传到所在的目录 从Linux 下载文件到本地目录 格式: sz filename #下载一个文件 sz filename #下载多个文件 sz filename1 filename2 #下载dir目录下的所有文件,不包含dir下的文件夹 sz dir/* 下载文件存放位置需要在securtCRT中设置,设置步骤如下: 选项 --》 回话选项 --》 X/Y/Zmodem 十一. 文件移动 格式 : mv 如: mv test.log ../addr 如: mv mongodb-linux-i686-2.0.7 /usr/local/mongodb 把 test.log 移动到 上级目录addr下 十二. 修改名字 如: 把deploy_csf_weui.sh 修改成 deploy_csf_webai.sh mv deploy_csf_weui.sh deploy_csf_webai.sh 十三. 搜索文件中匹配符 格式 grep ‘bytes‘ *log 格式 more ‘bytes‘ *log 在当前目录下,在所有以log结尾的文件中查找有bytes的地方 从根目录开始查找webaideploy.sh的文件。 find / -name webaideploy.sh 想要在当前目录及子目录中查找所有的‘ *.log‘文件,可以用: find . -name "*.log" -print 十四. zip 压缩和解压 1.如: unzip mongodb-win32-i386-2.6.5.zip 把mongodb-win32-i386-2.6.5.zip 解压到当前目录下 2.如: zip -r xiaoma.zip mongodb-win32-i386-2.6.5 把mongodb-win32-i386-2.6.5 文件压缩成为 xiaoma.zip 或: zip -r abc123.zip abc 123.txt 把目录下面的abc文件夹和123.txt压缩成为abc123.zip tar 解压 1 如:tar -zxvf server-user-service-1.0.0.0.dist.tar.gz 把 server-user-service-1.0.0.0.dist.tar.gz 解压到当前目录 十五. 复制指定目录下的全部文件到另一个目录中 格式: cp -r 源文件或目录 目标文件或目录 将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中 > cp -r /usr/men /usr/zh 十六. 赋予权限 建立sh 文件 touch test.sh 赋予文件权限 chmod u+x test.sh 给你一个目录下的所有文件赋予权限 chmod 777 -R 名称 如: 给 apache-tomcat-8.0.32 下所有文件赋予权限 chmod 777 -R apache-tomcat-8.0.32 十七. telnet 例子: telnet 192.168.1.108 3306 十八.文件太大处理办法 查找 vi data_w.log 查看日志(上下键) 摁下 / 的键 输入 关键字 进行查找 Ctrl+b 返回上一屏; Ctrl+f 向下滚动一屏; 文件的尾部 less data_w.log 查看日志(上下键) shift+G 键 直接滚到尾部 十九. 脚本启动与停止 例子 脚本 名字 deploy.sh 启动 ./deploy.sh 或者 sh deploy.sh 如果后台运行的话,可以加个& 如 ./deploy.sh & 或者 sh deploy.sh & 停止 sh cloud.sh stop 注释: bash -x webaideploy.sh csf bash -x start.sh debug 模式运行 能看到具体的报错信息 二十.搜索进程中包含invest的 ps aux | grep invest 二十一.查看端口是否被占用 netstat -anoptl | grep 端口号 演示 查看8120端口是否被占用 [[email protected] invest]# netstat -anoptl | grep 8120 tcp 0 0 0.0.0.0:8120 0.0.0.0:* LISTEN 20430/java off (0.00/0/0) 查看具体端口8120 是被那个应用程序使用 ps aux | grep 20430 二十二. 查看当前目录总用多大空间 du -sh 二十三. 查看磁盘使用情况 df -h 二十四. linux下自动下载工具 wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理. 如: wegt http://download.oracle.com/otn-pub/java/jdk/ 二十五.【主机名】 一.查看linux的主机名 hostname 二.修改linux的主机名 hostname 修改后的名称 如:hostname localhost 这样修改有个问题 每次重启的时候还会还原 如果永久修改的话就要配置文件 vim /etc/sysconfig/network 修改如下 HOSTNAME = localhost 然后重启一下 reboot -h now 删除所有的进程,而不是平稳地终止它们 备注: shutdown -r now是立即停止然后重新启动, 安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。 三.主机名跟ip进行绑定 vim /etc/hosts 在文件中增加一行 192.168.0.130 localhost 二十六.【防火墙 】 一.查看防火墙是否关闭: service iptables status 二.关闭防火墙 service iptables stop 三.查看防火墙是否是自动运行 chkconfig --list 备注: [[email protected] maven]# chkconfig --list | grep iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off 如果有一个为on 说明是自动启动的,没有off说明没有自动启动 四.关闭防火墙自动运行 chkconfig iptables off 验证 chkconfig --list | grep iptables 【系统管理命令】 who 显示在线登陆用户 clear 清屏 hostname 显示主机名 top 动态显示当前耗费资源最多进程信息 df 查看磁盘大小 df -h 带有单位显示磁盘信息 ifconfig 查看网络情况 ping 测试网络连通 netstat 显示网络状态信息 kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。 history 查看输入的历史命令 vi filename :打开或新建文件,并将光标置于第一行首 vi filename....filename :打开多个文件,依次进行编辑 Linux查看文件夹大小 du -sh 查看当前文件夹大小 du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序 查看目录下有多少个文件及文件夹需在终端输入 ls | wc -w Linux常用命令大全 date 显示系统日期 cal 2007 显示2007年的日历表 date 041217002007.00 设置日期和时间 - 月日时分年.秒 clock -w 将时间修改保存到 Bios 关机 (系统的关机、重启以及登出 ) shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启(1) reboot 重启(2) logout 注销 top 查看cpu消耗 【文件和目录 】 cd /home 进入 ‘/ home‘ 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls *[0-9]* 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的树形结构(1) lstree 显示文件和目录由根目录开始的树形结构(2) mkdir dir1 创建一个叫做 ‘dir1‘ 的目录 mkdir dir1 dir2 同时创建两个目录 mkdir -p /tmp/dir1/dir2 创建一个目录树 rm -rf dir1 删除一个叫做 ‘dir1‘ 的目录并同时删除其内容 rm -rf dir1 dir2 同时删除两个目录及它们的内容 mv dir1 new_dir 重命名/移动 一个目录 cp file1 file2 复制一个文件 cp dir/* . 复制一个目录下的所有文件到当前工作目录 cp -a /tmp/dir1 . 复制一个目录到当前工作目录 cp -a dir1 dir2 复制一个目录 ln -s file1 lnk1 创建一个指向文件或目录的软链接 ln file1 lnk1 创建一个指向文件或目录的物理链接 touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm) file file1 outputs the mime type of the file as text iconv -l 列出已知的编码 iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding. find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick) 【文件搜索 】 find / -name file1 从 ‘/‘ 开始进入根文件系统搜索文件和目录 find / -user user1 搜索属于用户 ‘user1‘ 的文件和目录 find /home/user1 -name \*.bin 在目录 ‘/ home/user1‘ 中搜索带有‘.bin‘ 结尾的文件 find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 find / -name \*.rpm -exec chmod 755 ‘{}‘ \; 搜索以 ‘.rpm‘ 结尾的文件并定义其权限 find / -xdev -name \*.rpm 搜索以 ‘.rpm‘ 结尾的文件,忽略光驱、捷盘等可移动设备 locate \*.ps 寻找以 ‘.ps‘ 结尾的文件 - 先运行 ‘updatedb‘ 命令 whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径 【打包和压缩文件 】 bunzip2 file1.bz2 解压一个叫做 ‘file1.bz2‘的文件 bzip2 file1 压缩一个叫做 ‘file1‘ 的文件 gunzip file1.gz 解压一个叫做 ‘file1.gz‘的文件 gzip file1 压缩一个叫做 ‘file1‘的文件 gzip -9 file1 最大程度压缩 rar a file1.rar test_file 创建一个叫做 ‘file1.rar‘ 的包 rar a file1.rar file1 file2 dir1 同时压缩 ‘file1‘, ‘file2‘ 以及目录 ‘dir1‘ rar x file1.rar 解压rar包 unrar x file1.rar 解压rar包 tar -cvf archive.tar file1 创建一个非压缩的 tarball tar -cvf archive.tar file1 file2 dir1 创建一个包含了 ‘file1‘, ‘file2‘ 以及 ‘dir1‘的档案文件 tar -tf archive.tar 显示一个包中的内容 tar -xvf archive.tar 释放一个包 tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包 tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包 zip file1.zip file1 创建一个zip格式的压缩包 zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 unzip file1.zip 解压一个zip格式压缩包 查看文件内容 cat file1 从第一个字节开始正向查看文件的内容 tac file1 从最后一行开始反向查看一个文件的内容 more file1 查看一个长文件的内容 less file1 类似于 ‘more‘ 命令,但是它允许在文件中和正向操作一样的反向操作 head -2 file1 查看一个文件的前两行 tail -2 file1 查看一个文件的最后两行 tail -f /var/log/messages 实时查看被添加到一个文件中的内容 返回顶部索引 ^ 文本处理 cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中 cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中 grep Aug /var/log/messages 在文件 ‘/var/log/messages‘中查找关键词"Aug" grep ^Aug /var/log/messages 在文件 ‘/var/log/messages‘中查找以"Aug"开始的词汇 grep [0-9] /var/log/messages 选择 ‘/var/log/messages‘ 文件中所有包含数字的行 grep Aug -R /var/log/* 在目录 ‘/var/log‘ 及随后的目录中搜索字符串"Aug" sed ‘s/stringa1/stringa2/g‘ example.txt 将example.txt文件中的 "string1" 替换成 "string2" sed ‘/^$/d‘ example.txt 从example.txt文件中删除所有空白行 sed ‘/ *#/d; /^$/d‘ example.txt 从example.txt文件中删除所有注释和空白行 echo ‘esempio‘ | tr ‘[:lower:]‘ ‘[:upper:]‘ 合并上下单元格内容 sed -e ‘1d‘ result.txt 从文件example.txt 中排除第一行 sed -n ‘/stringa1/p‘ 查看只包含词汇 "string1"的行 sed -e ‘s/ *$//‘ example.txt 删除每一行最后的空白字符 sed -e ‘s/stringa1//g‘ example.txt 从文档中只删除词汇 "string1" 并保留剩余全部 sed -n ‘1,5p;5q‘ example.txt 查看从第一行到第5行内容 sed -n ‘5p;5q‘ example.txt 查看第5行 sed -e ‘s/00*/0/g‘ example.txt 用单个零替换多个零 cat -n file1 标示文件的行数 cat example.txt | awk ‘NR%2==1‘ 删除example.txt文件中的所有偶数行 echo a b c | awk ‘{print $1}‘ 查看一行第一栏 echo a b c | awk ‘{print $1,$3}‘ 查看一行的第一和第三栏 paste file1 file2 合并两个文件或两栏的内容 paste -d ‘+‘ file1 file2 合并两个文件或两栏的内容,中间用"+"区分 sort file1 file2 排序两个文件的内容 sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份) sort file1 file2 | uniq -u 删除交集,留下其他的行 sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件) comm -1 file1 file2 比较两个文件的内容只删除 ‘file1‘ 所包含的内容 comm -2 file1 file2 比较两个文件的内容只删除 ‘file2‘ 所包含的内容 comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分 ********************************************************************************************************* 常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent) cd 切换目录 touch 创建空文件 echo 打印内容 cat 查看文件内容 cp 拷贝 mv 移动或重命名 rm 删除文件 -r 递归删除,可删除子目录及文件 -f 强制删除 find 在文件系统中搜索某文件 grep 在文本文件中查找某个字符串 rmdir 删除空目录 tree 树形结构显示目录,需要安装tree包 pwd 显示当前目录 ln 创建链接文件 more、less 分页显示文本文件内容 head、tail 显示文件头、尾内容 ctrl+alt+F1 命令行全屏模式 关机/重启机器 shutdown -r 关机重启 -h 关机不重启 now 立刻关机 halt 关机 reboot 重启 vim使用 vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。 命令模式下: :q 退出 :q! 强制退出 :wq 保存并退出 :set number 显示行号 :set nonumber 隐藏行号 文件权限管理 三种基本权限 R 读 数值表示为4 W 写 数值表示为2 X 可执行 数值表示为1 http://blog.sina.com.cn/s/blog_64e166580100vwk2.html
脚本基础学习
#########################################################################################
$# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 [email protected] 是传给脚本的所有参数的列表 $0 Shell本身的文件名 $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 如新建一个test.sh 简单的脚本 touch test.sh #!/bin/sh echo "shell本身的文件名 --->$0" echo "第1个参数 $1" echo "第2个参数 $2" 赋予脚本执行权限 # chmod +x test.sh 执行脚本 # ./test.sh aa bb 这里aa就是传递的第一个参数 bb就是传递的第二个参数 显示结果 shell本身的文件名 --->./test.sh 第1个参数 aa 第2个参数 bb 首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程 序。 如果首行没有这句话,在执行脚本文件的时候,将会出现错误。后续的部分就是主程序 #-z 是为空的意思 参数1为空的时候会进入 if [ -z $1 ]; then echo "参数是空的" else echo "参数打印 -> $1" fi ######################################################################################### #!/bin/sh DEPLOY_TYPE="svn" #-a 和 -o 表示逻辑与和逻辑或 if [ -z $1 ]; then echo "参数数空的" elif [ $1 = "svn" -o $1 = "war" ];then echo "参数打印 --> $1" else echo "什么都没有" fi echo $DEPLOY_TYPE echo "这里开始调用脚本" /xiaolei/test.sh ######################################################################################### [ -f "$file" ] 判断$file是否是一个文件 [ $a -lt 3 ] 判断$a的值是否小于3,同样-gt和-le分别表示大于或小于等于 [ -x "$file" ] 判断$file是否存在且有可执行权限,同样-r测试文件可读性 [ -n "$a" ] 判断变量$a是否有值,测试空串用-z [ "$a" = "$b" ] 判断$a和$b的取值是否相等 [ cond1 -a cond2 ] 判断cond1和cond2是否同时成立,-o表示cond1和cond2有一成立 ######################################################################################### 文件表达式 if [ -f file ] 如果文件存在 if [ -d ... ] 如果目录存在 if [ -s file ] 如果文件存在且非空 if [ -r file ] 如果文件存在且可读 if [ -w file ] 如果文件存在且可写 if [ -x file ] 如果文件存在且可执行 整数变量表达式 if [ int1 -eq int2 ] 如果int1等于int2 if [ int1 -ne int2 ] 如果不等于 if [ int1 -ge int2 ] 如果>= if [ int1 -gt int2 ] 如果> if [ int1 -le int2 ] 如果<= if [ int1 -lt int2 ] 如果< -eq -ne -lt -nt只能用于整数,不适用于字符串 字符串变量表达式 If [ $a = $b ] 如果string1等于string2 字符串允许使用赋值号做等号 if [ $string1 != $string2 ] 如果string1不等于string2 if [ -n $string ] 如果string 非空(非0),返回0(true) if [ -z $string ] 如果string 为空 if [ $sting ] 如果string 非空,返回0 (和-n类似) 条件表达式引用变量要带$ if [ $a = $b ] ;then echo equal else echo no equal fi if [ -z "$JHHOME" -a -d $HOME/$num ] 如果变量$JHHOME为空,且$HOME/$num目录存在 then JHHOME=$HOME/$num 则赋值 fi #!/bin/sh ######################################################################################### #!/bin/sh for((i = 1; i<5; i++)) do echo "$i" done echo "执行完毕" 显示结果 1 2 3 4 执行完毕 ######################################################################################### echo "------------------" for key in num parm a b do echo $key done echo "-----------------" 显示结果 ------------------ num parm a b ----------------- ######################################################################################### echo "argume:[email protected]" for key in [email protected] do echo $key done
以上是关于linux 常用命令大全的主要内容,如果未能解决你的问题,请参考以下文章