Linux命令进阶

配置文件

  • .bashrc/.zshrc

    保存个人的一些个性化设置,如命令别名、路径等。一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了

系统管理员对用户和用户组管理文件

  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/gshadow

文件目录操作


cat

  • 三大主要功能

    1.一次显示整个文件:cat filename

    2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

    3.将几个文件合并为一个文件:cat file1 file2 > file

  • -b, –number-nonblank 对非空输出行编号
  • -n, –number 对输出的所有行编号,由1开始对所有输出的行数编号
    cat -n log2012.log > log2013.log 
  • tac log.txt 反向列示

head/tail

  • head -n 5 log2014.log 显示文件的前n行
  • head -c 20 log2014.log 显示文件前n个字节
  • head -c -32 log2014.log 文件的除了最后n个字节以外的内容
  • head -n -6 log2014.log 输出文件除了最后n行的全部内容

more / less

  • more +3 log2012.log 显示文件中从第3行起的内容
  • more +/day3 log2012.log 从文件中查找第一个出现”day3”字符串的行,并从该处前两行开始显示输出
  • more -5 log2012.log 设定每屏显示行数
  • ls -l | more -5

mv

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -t : –target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

nl

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能

rm

  • 自定义回收站

    打开.bashrc或者.zshrc文件,在后边添加如下命令:

    myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D;     mv "[email protected]" $D && echo "moved to $D ok"; }
    alias myrm=‘myrm‘

    source .zshrc进行生效,就可以使用myrm命令了

touch

  • -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同

    touch -r log.log log2012.log
  • -t  使用指定的日期时间,而非现在的时间,time的格式[[CC]YY]MMDDhhmm[.SS]
    touch -t 201211142234.50 log.log 

文件查找


find

  • find . -size +1000c -print 查找当前目录大于1K的文件

locate

ocate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行

PS: 有时候电脑上可能没有locate命令,这个时候需要先安装mlocate,然后使用updatedb进行更新就可以了

whereis

whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置

* -b 定位可执行文件,二进制文件

* -m 定位帮助文件

* -s 定位源代码文件

which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

文件打包上传与下载

  • 区分打包和压缩

    打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

用SecureCRT来上传和下载文件

tar

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

  • -x 从压缩的文件中提取文件
  • -z 支持gzip解压文件
  • -c 建立新的压缩文件
  • -v 显示操作过程
  • -f 指定压缩文件
  • -d 记录文件的差别
    tar
    解包:tar xvf FileName.tar
    打包:tar cvf FileName.tar DirName
    .gz
    解压1:gunzip FileName.gz
    解压2:gzip -d FileName.gz
    压缩:gzip FileName
    .tar.gz 和 .tgz
    解压:tar zxvf FileName.tar.gz
    压缩:tar zcvf FileName.tar.gz DirName
    .bz2
    解压1:bzip2 -d FileName.bz2
    解压2:bunzip2 FileName.bz2
    压缩: bzip2 -z FileName
    .tar.bz2
    解压:tar jxvf FileName.tar.bz2
    压缩:tar jcvf FileName.tar.bz2 DirName
    .bz
    解压1:bzip2 -d FileName.bz
    解压2:bunzip2 FileName.bz
    压缩:未知
    .tar.bz
    解压:tar jxvf FileName.tar.bz
    压缩:未知
    .Z
    解压:uncompress FileName.Z
    压缩:compress FileName
    .tar.Z
    解压:tar Zxvf FileName.tar.Z
    压缩:tar Zcvf FileName.tar.Z DirName
    .zip
    解压:unzip FileName.zip
    压缩:zip FileName.zip DirName
    .rar
    解压:rar x FileName.rar
    压缩:rar a FileName.rar DirName 

文件权限设置

chgrp

使用chgrp指令去变更文件与目录所属群组

  • 群组和群组识别码可以去/etc/group文件中查看
  • -v 运行时显示详细的处理信息
  • –dereference 作用于符号链接的指向,而不是符号链接本身
    改变文件的群组属性
    chgrp -v bin log2012.log
    根据指定文件改变文件的群组属性
    chgrp --reference=log2012.log log2013.log
    改变指定目录以及其子目录下的所有文件的群组属性
    chgrp -R bin test6
    通过群组识别码改变文件群组属性
    chgrp -R 100 test6

chown命令

通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

  • -R 处理指定目录以及其子目录下的所有文件
  • -v 显示详细的处理信息
    改变拥有者和群组
    chown mail:mail log2012.log
    改变文件拥有者和群组
    chown root: log2012.log
    改变文件群组
    chown :mail log2012.log
    改变指定目录以及其子目录下的所有文件的拥有者和群组
    chown -R -v root:mail test6

