linux基础命令:
命令格式:命令 -选项 参数1)关机命令: shutdown # -h 关机 # -r 重启 # -c 取消前一个关机命令 # -now 立即关机 halt poweroff init 02)重启命令: reboot init 63)文件处理命令: pwd # 功能:显示当前工作目录(print working directory) mkdir 目录 # 功能:(make directoriy)创建目录 # -p 父目录不存在的情况下先生成父目录 touch # 功能:创建空文件 rm fileName # 功能:删除文件 # -r(recursive) 同时删除该目录下的所有文件 # -f(force) 强制删除文件或目录 rmdir # 功能:删除空目录 cp 原文件或目录 目标文件 # 功能:复制文件或目录 # -r 复制目录; # -p 保留文件属性; ln 原文件 目标文件 # 功能:建立链接文件 # -s(symbolic) 对源文件建立符号连接,而非硬连接 mv 原文件 目标目录 # 功能:移动文件、文件改名 cat fileName # 功能:(catenate)显示文件的内容 # -n 显示行号 cat file1 >> file2 # 把file1的内容输出追加到file2的末尾 tac fileName # 功能:从最后一行开始显示文件的内容 more fileName # 功能:分页显示文件的内容 less fileName # 功能:分页显示文件的内容(可向上翻页) head fileName # 功能:查看文本中开头的几行 # -n 指定行数 tail fileName # 功能:查看文件的最后的几行 # -n 指定行数 # -f 动态显示文件末尾内容(滚动式) eg: tail -f fileName # 等同于tail --follow=descriptor fileName # 根据文件描述符进行追踪(动态显示文件末尾内容),当文件改名或被删除,追踪停止。 tail -F fileName # 等同于tail --follow=name --retry fileName # 根据文件名进行追踪(动态显示文件末尾内容),并保持重试,当文件改名或被删除后,如果再次创建相同名称的文件,会继续追踪。 wc fileName #功能:(word count)统计文本文件的行数、字数、字符数 # -l 统计行数 # -c 统计字节数 # -m 统计字符数,不能与-c同时使用 # -w 统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串。 rz # 运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器 # 说明:rz、sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具 # 注意:rz、sz需要终端支持(XShell、SecureCRT),如果是在虚拟机中安装的linux系统上直接使用rz、sz则会出现一行乱码,并且无法输入指令,超时后即可恢复到正常情况。 # 安装命令:yum install lrzsz eg:rz 文件名 注意:如果文件名中包含空格,则使用反斜杠\转义。eg: 中国 的伟大.txt ===> rz 中国\ 的伟大.txt sz fileName # 将指定的文件保存到本地机器 4)文件搜索命令 find [搜索范围] [匹配条件] 举例:find /home/jxn -name man 从指定目录开始搜索名字为man的文件或目录 grep [指定字串] fileName # 功能:在指定的文件中查找包含特定字符串的文本行 # -i 不区分大小写 # -v 查询不包含特定字符串的文本行(反向查找) # -o 查询结果的文本行中只显示指定的字符串(show only the part of a line matching PATTERN), # 即:结果中每个文本行的内容都是指定的字符串,如果指定的字符串在文件的一行中出现多次,则将其分成多行进行展示。 # --color=auto 搜索出的关键字用颜色显示 eg: grep -o word catalina.out.xxxx-xx-xx | wc -l # 查询字符串"word"在catalina.out.xxxx-xx-xx文件中出现的次数。 whereis command # 功能:搜索命令所在目录及帮助文档路径 which command # 功能:搜索命令所在目录及别名信息 locate fileName # 功能:在文件资料库中查找文件 5)系统管理命令 stat # 功能:显示文件的相关信息,比ls命令显示的更详细 who # 功能:显示在线登录用户 whoami # 功能:显示用户自己的身份 hostname # 功能:显示主机名称 uname # 功能:显示系统信息 top # 功能:系统监视器(相当于windows下的任务管理器),查看每个进程的情况 # 查看每个CPU的性能数据:输入top并回车后,再输入数字1 ps # 功能:显示瞬间的进程状态 # -a 显示所有用户的所有进程(包括其它用户) # -u 显示启动这个进程的用户和它启动的时间 # -x 显示系统中属于自己的进程 ps -ef # 显示所有的进程,显示的项目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD ps aux # 显示所有的进程,显示的项目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMAND kill # 功能:杀死一个进程 free # 功能:显示当前内存和交换空间的使用情况 6)文件系统管理命令 mount [-t 文件系统] 设备文件名 挂载点 # 功能:挂载设备 # -t (type)文件系统的类型 # 文件系统: # ext2、ext3、ext4:linux目前常用的文件系统 # msdos、MS-DOS的fat(fat16) # vfat、U盘及windows98常用的fat32 # nfs:网络文件系统 # iso9660:CD-ROM光盘标准文件系统 df # 功能:查看文件系统磁盘空间的使用情况 # -a 显示所有的文件系统信息 # -h(human-readable) 使用KB、MB、GB等显示容量 # -k、-m 以KB、MB显示容量 # -T显示文件系统类型 eg: df -h # 查看文件系统磁盘空间的使用情况 du 目录或文件名 # 功能:显示指定的文件或目录已使用的磁盘空间的总量 # -h:以人类可读的方式显示,即自动选取合适单位(G、M、K)来显示大小 # -a 显示每个子文件的磁盘占用量 # -s(summarize) 统计总占用量,而不列出子目录和子文件 fdisk -l # 功能:查看硬盘列表 fdisk /dev/sdb # 功能:使用fdisk命令分区 #fdisk交互指令说明 # -a 设置可引导标记 # -b 编辑bsd磁盘标签 # -c 设置DOS操作系统兼容标记 # -d 删除一个分区 # -l 显示已知的文件系统类型。82为Linux swap分区,83为Linux分区 # -m 显示帮助菜单 # -n 新建分区 # -o 建立空白DOS分区表 # -p 显示分区列表 # -q 不保存退出 # -s 新建空白SUN磁盘标签 # -t 改变一个分区的系统ID # -u 改变显示记录单位 # -v 验证分区表 # -w 保存退出 # -x 附加功能(仅专家) mkfs -t ext4 /dev/sdb1 # 功能:格式化分区 fsch 分区设备文件名 # 功能:修复文件系统 7)网络命令 ping IP地址 # 功能:测试网络连通性 # -c 指定发送次数 ifconfig 网卡名称 IP地址 # 功能:(interface configure)查看和设置网络接口(网卡)信息 netstat # 功能:显示网络状态信息 # -a 显示所有连接和监听端口 # -t(tcp) 仅显示tcp相关选项 # -u(udp) 仅显示udp相关选项 # -l 监听 # -r 路由 # -n 以数字的形式显示;显示IP地址和端口号 # -p 显示建立相关链接的程序名 setup # 配置网络 mail userName # 查看发送电子邮件 write userName # 给用户发信息,以Ctrl+D保存结束 wall message # 发广播信息,wall(即write all) last # 列出目前与过去登入系统的用户信息 8)用户和组账户管理 概念:linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。 说明:系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。 1)用户命令: useradd 用户名 # 功能:添加用户 # -d 指定用户的家目录 # -u 指定UID # -g 指定所属的组GID # -G 指定多个组,用逗号分开 # -p 密码 # -c (comment)用户描述 # -e (expire date)失效时间 passwd 用户名 # 功能:修改密码 usermod 新用户名 旧用户名 # 功能:修改用户 # -l (login)修改登录名 # -L 锁定用户账密码 # -U 解锁用户账号 userdel 用户名 # 功能:删除用户 # -r (recursive)删除用户时连同目录一并删除 2)用户组命令: groups # 功能:显示用户所属的组 groupadd 组名 # 功能:添加组 # -g 指定GID groupmod # 功能:修改组 # -n (name)修改组名 groupdel # 功能:删除组 3)用户相关配置文件: /etc/passwd 说明:保存用户信息的文件 查看:man 5 passwd 格式:account:password:UID:GID:GECOS:directory:shell 用户名: 登陆系统的用户名 密码: 密码位 UID: 用户标识号 GID: 默认组标识号 描述信息: 用户的描述信息 宿主目录: 用户登陆系统的默认目录,默认是在/home/下 命令解析器:用户使用的Shell,默认是bash /etc/shadow 说明:保存密码的文件 查看:man 5 shadow 格式: 用户名: 登陆系统的用户名 密码: 加密密码 最后一次修改时间: 用户最后一次修改密码距现在的天数,从1970-1-1起 最小时间间隔: 两次修改密码之间的最小天数 最大时间间隔: 密码有效天数 警告时间: 从系统警告到密码失效的天数 账号闲置时间: 账号闲置时间 失效时间: 密码失效的天使 标志: 标志 /etc/group 说明:保存用户组的文件 格式: 组名: 用户所在的组 组密码: 密码位,一般不使用 GID: 组标识号 组内用户列表: 属于该组的用户列表 /etc/gshadow 说明:保存用户组密码的文件 /etc/default/useradd 说明:用户配置文件 4)用户的分类: 超级用户: root(UID=0) 普通用户: UID:500~60000 伪用户: UID:1~499 说明:伪用户不能登录系统,而且没有宿主目录。9)文件的权限管理: 1)三种基本权限: r (rean)读权限 w (write)写权限 x (execute)执行权限 - 表示没有任何权限 s 特殊权限 2)文件的属性: 第一部分(权限属性): 第1位: 文件的类型(d表示目录、-表示普通文件、l表示链接文件) 第2-4位: 所属用户权限, 用u表示(user) 第5-7位: 所属组权限, 用g表示(group) 第8-10位: 其他用户权限, 用o表示(other) 第2-10位: 表示所有用户的权限,用a表示(all) 第二部分:文件的链接数 第三部分:文件的拥有者 第四部分:文件所属的组 第五部分:文件的大小 第六部分:文件最后被修改的时间 第七部分:文件的名称 3)命令: chown 用户名 文件名 # 功能:(change owner)修改文件的拥有者 # -R (recursive)下面的文件和子目录做相同的权限操作 chgrp 组名 文件名 # 功能:(change group)修改文件的所属的组 chmod # 功能:(change mode)修改文件的权限 # 说明:权限有两种表示方法: 1)用符号表示权限: chmod 权限的范围(u、g、o、a) 操作符(+、-、=) 文件名 # 权限的范围:u表示所属用户的权限,g表示组权限,o表示其它用户的权限、a表示所有用户的权限 # 操作符:+表示添加,-表示除去,=表示重置 # 举例:chmod u+x jdk-6u45-linux-x64.bin 2)用数字表示权限: chmod 代表权限的三位数字 文件名 # r用4来表示,w用2来表示,x用1来表示,-用0来表示;即:rwx=7,rw-=6,r-x=5,r--=4,-w-=2,--x=1,---=0 # 举例:chmod 760 test.txt 例子: chmod u+s nginx # 为了方便普通用户执行一些特权命令,SUID/SGID程序允许普通用户以root身份暂时执行该程序,并在执行结束后再恢复身份。 # chmod u+s 就是给某个程序的所有者以suid权限,可以像root用户一样操作 10)RPM软件包管理 概念: 1)RPM即RedHat Package Manager(RedHat软件包管理工具)的缩写。 2)YUM(Yellow dog Updater, Modified),是一个shell前段软件包管理器。 说明:YUM基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。 rpm命令: rpm 包名 # -i 安装。注意:安装的时候需要使用包的全限定名。 # -e (erase)卸载 # -v (verbose)显示详细信息 # -h (hash)显示进度条 # -q (query) 查询该包是否安装 # -qa (query all)查询所有已安装的软件包 # -l (list)use a long listing format # -R (requires) 查询软件包的依赖性 # -p (package) 查询未安装包信息 # --nodeps 不检测依赖性 eg:查询软件安装的目录:rpm -qal | grep 软件名 yum命令: yum install gcc-c++ yum update gcc-c++ yum remove gcc-c++ 常用工具: yum -y install wget 更新163 yum源 cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.backup wget http://mirrors.163.com/.help/CentOS6-Base-163.repo yum clean all yum makecache yum update11)Linux下的压缩命令: tar 压缩后的文件名 要压缩的目标文件 # -c (create)建立一个新打包文件 # -C 指定文件解压后存储的目录 # -f file 指出需要打包的文件 # -z 打包同时用gzip压缩(与-x并存时,表示解压xxx.tar.gz) # -j 打包同时用bzip2压缩(与-x并存时,表示解压xxx.tar.bzip2) # -x extract(提取) 解包*.tar文件 # -v verbose 以详细模式显示命令执行过程 # -t 查看压缩文件中的内容 # 说明: 1)在参数列表中:c、x、t 仅能存在一个,不可同时存在! 2)一般以.tar后缀名来标示打包后的文件,以.tar.gz或.tgz来标示gzip压缩过的tar文件,以.tar.bz2来标示bzip2压缩过的tar文件。 # 举例:将/home/jxn/familyA目录下的所有文件全部打包为/home/jxn/familyA.tar 1)仅打包,不压缩:tar -cf /home/jxn/familyA.tar /home/jxn/familyA 2)打包后,以gzip压缩:tar -zcf /home/jxn/familyA.tar.gz /home/jxn/familyA 3)打包后,以bzip2压缩:tar -jcf /home/jxn/familyA.tar.bz2 /home/jxn/familyA 4)查看压缩文件中的内容: tar -tf familyA.tar tar -tf familyA.tar.gz 或 tar -ztf familyA.tar.gz tar -tf familyA.tar.bz2 或 tar -jtf familyA.tar.gz 5)解压: tar -xf familyA.tar tar -xf familyA.tar.gz 或 tar -zxvf familyA.tar.gz tar -xf familyA.tar.bz2 或 tar -jxvf familyA.tar.bz2 常用:tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/ zip 压缩后的文件名 要压缩的目标文件 unzip 要解压的压缩文件 # -d 文件解压后存储的目录 # eg:unzip -d /data/tempFile test.war 将test.war解压到/data/tempFile目录下 # 使用jdk提供的jar命令也可以解压war包:jar -xvf test.war gzip 目标文件名 # gzip即:GNU zip # -c 压缩后将结果输出到标准输出,并保留到原始文件;由于选项c会将压缩结果输出到标准输出,因此需要使用重定向方式保存压缩结果 # -d (decompress)解压。或者:gunzip 要解压的.gz文件名 # -l 显示压缩文件的详细信息:压缩文件的大小、未压缩文件的大小、压缩比等。 # -r 递归地压缩目录中的所有文件:只压缩目录下的所有文件以及其子目录下的所有文件,而目录和子目录并没有压缩。 # -0→9:表示压缩率,1表示最小压缩率,压缩速度最快;默认值是6 # 举例: 1)把/home/jxn目录下的familyA目录下所有文件压缩成.gz文件 tar -cvf /home/jxn/familyA.tar /home/jxn/familyA gzip familyA.tar 进行压缩 # 说明:gzip不能直接对目录进行压缩,因此必须先打包 2)gzip -c9 test.tar > test.tar.gz bzip2 目标文件名 # -k 压缩、解压缩完成之后,保留原始文件 # -d (decompress)解压。或者:bunzip2 要解压的.tar.bz2文件名 # 举例:把/home/jxn目录下的familyA目录下所有文件压缩成.bz2文件 tar -cvf /home/jxn/familyA.tar /home/jxn/familyA bzip2 familyA.tar # 说明:bzip2不能直接对目录进行压缩,因此必须先打包