Linux命令总结

  • ls 用于显示目录中的文件信息
    用法:ls [选项]… [文件]…
    ls
    ls -l #显示当前目录内容的长列表
    ls /bin #查看bin目录下的文件
    ls -a #显示隐藏文件

  • cd 目录切换命令
    cd /home/ #切换到home目录
    cd - #返回切换到home前的目录
    cd … #切换到上一级目录
    cd ~(cd或cd $HOME) #切换当前用户的home目录

  • cp 用于复制文件或目录
    用法:cp [选项]… 源文件… 目标文件
    cp -p test.rb /home/test #将test.rb copy到test目录,并且保留原文件的属性
    cp -r Dir/ /home/test #将Dir目录copy到test目录下(递归)
    cp -f file1 file2 #将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式

  • mv 剪切文件或将文件重命名
    用法:mv [选项]… 源文件… [目标路径/文件名称]
    mv abc abc.php #将abc移动成abc.php
    mv test.php{,.sh} #将test.php增加后辍
    mv aaa bbb #将目录或者文件重命名,如果存在bbb目录,则是将aaa移到bbb目录下

  • pwd 显示当前目录
    pwd #显示当前目录
    pwd -P #目录是软连接,显示实际物理地址
    pwd -L #-L显示,逻辑地址

  • rm 用于删除文件或目录
    用法: rm [选项]… 文件…
    rm test.php #删除文件需要确认
    rm -f test.php #强制删除文件不确认
    rm -rf expect-5.43 #参数表示递归强制删除非空文件夹
    rm -rfv ./test #强制删除当前的test目录,并显示删除的详细过程

  • rmdir 删除指定的空目录。
    用法:rmdir [选项]… 目录…
    rmdir test #删除test目录,注意必须是空目录
    rmdir -p a/b/c #删除指定目录及其上级文件夹

  • chgrp 改变文件的组所有权
    chgrp -R test100 myweb #改变myweb目录,以及目录下的所有文件所属组
    chgrp test100 phpinfo.php #改变用户组

  • chmod 更改文件权限
    chmod ugo+r nginx_bak.conf #所有人皆可读取
    chmod a+r nginx_bak.conf #所有人皆可读取
    chmod ug+w,o-w nginx_bak.conf #设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
    chmod u+x nginx_bak.conf #创建者拥有执行权限
    chmod -R a+r ./www/ #将www下的所有档案与子目录皆设为任何人可读取
    chmod a-x nginx_bak.conf #收回所有用户的对nginx_bak.conf的执行权限
    chmod 777 nginx_bak.conf #所有人可读,写,执行

  • chown 更改文件的所有者和/或所属组
    用法:chown [选项] … 所有者:所属组…文件或目录名称
    chown root:root nginx.conf #将nginx.conf所属用户和组改为root,root
    chown -R root:root www #将www目录,所属用户和组改为root,root
    chown root nginx.conf #将nginx.conf,所属用户改为root
    chown .root 1.html #只改变组

  • find 查找目录和文件
    用法:find 路径 -命令参数 [输出形式]
    find ~ -name memcached.pid -print #查找home目录下文件名为memcache.pid的文件
    find . -name “.pid" -print #.代表当前目录,查找所有以pid结尾的文件
    find ~ -name "[0-9]
    .pid” -print #查找以数字开头的所有pid文件,在这里要说[0-9]不能匹配23,它跟一般的语言类正则不太一样,shell里面的*可以代表一切字符(单个,多个都行),如果想匹配2345只能这样写[0-9][0-9][0-9][0-9]
    find ~ -perm 755 -print |more #~代表的是$home目录,查找权限为755的文件
    find . -perm 700 -name "u_
    " -print |more #查找所有以产u_开头的,并且权限为700的文件
    find . -type d -print #查找当前目录下面的目录
    find . ! -type d -print #找当前目录下面的非目录文件
    find . -nouser -print #查找当前目录中,没有归属的文件
    find /home/lie/download -size +1000000c -print #查找文件大小大于1000000字符的文件,注意+号表示大于
    find /home/lie -mtime -5 -print #5天修改过的文件,- 表示以内
    find . -type f -size +1000000c -exec ls -al {} ; #显示当前目录下面所有大于1000000的文件,exec后面执行了一个命令,{}这个代表文件名
    find ./database/ -name ‘*.sql’ -print #查找以sql结尾的文件

  • ln 在文件之间建立连接
    ln -s /home/lie/heartbeat ./ #在当前目录下,建立heartbeat的软连接
    ln -s /home/lie/test ./ #建立目录的软件接
    ln /home/lie/tee.txt ./ #建立硬连接

  • mkdir 创建目录
    用法:mkdir [选项]… 目录…
    mkdir aaa #创建目录
    mkdir -m a=rw bbb #创建指定属性的目录
    mkdir -p 111/abc #创建目录,父目录存在,建之
    mkdir -v test1 #创建目录,并显示详细信息

  • whereis 用于搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
    whereis nginx
    nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz

  • which 是查找命令是否存在,以及命令的存放位置在哪儿
    which ls

  • file 确定文件类型
    file * #查看当前目录下的所有文件类型
    file abc.sh #查看单个文件的文件类型
    file -z test.bz2 #查看压缩文件的内部信息

  • touch 将每个文件的访问时间和修改时间改为当前时间。不存在的文件将会被创建为空文件
    用法:touch [选项]… 文件…
    touch test.php #将test.php的档案时间改为当前时间,文件不存则创建
    touch -c -t 05061803 test.php #将档案时间改为,5月6日18点3分
    touch -r abc.php test.php #将test.php档案改成跟abc.php一样
    touch -d “2 days ago” test.php #将test.php日期修改为2天以前

  • locate 在mlocate数据库中搜索条目(updatedb更新数据库)
    用法: locate [OPTION]… [PATTERN]…
    locate ~/install #查找当前目录下以install开头的文件
    locate -i ~/install #查找当前目录下以install开头的文件,不区分大小写

  • updatedb
    用来创建或更新slocate命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入slocate数据库文件中。
    补充说明:slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。

  • dd 转换和拷贝文件
    dd if=/dev/hdx of=/dev/hdy #将本地的/dev/hdx整盘备份到/dev/hdy
    dd if=/dev/hdx of=/path/to/image #将/dev/hdx全盘数据备份到指定路径的image文件
    dd if=/dev/hdx | gzip >/path/to/image.gz #备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
    gzip -dc /path/to/image.gz | dd of=/dev/hdx #将压缩的备份文件恢复到指定盘
    dd if=/dev/hdx of=/path/to/image count=1 bs=512 #备份磁盘开始的512Byte大小的MBR信息到指定文件
    dd if=/dev/cdrom of=/root/cd.iso #拷贝光盘数据到root文件夹下,并保存为cd.iso文件
    dd if=/dev/urandom of=/dev/hda1 #利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据
    dd if=/dev/sda of=/dev/sda 或dd if=/dev/hda of=/dev/hda #修复硬盘

  • dirname 显示指定路径除了文件名之外的路径前缀
    dirname /home/tank/test.bz2
    /home/tank

  • pathchk 用来检查文件中不可移植的部分。
    用法:pathchk [选项]… 名称…
    pathchk /home/tank/work/tempfiles #检查该路径名称的有效性和可移植性
    pathchk -p /home/tank/temp #以POSIX 标准检查该路径名称的有效性和可移植性

  • unlink 调用 unlink 函数删除指定的文件
    用法:unlink 文件或:unlink 选项
    unlink test.php #删除

  • basename 去掉前导的目录部分后打印“名称”。如果指定的话,还会去掉尾随的“后缀”。
    用法:basename 名称 [后缀]或:basename 选项
    basename /etc/php.ini
    php.ini

    basename /etc/nginx/
    nginx

    bashname include/stdio.h .h
    stdio

  • rename 用于对文件进行命名管理,可进行批量命名并支持正则表达式(此次转义可能存在格式问题)
    【常用通配符说明】
    ? 表示一个任意字符
    . 表示一个或一串任意字符
    【常用正则表达式符号说明】
    ^ 匹配输入的开始位置
    $ 匹配输入的结尾
    . 匹配除换行符外的任意字符
    + 匹配前一个字符一次或多次 例如,“zo+“可以匹配"zoo”,但不匹配"z”
    [a-z] 表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字 符。
    [^m-z] 否定的字符区间。与不在指定区间内的字符匹配。

    rename ‘s/.sh/.php/’ * #将当前目录下.sh后缀的文件,变成.php
    rename ‘s/$/.bak/’ /home/www/*.php #给www目录下的.php加上bak后缀
    rename ‘s/^/bak_/’ *.bin #给当前目录下的.bin后缀文件加上bak_前缀。

    rename ‘s/.bin$//’ * #批量删除当前目录下所有文件的.bin 后缀
    rename ‘s/A-Z/a-z/’ * #修改当前目录所有文件名为小写

  • vim 文本编辑器
    /xxx(?xxx) #表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示
    向上查找。查找到以后, 再输入 n 查找下一个匹配处, 输入 N 反方向查找。
    *(#) #当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的
    下(上)一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找。

  • cat 将[文件]或标准输入组合输出到标准输出。
    cat test #普通输出
    cat -n test #开头显示行号
    cat -s test #超过二个空行,合并成一个
    cat -ns test #去空行,加行号

  • more 分页 显示 (一次一屏) 文本
    more test.php #查看文件
    netstat -tpnl |more #常用方式,分页显示

  • less 与more命令类似,但可以通过翻页键查看上下页的内容

命令内部操作
按键功能如下:
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行

  1. 向前搜索
    / : 使用一个模式进行搜索,并定位到下一个匹配的文本
    n : 向前查找下一个匹配的文本
    N : 向后查找前一个匹配的文本
  2. 向后搜索
    ? : 使用模式进行搜索,并定位到前一个匹配的文本
    n : 向后查找下一个匹配的文本
    N : 向前查找前一个匹配的文本
    2 全屏导航
    ctrl + F :向前移动一屏
    ctrl + B :向后移动一屏
    ctrl + D :向前移动半屏
    ctrl + U :向后移动半屏
    3 单行导航
    j : 向前移动一行
    k : 向后移动一行
    4 其它导航
    G : 移动到最后一行
    g : 移动到第一行
    q / ZZ : 退出 less 命令
    5 编辑文件
    v : 进入编辑模式,使用配置的编辑器编辑当前文件
    6 标记导航
    当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置。
    ma : 使用 a 标记文本的当前位置
    'a : 导航到标记 a 处
    7 浏览多个文件
    方式一,传递多个参数给 less,就能浏览多个文件。
    less file1 file2
    方式二,正在浏览一个文件时,使用 :e 打开另一个文件。
    less file1
    :e file2
    当打开多个文件时,使用如下命令在多个文件之间切换
    :n - 浏览下一个文件
    :p - 浏览前一个文件

less test.php #查看文件
netstat -tpnl |less #常用方式,分页显示

  • grep 行搜索
    grep root test #匹配含有root的行
    cat test |grep ‘^\ (root\ |zhang\ )’ #匹配以root开头或者以zhang开头的行,注意反斜杠
    cat test |grep -e ‘^\ (root\ |zhang\ )’ #根上面一个例子一样,-e默认是省去的
    echo ‘zhangyi’ |grep ‘^zhang[a-z]*$’ #匹配以zhang开头,只含有字母
    cat test |grep -E ‘^bin’ #匹配以bin开头的行,用的egrep,在这里可以换成-F,-G
    cat test|grep -n zhangyi #在匹配的行前面加上该行在文件中,或者输出中所在的行号
  • head 将每个指定文件的头10 行显示到标准输出。
    head /etc/passwd #默认,显示开头前10行
    head -k /etc/passwd #显示开头前k行
    head -q -n k file1 file2 file3 #显示多文件开头前k行,并且不显示文件名的文件头
    head -n -k /etc/passwd #除最后k行外,显示剩余全部内容。
  • tail 输出文件的末尾部分
    tail /etc/passwd #默认,显示最后10 行。
    tail -n 2 /etc/passwd #显示最后2行
    tail -q -n k file1 file2 file3 #显示多文件最后k行,并且不显示文件名的文件头
    tail -n +k /etc/passwd #从开头第k行处开始输出。
    tail -f /var/log/messages #参数-f使tail不停地去读最新的内容,因此有实时监视的效果,用Ctrl+c来终止

为完待续。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值