磁盘存储相关

df

  • 必要参数

    • -a 全部文件系统列表
    • -h 方便阅读方式显示
    • -H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
    • -i 显示inode信息
    • -k 区块为1024字节
    • -l 只显示本地文件系统
    • -m 区块为1048576字节
    • –no-sync 忽略 sync 命令
    • -P 输出格式为POSIX
    • –sync 在取得磁盘信息前,先执行sync命令
    • -T 文件系统类型
  • 选择参数
    • –block-size=<区块大小> 指定区块大小
    • -t<文件系统类型> 只显示选定文件系统的磁盘信息
    • -x<文件系统类型> 不显示选定文件系统的磁盘信息
    • –help 显示帮助信息
    • –version 显示版本信息

du

暂时使用的较少,不详述

性能监控与优化

top

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

  • 常用参数

    • -b 批处理
    • -c 显示完整的治命令
    • -I 忽略失效过程
    • -s 保密模式
    • -S 累积模式
    • -i<时间> 设置间隔时间
    • -u<用户名> 指定用户名
    • -p<进程号> 指定进程
    • -n<次数> 循环显示的次数
  • 举例

     

    • 第一行:当前系统时间;up xxx 运行了多久;当前1个用户登录;load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了
    • 第二行:总的进程数量,zombie是僵死的
    • PID行:进程ID;进程所有者;进程优先级(PR);nice值,负值表示高优先级,正值表示低优先级;VIRT,进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES;RES,进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA;

free

free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略

  • 命令参数

    • -b  以Byte为单位显示内存使用情况。
    • -k  以KB为单位显示内存使用情况。
    • -m  以MB为单位显示内存使用情况。
    • -g 以GB为单位显示内存使用情况。
    • -o  不显示缓冲区调节列。
    • -s<间隔秒数>  持续观察内存使用状况。
    • -t  显示内存总和列。
    • -V  显示版本信息。
  • 内存额定值文件:cat /proc/meminfo
  • 实例
    free
    free -g
    free -m
    free -s 1 //每秒执行一次

vmstat/iostat命令/lsof命令

还没接触到,先不做解释
http://www.cnblogs.com/peida/archive/2012/12/25/2833108.html

网络命令

ifconfig

用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

  • 命令参数

    • up 启动指定网络设备/网卡。
    • down 关闭指定网络设备/网卡。
    • arp 设置指定网卡是否支持ARP协议
  • 实例
    启动和关闭网卡
    ifconfig eth0 up
    ifconfig eth0 down
    为网卡配置ipv6地址
    ifconfig eth0 add 33ffe:3240:800:1005::2/64
    用ifconfig修改MAC地址
    ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
    配置IP地址
    ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255
    启用和关闭ARP协议
    ifconfig eth0 arp
    ifconfig eth0 -arp
    设置最大传输单元
    ifconfig eth0 mtu 1500

rcp(remote file copy)

rcp命令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。

  • 命令参数

    • -r 递归地把源目录中的所有内容拷贝到目的目录中。要使用这个选项,目的必须是一个目录。
    • -p 试图保留源文件的修改时间和模式,忽略umask。
    • -k 请求rcp获得在指定区域内的远程主机的Kerberos 许可,而不是获得由krb_relmofhost⑶确定的远程主机区域内的远程主机的Kerberos许可。
    • -x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。如果在文件名中指定的路径不是完整的路径名,那么这个路径被解释为相对远程机上同名用户的主目录。如果没有给出远程用户名,就使用当前用户名。如果远程机上的路径包含特殊shell字符,需要用反斜线(\)、双引号(”)或单引号(’)括起来,使所有的shell元字符都能被远程地解释。需要说明的是,rcp不提示输入口令,它通过rsh命令来执行拷贝。
    • directory 每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式:[email protected]:path,其中rname是远程用户名,rhost是远程计算机名,path是这个文件的路径
  • 实例
    rcp local_file remote_hostname:remote_fileEnter
    rcp remote_hostname:remote_file local_fileEnter

scp(secure copy)

scp传输是加密的

  • 命令格式: scp [参数] [原路径] [目标路径]
  • 命令参数
    • -1 强制scp命令使用协议ssh1
    • -2 强制scp命令使用协议ssh2
    • -4 强制scp命令只使用IPv4寻址
    • -6 强制scp命令只使用IPv6寻址
    • -B 使用批处理模式(传输过程中不询问传输口令或短语)
    • -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
    • -p 保留原文件的修改时间,访问时间和访问权限。
    • -q 不显示传输进度条。
    • -r 递归复制整个目录。
    • -v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
    • -c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
    • -F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
    • -i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
    • -l limit 限定用户所能使用的带宽,以Kbit/s为单位。
    • -o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
    • -P port 注意是大写的P, port是指定数据传输用到的端口号
    • -S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
  • 实例
    • 从本地服务器复制到远程服务器

      scp local_file remote_username@remote_ip:remote_folder/file
      scp local_file remote_ip:remote_folder/file 
    • 从远程服务器复制到本地服务器
      scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/

