• linux 常用的基本命令


    $ ls # 查看文件列表

    $ ls dir_name | more : 分页查看文件列表

    $ ll -h dir_name # 以 KB、MB、GB格式查看文件大小

    $ ll -Sh  # --sort[S] 根据文件大小排序,--time[t]修改时间  --reverse[r]逆序排序

    cp : 复制文件或文件夹

    $ cp -r /var/www/xkzd /home/www/xkzd
    - r 表示递归复制该目录下所有的子目录和文件至目的地。此时目标文件必须为一个目录名。

    $ cp -rf /var/www/xkzd /home/www/xkzd #覆盖已存在的文件

    $ /bin/cp -rf /www/teacherapi/* /www/teacherapitest  # 不提示直接覆盖需要用/bin/cp 命令

    $ cp -rn /var/www/xkzd /home/www/xkzd #忽略已存在的文件

    cat:显示文件内容

    $ cat hello.txt

    hello wrold!

    $ cat -n hello.txt #查看行号

    $ cat -b hello.txt #查看行号(不包含空行)

    $ cat -A hello.txt  # 可以查看到换行符号 --show-all 等价于 -vET

    根据条件过滤文件内容后重定向(输入)到文件内

    $ cat nginx_error.log | grep "2014/03/26"|grep "upstream prematurely closed connection">nginx_20140326.502.log 

    echo: 输出系统变量或文件

    $ echo $PATH

    $ echo "hello" > /tmp/test.log  # 输出文件的过程中将内容重定向(输入)到文件内


    more:分页显示

    按下空格键可以显示下一屏内容;按下Enter键显示下一行内容;按下B键显示上一屏;按下Q键退出显示

    # more settings.py

    mkdir:创建文件夹或目录 Make directory

     格式:  mkdir  [选项]  DirName

    [root@localhost /]# mkdir /home/software

    vi 创建文件

    [root@rh-linux /]# touch /var/www/php/test.php

    [root@rh-linux /]# vi /var/www/php/test2.php #创建并编辑文件

    [root@rh-linux /]# echo hello > /var/www/php/test3.php #直接把内容写入文件并创建

    [root@rh-linux /]# cat /var/www/php/test4.php #创建并查看文件

    mv 移动文件

    [root@rh-linux ~]# mv -i /root/wordpress/ /home/software/

    -i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。

    -f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。

    mv 修改文件

    [root@rh-linux /]# mv /var/www/html/DedeCMS-V5.7-UTF8-SP1 /var/www/html/dedecms

    rm 删除文件

    [root@rh-linux /]rm -f /var/log/httpd/access.log

    -f 就是直接强行删除,不作任何提示的意思

    删除目录使用实例:

    [root@rh-linux /]rm -rf /var/log/httpd/access  # -r 递归操作

    将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

    需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的

    rm更多用法使用man rm就可以查看了

    有时候会出现一些乱码文件,因为不知道文件名,所以就无法通过rm删除,这是可以使用节点号删除,可以通过 ls -i 或 ll -i 命令查看节点号,最后使用find命令将节点号传递给rm命令

    例如:find ./ -inum 12345 -print -exec rm {} -rf ;   #注意;前面的空格不能少,少了就会报错

    另外也可以使用图形界面的客户端(SSH Secure File Transfer Client)来删除。

    #根据搜索条件删除

    $ find /home/www/project-tbkt/zhishidian/ -maxdepth 1 -type f -name "*.jpg" | xargs rm -fr

    #删除指定类型的文件

    $ rm -f /home/mmsc_media/*.smil

    #删除文件夹下指定扩展类型的所有文件,排除指定文件

    [root@localhost log]# ls

    2013-08-19.log  2013-08-20.log  2013-08-21.log  2013-08-22.log  2013-08-23.log  2013-08-24.log  2013-08-25.log  2013-08-26.log

    [root@localhost log]# rm -rf `ls *.log |egrep -v 2013-08-26.log`   # 注意“`”是TAB上面那个键不是引号

    [root@localhost log]# ls

    2013-08-26.log

    [root@localhost log]# rm -rf `ls -I 2013-08-26.log #删除文件夹内所有文件只保留一个文件

    [root@localhost log]# rm -rf `ls|egrep -v '(2013-08-26.log|filename|dirname)'`  # 删除文件夹内所有文件保留部分文件

    [root@localhost log]# rm -rf `find  *.log |egrep -v '(2013-08-26.log|filename|dirname)'` # 使用find命令删除


    tail 从指定点开始将文件写到标准输出

    [root@rh-linux /]# tail -f /www/logs/test.tbkt.cn.uwsgi.log 

    tail 命令在 /usr/bin/tail 下,使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。 

    语法 tail [  -f ] [  -c Number |  -n Number |  -m Number |  -b Number |  -k Number ] [ File ] 

    Number 变量用于确定计数的起点的单元类型由 -b、-c、-k、-m 以及 -n 标志确定。如果没有指定其中的任何一个标志,那么 tail 命令就会读取指定文件的最后十行,并将其写到标准输出。这与在命令行输入 -n 10 是相同的。


    查看文件下下有多少文件, -R表示遍历子文件夹

    [root@burning video]# ls -R /home/upload_media/zhishidian/video|wc -l


    WC 统计

    $ wc file1

    7 14 56 file1

    第一列为文件的行数,第二列为文件内让的单词数,第三列文件的字节数,最后一列为文件名。

    $ wc -lcw file1

    -c 字节数

    -l 行数

    -w 字数


    ln 创建软链接(相当于windows的快捷方式)

    语法:ln –s 源文件 目标文件

    例如:ln -s /data/git/teacherapi.git /teacherapi.git  # 相当于在根目录创建一个teacherapi.git 链接文件

    -s 是 symbolic link 的意思,如果没有-s则是创建硬链接,硬链接是一个文件设置多个名字,文件夹不能创建硬链接,但可以创建软链接




    查看当前目录文件夹大小

    [root@localhost home]# du -s /home

    3795828 /home

    [root@localhost home]# du -sh /home

    3.7G    /home

    [root@localhost home]# du -sh

    3.1G    .

    [root@localhost home]# du -sh /home/tbkt.sql 

    897M    /home/tbkt.sql

    [root@burning backup_video]# du -h --max-depth=1

    41M     ./test

    30G     ./2012

    4.0K    ./new

    156M    ./2013

    23G     ./2011

    52G     .

    [root@db106 ~]# du -mmsh * | ll -Sh  # 查看当前目录的子目录文件大小,并通过管道形式按大小排序

    查看系统剩余空间

    [root@localhost /]# df -h 

    Filesystem            Size  Used Avail Use% Mounted on

    /dev/sda2             192G   20G  163G  11% /

    /dev/sda1             289M   17M  258M   7% /boot

    tmpfs                 1.5G     0  1.5G   0% /dev/shm

    查看系统中大于500M的文件

    # find / -xdev -size +500M -exec ls -lh {} ;

     

    locate :搜索文件

    locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。

    即先运行:updatedb(无论在那个目录中均可,可以放在crontab中 )后在   /var/lib/slocate/ 下生成 slocate.db 数据库即可快速查找。在命令提示符下直接执行#updatedb 命令即可:

    例如:查找相关字my_config.h

    [root@db1 ~]# updatedb 

    [root@db1 ~]# locate my_config.h

    /usr/include/mysql/my_config.h

     

    find命令

    功能:在目录结构中搜索文件,并执行指定的操作。

    语法:find 起始目录 寻找条件 操作.

    说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

    该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为:

    (1)and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如:

    $ find –name ’tmp’ –xtype c -user ’inin’

    该命令寻找三个给定条件都满足的所有文件。

    (2)or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如:

    $ find –name ’tmp’ –o –name ’mina*’

    该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。

    (3)not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。例如:

    $ find ! –name ’tmp’

    该命令查询文件名不是’tmp’的所有文件。

    以名称和文件属性查找,字串内可用通配符*、?、[ ]

    $ find / -name 'python*'

    说明:命令中的“/”表示所有目录,“.”表示当前目录,什么路径都不写也表示当前路径。

    #指定深度指定文件名查找

    $ find /home/www/project-tbkt/zhishidian/ -maxdepth 1 -type f -name "*.jpg"


    查看当前路径pwd

    [root@fileserver Twisted-8.2.0]# pwd

    /home/soft/Twisted-8.2.0


    ifconfig 查看本机IP


    netstat 查看端口是否占用

    [root@web2 ~]# netstat -anp| grep 3006

    tcp        0      0 127.0.0.1:3006              0.0.0.0:*                   LISTEN      1492/uwsgi 


    scp 服务器之间复制文件或目录

    命令基本格式: scp [可选参数] file_source file_target 

    从 本地 复制到 远程 

    ====== 

    * 复制文件: 

    scp local_file remote_username@remote_ip:remote_folder 

    或者 

    scp local_file remote_username@remote_ip:remote_file 

    或者 

    scp local_file remote_ip:remote_folder 

    或者 

    scp local_file remote_ip:remote_file 

    第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名; 

    第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名; 

    * 例子: 

    scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music 

    scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3 

    scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3 

    scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music 


    * 复制目录: 

    scp -r local_folder remote_username@remote_ip:remote_folder 

    或者 

    scp -r local_folder remote_ip:remote_folder 

    第1个指定了用户名,命令执行后需要再输入密码; 

    第2个没有指定用户名,命令执行后需要输入用户名和密码; 

    * 例子: 

    scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/ 

    scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/ 

    上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录 


    ====== 

    从 远程 复制到 本地 

    ====== 

    从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可; 

    例如: 

    scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3 

    scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

    ======

    指定端口复制文件

    scp  -P 6022  /www/shouji.tar.gz   root@192.168.0.103:/www/


    统计某文件夹下文件的个数

    ls -l |grep "^-"|wc -l

    统计某文件夹下目录的个数

    ls -l |grep "^d"|wc -l

    统计文件夹下文件的个数,包括子文件夹里的

    ls -lR|grep "^-"|wc -l

    统计文件夹下目录的个数,包括子文件夹里的

    ls -lR|grep "^d"|wc -l

    如统计/home/han目录(包含子目录)下的所有js文件则:

    ls -lR /home/han|grep js|wc -l 或 ls -l "/home/han"|grep "js"|wc -l


    whoami、who 查看用户

    $ whoami #查看当前会话用户

    root

    $ who # 查看当前连接用户都有谁

    root     pts/0        2014-03-24 00:12 (192.168.0.126)

    wei     pts/1        2014-03-24 00:16 (192.168.0.126)


    sudo -i 切换为超级管理员, exit 退出当前用户登录
    su -i   # 切换为超级管理员
    su -i username  # 切换普通用户

    查看修改系统时间

    $ date   # 查看当前时间

    $ date --s "2014-03-26 19:10:00"  # 同时修改日期和时间

    $ date -s 2014-03-26  # 只设置时间 这时候小时、分钟、秒默认是零

    $ date -s 19:10:30 # 只设置时间

    $ hwclock  # 查看硬件(主板)时间

    $ hwclock --hctosys  # 硬件时间和系统时间同步

    $ hwclock –systohc # 系统时钟和硬件时钟同步

    $ yum install ntp  # ntp服务为自动同步时间服务,安装后使用 $ service ntpd start  启动服务即可

     

    which, whereis 查看文件位置

    which  查看可执行文件的位置。which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件.

    whereis 文件或者目录名称。 

    mac:~ admin$ which java

    /usr/bin/java

    mac:~ admin$ whereis java

    /usr/bin/java


     

    SSH 使用git bash登录linux服务器

    $ ssh root@192.168.0.126 或 $ ssh -l username remotehost  
    $ ssh root@192.168.0.126 -p6022  # 带端口访问

     

     

    rpm 包安装
    # rpm -ivh ***.rpm
    # yum localinstall ***.rpm   # yum方式安装rpm可以同时安装依赖包(推荐使用该方式)

     

    查看系统版本号
    [root@db106 ~]# lsb_release -a LSB   # 注:7.0后该命令默认不可用
    Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
    Distributor ID: CentOS
    Description: CentOS release 5.4 (Final)
    Release: 5.4
    Codename: Final

    [root@localhost ~]# uname -a  # 适用于所有的linux,包括Redhat、SuSE、Debian、Centos等发行版。
    Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
    [root@localhost ~]# cat /etc/redhat-release  # 适用于RedHat,CentOS
    CentOS Linux release 7.1.1503 (Core)


    cenos7 关机命令
    # shutdown -P now    # centos7之前可以使用halt关机
     

    修改主机名
    [root@iZ25rw6p599Z ~]# vi /etc/sysconfig/network
    PEERNTP=no
    NETWORKING_IPV6=no
    GATEWAY=101.201.83.247
    #HOSTNAME=5rw6p599
    HOSTNAME=webpdf
    /etc/sysconfig/network方式需要重启服务器
    临时修改主机名称
    [root@iZ25rw6p599Z ~]# sudo hostname webpdf
    [root@iZ25rw6p599Z ~]# hostname
    webpdf
    如果不想重启又想及时更新名称,可以使用临时+永久方式

  • 相关阅读:
    CF1314G解题报告
    CF1310D解题报告
    CF1310B解题报告
    CF908G解题报告
    oracle的IMU和ora-01555
    oracle事物
    oracle中scn(系统改变号)
    oracle实例恢复之检查点队列
    oracle优化:避免全表扫描(高水位线)
    关于oracle中in和exists的区别
  • 原文地址:https://www.cnblogs.com/weiok/p/4639216.html
Copyright © 2020-2023  润新知