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 常用命令大全的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段4——cli的终端命令大全

Linux常用基本命令大全介绍

Linux_学习_01_常用命令大全

Linux 命令大全

类型:linux;问题:linux命令;结果:Linux常用命令大全

linux常用命令大全