route/traceroute/netstat/ss

待续。。。

时间: 2024-10-17 21:23:32

Linux命令进阶的相关文章

linux命令-进阶1

Linux查看系统信息的一些命令及查看已安装软件包的命令 centos下如何查看某个软件是否安装http://www.landui.com/help/show-3959.html

linux 命令进阶

1. ls –i -i, --inode            显示每个文件的inode 号 查看inode 可以用于 同一个classloader加载同名class时,是以先加载到的class为准,如何判断先加载到是靠indeo的编号是否是小的 删除文件名有特殊字符的时候 可以用inode号删除  如:$ find . -inum 342137 -exec rm -i {} /;

Linux 基础命令 命令进阶

Linux命令格式:命令 选项 参数 (大部分命令是这个格式) 注意: 1.命令区分大小写 2.短选项可以合并   长选项不能合并 如 : 短选项 -l  -h 可以合并为 -lh 长选项  不能合并 1. ls :列出文件信息,默认为当前目录下 常用选项: -a: 列出所有的文件,包括所有以.开头的隐藏文件 -d: 列出目录本身,并不包含目录中的文件 -h: 和-l一起使用,文件大小人类易读 -l: 长输出 2. man :命令帮助使用手册 使用格式: man 命令 在man命令帮助信息的界面

分布式进阶 十 linux命令行下载文件以及常用工具 wget Prozilla MyGet Linuxdown Cu

linux命令行下载文件以及常用工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 本文介绍常用的几种命令行式的下载工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 下面就为大家详细介绍一下这些工具. 1. Wget Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具.如果没有安装可在http://www.gnu.org/software/wget/wget.html 下载最新版本. 1.1 编译安

《Linux命令行与shell脚本编程大全》学习笔记(转)

第一部分:Linux命令行<Linux命令行与shell脚本编程大全> 第一章:初识Linux shell<Linux命令行与shell脚本编程大全> 第二章:走进shell<Linux命令行与shell脚本编程大全> 第三章:基本的bash shell命令<Linux命令行与shell脚本编程大全> 第四章:更多的bash shell命令<Linux命令行与shell脚本编程大全> 第五章:使用Linux环境变量<Linux命令行与she

《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf

下载地址:网盘下载 内容简介  · · · · · · 本书是一本关于Linux 命令行与shell 脚本编程的全面教程.全书分为四部分:第一部分介绍Linuxshell 命令行:第二部分介绍shell 脚本编程基础:第三部分深入探讨shell 脚本编程的高级内容:第四部分介绍如何在现实环境中使用shell 脚本.本书不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料. 本书内容全面,语言简练,示例丰富,适合于linux 系统管理员及Linux 爱好者阅读

Linux初学者进阶学习资源整理

Linux初学者进阶学习资源整理 实验楼分享的Linux学习路径,用图文并茂的形式清晰直观的告诉了Linux初学者该如何从一个新手小白进阶成为Linux高手. 不过这条Linux学习路径到底只是一个学习计划,没能有详细的教程提供给大家学习.回想之前写的(干货)Linux学习资源推荐,也只是比较全面的列举了可以学习Linux的地方. 于是乎便有了这篇Linux初学者进阶学习资源整理,将会按照学习路径的知识点学习为大家提供详细的教程(不限于视频.书籍.网络教程.技术博客等资源). Linux初级入门

Linux学习总结(1)——Linux命令大全完整版

Linux命令大全完整版 目    录I 1. linux系统管理命令1 adduser1 chfn(change finger information)1 chsh(change shell)1 date2 exit3 finger4 free5 fwhois5 gitps(gnu interactive tools process status)5 groupdel(group delete)6 groupmod(group modify)6 halt7 id7 kill8 last8 la

《Linux命令行与shell脚本编程大全 第3版》

第一部分 Linux 命令行 第1章  初识Linux she1.1   什么是Linux 21.1.1 深入探究Linux 内核 31.1.2 GNU 工具 61.1.3 Linux 桌面环境 81.2   Linux 发行版 121.2.1 核心Linux 发行版 131.2.2 特定用途的Linux 发行版 131.2.3 Linux LiveCD 141.3   小结 15 第2章  走进shell2.1   进入命令行 162.1.1 控制台终端 172.1.2 图形化终端 172.2