首页 文章 精选 留言 我的

精选列表

搜索[常用命令],共667篇文章
优秀的个人博客,低调大师

Linux常用命令-文件搜索命令

文件搜索命令 1、find /usr/bin/find #查找文件或目录,任何文件皆可,如图片,压缩包等 语法:find[搜索路径][搜索选项]filename a) find/etc-name文件名 //-name最常见的选项 按文件名搜索 eg:find/etc-nameinit //在目录/etc中查找文件init文件 注意: 1-尽量缩小查找范围,不要在根目录下查找,不然:查找速度非常慢;占用大量系统资源. 2-占用系统资源越少越好,而且尽量在服务器压力较小时用find进行查找. 3- find/etc-name文件名 查找结果与Windows不同,如:Windows会把所有包含init关键词的文件全都列出来而Linux则只会匹配init关键词 4-使用通配符: *用于匹配任意字符 find/etc-nameinit* //查找所有以init开头的文件 *匹配任意字符 find/etc-name*init* //init左右都没有空格,用于查找所有包含init关键词的文件 ?:用于匹配单个字符 find/etc-nameinit??? //这个文件会有七个字符,?匹配单个字符 find/etc-name?init?? // find/etc -iname?init?? // 搜索时不区分大小写 b)find/etc-size文件大小 //以数据块为单位的! 1数据块=512字节=0.5KB, 1K=2Blocks 100M=?blocks 100M=102400K=102400*2blocks E.g find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件 find/etc-size-204800 #在/etc下查找大于80MB小于100MB的文件 find/etc-size204800 #在/etc下查找等于100MB的文件,不常用! c)find/etc-userusername 更具所有者查找 d)通过时间属性查找: 1、以天为单位: ctime,atime,mtime 2、以分钟为单位: cmin,amin,mmin //更为常用 c-change 改变:表示文件的属性被修改过,比如:所有者,所属组,权限 a-access 访问:文件被浏览过 m-modify 修改:文件内容被修改过 -多长时间之内,+超过多少时间 E.g. find/etc-mtime-1 find/etc-amin-60 //60分钟内被访问过的 find/home-cmin-120 e)find/etc-type文件类型 //根据文件类型查找 f 二进制文件 l 软链接文件 d 目录 eg: find /etc -name init* -a -type f f)-inum //根据i节点进行查找 新建的文件不好删除可以通过删除i节点 E.g. touch---abc #删除:rm---abc touch“ab” #删除:rm“ab” ls -i find.-inum159341 / /注意点表示当前目录 find.-inum159341-execrm-f{}\; //i节点为159341的文件,并删除它 附-find连接符: 1、 -a:and 逻辑与 -o:or 逻辑或 E.g. find/etc-size+163840-a-size204800 #查找>80M,<100M的文件 find/etc-nameinit*-a-typef #查找名为init并且为二进制的文件,并不包含目录 2、find…..-exec命令{}\; #固定格式,只能这样来写 {} :find的查询结果 \ :转义符-使得符号命令使用本身的含义 ; :语句结束 e.g. find/etc-nameinittab-execls-l{}\; //在/etc下查找inittab文件并显示其详细信息 find/home-usersax-execrm-rf{}\; //删除用户sax所有的文件 find/home-usersax-okls-l{}\; //-ok连接符,所有的目录,每一条都需要确认 find/etc-nameinit*-okrm-rf{}\; //删除时询问 find/etc-nameinit*-okrm-f{}\; //删除时询问 2、locate[listfileindatabases]: /usr/bin/locate 在文件资料库中查找文件 格式:locate[搜索关键字] 说明: #是Linux所特有的命令,寻找文件或目录,最好用于快速定位系统命令,配置文件等 #虽然搜索速度很快,但有时候会找不到 #locate是在文件数据库中查找的,所以速度会很快 #但是如果数据库没有及时更新,他就会找不到, 更新资料库 updatedb[updateadatabaseformlocate]: /usr/bin/updatedb 注意:tmp中文件是不在文件资料库,locate区分大小写 locate -i name 不区分大小写 注意:其执行权限为:root!!! 3、which /usr/bin/which //显示系统命令所在目录,绝对目录,不能查找文件 格式:which[系统命令] //还可以看到别名 e.g. whichls 附-whereis:也可以查找到命令的绝对路径 与whereis不同,which会列出这个命令的别名记录,而whereis还会显示出这个命令的帮助文档所在位置 /usr/share 4、grep: /bin/grep //在文件中搜寻字串匹配的行并输出 格式: grep[指定字串][源文件] //区分大小写 grep-i[指定字串][源文件]//不区分大小写 grep-v ^#[源文件] // -v 排除以关键字开始的行,这里是以#开始的行 E.g. grepftp /etc/services

优秀的个人博客,低调大师

Linux常用命令大全(新手入门)

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备 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 注销 文件和目录 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 -f file1 删除一个叫做 'file1' 的文件' rmdir dir1 删除一个叫做 'dir1' 的目录' 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 显示一个二进制文件或可执行文件的完整路径 挂载一个文件系统 mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在 umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出 fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件 mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统 mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备 mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享 磁盘空间 df -h 显示已经挂载的分区列表 ls -lSr |more 以尺寸大小排列文件和目录 du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间' du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小 rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统) dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统) 返回顶部索引 ^ 用户和群组 groupadd group_name 创建一个新用户组 groupdel group_name 删除一个用户组 groupmod -n new_group_name old_group_name 重命名一个用户组 useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户 useradd user1 创建一个新用户 userdel -r user1 删除一个用户 ( '-r' 排除主目录) usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性 passwd 修改口令 passwd user1 修改一个用户的口令 (只允许root执行) chage -E 2005-12-31 user1 设置用户口令的失效期限 pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户 grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组 newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组 返回顶部索引 ^ 文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消 ls -lh 显示权限 ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示 chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限 chown user1 file1 改变一个文件的所有人属性 chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 chgrp group1 file1 改变文件的群组 chown user1:group1 file1 改变一个文件的所有人和群组属性 find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件 chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限 chmod u-s /bin/file1 禁用一个二进制文件的 SUID位 chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的 chmod g-s /home/public 禁用一个目录的 SGID 位 chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 chmod o-t /home/public 禁用一个目录的 STIKY 位 返回顶部索引 ^ 文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消 chattr +a file1 只允许以追加方式读写文件 chattr +c file1 允许这个文件能被内核自动压缩/解压 chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件 chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 chattr +s file1 允许一个文件被安全地删除 chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 lsattr 显示特殊的属性 返回顶部索引 ^ 打包和压缩文件 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格式压缩包 返回顶部索引 ^ RPM 包 - (Fedora, Redhat及类似系统) rpm -ivh package.rpm 安装一个rpm包 rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告 rpm -U package.rpm 更新一个rpm包但不改变其配置文件 rpm -F package.rpm 更新一个确定已经安装的rpm包 rpm -e package_name.rpm 删除一个rpm包 rpm -qa 显示系统中所有已经安装的rpm包 rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包 rpm -qi package_name 获取一个已安装包的特殊信息 rpm -qg "System Environment/Daemons" 显示一个组件的rpm包 rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表 rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表 rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表 rpm -q package_name --whatprovides 显示一个rpm包所占的体积 rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l rpm -q package_name --changelog 显示一个rpm包的修改历史 rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供 rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表 rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书 rpm --checksig package.rpm 确认一个rpm包的完整性 rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性 rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间 rpm -Va 检查系统中所有已安装的rpm包- 小心使用 rpm -Vp package.rpm 确认一个rpm包还未安装 rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件 rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包 rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包 返回顶部索引 ^ YUM 软件包升级器 - (Fedora, RedHat及类似系统) yum install package_name 下载并安装一个rpm包 yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系 yum update package_name.rpm 更新当前系统中所有安装的rpm包 yum update package_name 更新一个rpm包 yum remove package_name 删除一个rpm包 yum list 列出当前系统中安装的所有包 yum search package_name 在rpm仓库中搜寻软件包 yum clean packages 清理rpm缓存删除下载的包 yum clean headers 删除所有头文件 yum clean all 删除所有缓存的包和头文件 返回顶部索引 ^ DEB 包 (Debian, Ubuntu 以及类似系统) dpkg -i package.deb 安装/更新一个 deb 包 dpkg -r package_name 从系统删除一个 deb 包 dpkg -l 显示系统中所有已经安装的 deb 包 dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包 dpkg -s package_name 获得已经安装在系统中一个特殊包的信息 dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表 dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表 dpkg -S /bin/ping 确认所给的文件由哪个deb包提供 返回顶部索引 ^ APT 软件工具 (Debian, Ubuntu 以及类似系统) apt-get install package_name 安装/更新一个 deb 包 apt-cdrom install package_name 从光盘安装/更新一个 deb 包 apt-get update 升级列表中的软件包 apt-get upgrade 升级所有已安装的软件 apt-get remove package_name 从系统删除一个deb包 apt-get check 确认依赖的软件仓库正确 apt-get clean 从下载的软件包中清理缓存 apt-cache search searched-package 返回包含所要搜索字符串的软件包名称 返回顶部索引 ^ 查看文件内容 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 比较两个文件的内容只删除两个文件共有的部分 返回顶部索引 ^ 字符设置和文件格式转换 dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS recode ..HTML < page.txt > page.html 将一个文本文件转换成html recode -l | more 显示所有允许的转换格式 返回顶部索引 ^ 文件系统分析 badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块 fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性 fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性 fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 返回顶部索引 ^ 初始化一个文件系统 mkfs /dev/hda1 在hda1分区创建一个文件系统 mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统 mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统 mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统 fdformat -n /dev/fd0 格式化一个软盘 mkswap /dev/hda3 创建一个swap文件系统 返回顶部索引 ^ SWAP文件系统 mkswap /dev/hda3 创建一个swap文件系统 swapon /dev/hda3 启用一个新的swap文件系统 swapon /dev/hda2 /dev/hdb3 启用两个swap分区 返回顶部索引 ^ 备份 dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份 dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份 restore -if /tmp/home0.bak 还原一个交互式备份 rsync -rogpav --delete /home /tmp 同步两边的目录 rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录 rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录 dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作 dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件 tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作 ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容 ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录 tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接 find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录 find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包 dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作 dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容 返回顶部索引 ^ 光盘 cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容 mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件 mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件 mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件 cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件 gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件 mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件 cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中 cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3) cdrecord --scanbus 扫描总线以识别scsi通道 dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD 返回顶部索引 ^ 网络 - (以太网和WIFI无线) ifconfig eth0 显示一个以太网卡的配置 ifup eth0 启用一个 'eth0' 网络设备 ifdown eth0 禁用一个 'eth0' 网络设备 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址 ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing) dhclient eth0 以dhcp模式启用 'eth0' route -n show routing table route add -net 0/0 gw IP_Gateway configura default gateway route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16' route del 0/0 gw IP_gateway remove static route echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing hostname show hostname of system host www.example.com lookup hostname to resolve name to ip address and viceversa(1) nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2) ip link show show link status of all interfaces mii-tool eth0 show link status of 'eth0' ethtool eth0 show statistics of network card 'eth0' netstat -tup show all active network connections and their PID netstat -tupl show all network services listening on the system and their PID tcpdump tcp port 80 show all HTTP traffic iwlist scan show wireless networks iwconfig eth1 show configuration of a wireless network card hostname show hostname host www.example.com lookup hostname to resolve name to ip address and viceversa nslookup www.example.com lookup hostname to resolve name to ip address and viceversa whois www.example.com lookup on Whois database GO TOP INDEX ^ Microsoft Windows networks (SAMBA) nbtscan ip_addr netbios name resolution nmblookup -A ip_addr netbios name resolution smbclient -L ip_addr/hostname show remote shares of a windows host smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share

优秀的个人博客,低调大师

11.Linux shell编程(常用命令

(创建于2018/1/31) 文件操作 1.显示列表 ls -l 以列表的形式显示 ls -la 以列表的形式显示所有,包括隐藏文件 ls -l ja* 通配符查找,查找的如果是文件夹结果是以列表形式显示文件夹下第一层的所有文件和文件夹 ls -l ja? ?表示一个字符,查找ja后边只有一个字符的,显示的结果同上 ls -l 和 ls -la的区别,ls -la可以显示隐藏文件 611949796.png s -l xx*通配符查找的是 满足条件的目录下的所有文件列表 612113484.png 2.创建文件 touch ren.txt 在当前目录创建ren.txt文件 3.复制文件 cp src.txt dest.txt 将src.txt文件复制到当前目录下,文件名为dest.txt cp -i src.txt dest.txt 复制前询问是否复制,有一个确认的过程(我在linux云主机上尝试的没有提示,效果同上边的命令) cp /xxx/xxx . 复制某一目录下某一文件到当前目录下,注意如果要复制本目录下到当前目录也就是本目录是不行的,会有提示 cp -R src dest 复制整个目录src到dest 目录下 (R有的地方区分大小写) 4.删除 rm -rf ndk/ rm:删除命令 -r开关:递归地删除子目录和子目录中的文件 -f开关:强制删除,不再一一向用户提示确认 * 所有文件和文件夹 rm file 删除文件file echo "ren" 输出ren 6.查看文件类型 file 文件名 7.查看文件内容 cat 文件名 功能跟vim差不多,不过cat打开只能读,不能编辑(more命令也可以查看) cat -b 文件名 查看文件,显示行号 tail -n 10 文件名 查看文件最后十行 head -n 10 文件名 查看文件最前边十行 8.创建用户 useradd -m renzhenming 创建用户renzhenming,同时创建renzhenming用户的home目录 userdel -r renzhenming 删除用户 9.创建组 groupadd 组名 10.分配用户到组 usermod -G 组名 用户名 12.文件权限 704394750.png 如上截图 r:读 w:写 x:执行 d:目录 以上边user目录权限为例 d后边第一个三位表示文件所属用户具备的权限(rwx 具备读写执行的最高权限) d后边第二个三位表示文件所属用户的所属组具备的权限(r-x具备读执行的权限)-表示0 d后边最后一个三位表示系统的其他用户具备的权限(r-x具备读执行的权限) 以往简单粗暴的赋权方式chmod 777 file不安全,我们需要根据需要设置root用户以及组和其他用户的权限 数字对应关系如下: 权限 二进制 八进制 --- 000 0 --x 001 1 -w- 010 2 -wx 011 3 r-- 100 4 r-x 101 5 rw- 110 6 rwx 111 7 rwx必须是固定顺序 修改文件权限 chmod 644 file 给用户加上执行权限 chmod u+x file //(chmod是权限管理命令change the permissions mode of a file的缩写。。u代表所有者,x代表执行权限。 + 表示增加权限。chmod u+x file.sh 就表示对当前目录下的file.sh文件的所有者增加可执行权限) tar命令的详细解释 参数: -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 --delete从存档中删除 注意是两个减号。 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 下面是例子 1.压缩一个目录 eg: tar -cvzf test.tar.gz tar #压缩当前目录下的tar目录,压缩包的名字叫test.tar.gz 2.压缩其中某一类型的文件 eg: tar -cvzf test.tar.gz ./*.c #压缩当前目录下的.c为后缀的文件。但是不能压缩以.开头的文件 3.查看一个压缩文件的内容 eg: tar -tvf test.tar.gz #查看当前目录下test.tar.gz压缩文件中的文件 4.解压一个文件 eg. tar -xvzf test.tar.gz #解压test.tar.gz到当前目录下面 5.文件夹做一个归档文件、备份一个目录、 eg: tar -cvf test.tar tar #将tar文件夹下的文件生成一个test.tar归档文件 6.将某一类型的文件做成归档文件、备份某一类型的文件 eg:tar -cvf test.tar ./tar/*.c # 将tar文件夹下所有以.c结尾的文件放到test.tar 文件中,但是以.开头的文件不行 7.向归档文件中添加一个文件夹 eg: tar -rf test.tar ./test1 #将test1文件夹中的所有文件,添加到test.tar 归档文件中 8.删除归档文件中的文件 eg: tar -f test.tar --delete a.c #删除test.tar文件中的 a.c文件 9.删除归档文件中的某一类的文件 eg: tar -f test.tar --delete *.c #删除test.tar文件中的 以.c结尾的文件 10.释放归档文件 eg: tar -xvf test.tar #释放test.tar归档文件中的内容到 当前目录下 11.查看归档文件中的内容 eg: tar -tvf test.tar 总结 1、*.tar 用 tar –xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压 3、*.tar.gz和*.tgz 用 tar –xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用tar –xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用tar –xZf 解压 8、*.rar 用 unrar e解压 9、*.zip 用 unzip 解压

优秀的个人博客,低调大师

linux下常用命令查看端口占用

在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询 netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。 -n : 不进行DNS轮询,显示IP(可以加速操作) 即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况·· netstat -ntlp //查看当前所有tcp端口· netstat -ntulp |grep 80 //查看所有80端口使用情况· netstat -ntulp | grep 3306 //查看所有3306端口使用情况· Linux查看程序端口占用情况 使用命令: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程。 使用命令:netstat –apn 查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name 发现8080端口被PID为9658的Java进程占用。 进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看 就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉! 方法二:直接使用 netstat -anp | grep portno 即:netstat -anp|grep 8080 netstat -anp|grep 8080 --> tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 28500/java ps -aux | grep 28500 --> r/local/tomcat9-jforum/tomcat 安装lsof list open files//---也可以 netstat -tunlp|grep 端口号 netstat -anp|grep 端口号 yum install lsof lsof -i:8080 查看8080端口占用 lsof abc.txt 显示开启文件abc.txt的进程 lsof -c abc 显示abc进程现在打开的文件 lsof -c -p 1234 列出进程号为1234的进程所打开的文件 lsof -g gid 显示归属gid的进程情况 lsof +d /usr/local/ 显示目录下被进程开启的文件 lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长 lsof -d 4 显示使用fd为4的进程 lsof -i 用以显示符合条件的进程情况 lsof -i[46] [protocol][@hostname|hostaddr][:service|port] 46 --> IPv4 or IPv6 protocol --> TCP or UDP hostname --> Internet host name hostaddr --> IPv4地址 service --> /etc/service中的 service name (可以不止一个) port --> 端口号 (可以不止一个) lsof -i //显示所有打开的端口 lsof -i:80 //显示所有打开80端口的进程 lsof -i -U //显示所有打开的端口和UNIX domain文件 其实我一般这样用: [root@VM_39_230_centos bin]# lsof -i:3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 16422 mysql 19u IPv6 148794 0t0 TCP *:mysql (LISTEN) mysqld 16422 mysql 39u IPv6 643698 0t0 TCP localhost:mysql->localhost:36582 (ESTABLISHED) mysqld 16422 mysql 45u IPv6 643699 0t0 TCP localhost:mysql->localhost:36584 (ESTABLISHED) mysqld 16422 mysql 46u IPv6 643700 0t0 TCP localhost:mysql->localhost:36586 (ESTABLISHED) mysqld 16422 mysql 47u IPv6 643702 0t0 TCP localhost:mysql->localhost:36588 (ESTABLISHED) mysqld 16422 mysql 48u IPv6 643704 0t0 TCP localhost:mysql->localhost:36590 (ESTABLISHED) java 17302 root 122u IPv4 643695 0t0 TCP localhost:36582->localhost:mysql (ESTABLISHED) java 17302 root 123u IPv4 643701 0t0 TCP localhost:36588->localhost:mysql (ESTABLISHED) java 17302 root 124u IPv4 643696 0t0 TCP localhost:36586->localhost:mysql (ESTABLISHED) java 17302 root 125u IPv4 643697 0t0 TCP localhost:36584->localhost:mysql (ESTABLISHED) java 17302 root 126u IPv4 643703 0t0 TCP localhost:36590->localhost:mysql (ESTABLISHED) 或者 [root@VM_39_230_centos bin]# netstat -ntulp | grep 3306 tcp6 0 0 :::3306 :::* LISTEN 16422/mysqld 找到pid 然后 [root@VM_39_230_centos bin]# ps -aux | grep 16422 mysql 16422 0.0 47.7 1340428 485944 ? Sl Jun29 1:46 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/lib/mysql/VM_39_230_centos.err --pid-file=/var/lib/mysql/VM_39_230_centos.pid root 25713 0.0 0.0 112616 700 pts/0 R+ 17:04 0:00 grep --color=auto 16422

优秀的个人博客,低调大师

Centos7常用命令[文件操作]

文件操作: # 查看目录中的文件 [root@localhost ~]# ls # 查看目录中的文件 [root@localhost ~]# ls -F # 显示文件和目录的详细资料 [root@localhost ~]# ls -l # 显示隐藏文件 [root@localhost ~]# ls -a # 显示包含数字的文件名和目录名 [root@localhost ~]# ls [0-9] # 删除go.tar文件 [root@localhost ~]# rm go.tar # 查找文件名为mt.cgi的文件 [root@localhost ~]# find mt.cgi # 查看磁盘剩余空间 [root@localhost ~]# df ?h # 查找xxx文件 [root@localhost ~]# find / -name xxx -print

优秀的个人博客,低调大师

Centos7常用命令[系统信息]

系统信息: # 显示机器的处理器架构(1) [root@localhost ~]# arch # 显示机器的处理器架构(2) [root@localhost ~]# uname -m # 显示正在使用的内核版本 [root@localhost ~]# uname -r # 显示硬件系统部件 - (SMBIOS / DMI) [root@localhost ~]# dmidecode -q # 罗列一个磁盘的架构特性 [root@localhost ~]# hdparm -i /dev/hda # 在磁盘上执行测试性读取操作 [root@localhost ~]# hdparm -tT /dev/sda # 显示CPU info的信息 [root@localhost ~]# cat /proc/cpuinfo # 显示中断 [root@localhost ~]# cat /proc/interrupts # 校验内存使用 [root@localhost ~]# cat /proc/meminfo # 显示哪些swap被使用 [root@localhost ~]# cat /proc/swaps # 显示内核的版本 [root@localhost ~]# cat /proc/version # 显示网络适配器及统计 [root@localhost ~]# cat /proc/net/dev # 显示已加载的文件系统 [root@localhost ~]# cat /proc/mounts # 罗列 PCI 设备 [root@localhost ~]# lspci -tv # 显示 USB 设备 [root@localhost ~]# lsusb -tv # 显示系统日期 [root@localhost ~]# date # 显示2018年的日历表 [root@localhost ~]# cal 2018 # 设置日期和时间 - 月日时分年.秒 [root@localhost ~]# date 041217002007.00 # 将时间修改保存到 BIOS [root@localhost ~]# clock -w

优秀的个人博客,低调大师

CentOS常用命令之文件管理命令

echo:Display a line of text,默认会加换行。 -e:escape转义特殊字符 -n:不要在最后自动换行no LR cp:文件复制,规则:只有最后一个为目标,复制一个文件到一个文件或者多个文件到一个目录! -r:递归复制目录 -i:交互式显示复制 -f:强制复制,覆盖 -p:保留源文件的属性,时间戳 -P:复制链接文件时保存为链接(默认是复制链接所指向的文件) -d:复制时保持链接 -a:归档复制,常用于备份 examples: cp /etc/passwd /tmp/ 复制到目录下并保存原文件名 cp /etc/passwd /tmp/test看test是文件还是目录,目录:负责到目录内,文件则替换 cp -r /etc/init.d/ /tmp/abc 若abc不存在则创建abc目录,且将init.d内容复制到abc中;若abc存在且为目录,则将init.d整个复制到abc中;若abc存在且为文件,则不能复制。 mv:移动或重命名文件 mv SRC(源)DEST(目标) 在同一目录下可以利用mv进行重命名:mv abc bcd或者mv -t目标源 examples: 重命名 在同一目录下,有abc文件 可以 mv abc bcd 将abc重命名为bcd file:用于查看普通文件和系统文件的类型 rm rm:删除文件 -i:交互式删除 -f:暴力删除 -r:递归删除 命令可以组合利用 touch touch:创建文件 -c:文件存在的时候不再创建 -a:只改变文件的访问时间 -m:只改变文件的修改时间 -t:自己设定文件的时间戳(年月日时分.秒),与a、m配合使用 stat:查看文件或文件系统的状态 cat:连接并显示文件的信息,是全部显示文件内的信息 -n:在显示的时候可以显示行号,这个行号只是显示出来,跟文件内容没有关系 -E:显示每一行的行结束符,所以linux中文本文件的行结束符是$符 -T:可以显示制表符 -v:显示其他的非打印字符 -A:显示所有的符号

优秀的个人博客,低调大师

Linux常用命令与快捷键

一.常用Linux命令 1、 [root@localhost ~]# 释义 其中root表示当前登录用户,localhost表示主机名,~表示所在目录(家目录),#是超级用户的提示符,普通用户的提示符是$ 2、ls -a -lh l 显示长格式文件信息,h 人性化显示,a 显示所有隐藏文件(.开头的文件) ;引申出来的 ll 等效于 ls -l命令 3、mkdir -p [目录名] 创建空目录,p表示递归创建 4、rm -rf [目录或文件名] 强制一次性递归删除目录或目录下文件(小心使用) 5、cp -a -r [原目录或文件] [目标目录] -r表示可以复制目录;-a表示‘一模一样复制’(节点信息);目标文件名和原文件名不一致,则会以目标文件名为准 6、mv [原文件或目录] [目标文件或目录] 移动/重命名目录或文件 7、locate [目录或文件名] 、find [目录或文件名] 搜索目录或文件名 8、grep 字符 [目标文件] 在目标文件中搜索指定字符串 9.1、zip [目录目标] [需要压缩的目录或者文件] 压缩指定目录或文件位zip格式到指定目标目录,例如:zip /root/tmp.zip /tmp 把tmp目录下所有文件压缩到root下,且压缩后的文件名为tmp.zip 9.2、unzip [文件名] 解压缩指定文件名 9.3、tar -zcvf 压缩包名.tar.gz 源文件 压缩为.tar.gz格式文件(打包) 9.4、tar -zxvf 压缩包名.tar.gz -C [目标目录] 加压缩.tar.gz格式文件到指定的目标目录下,例如 tar -zxvf test.tar.gz -C /root 解压缩test.tar.gz至root目录下 10、shutdown -r 06:00 & 6点定时关机 shutdown -c 取消上一个关机命令 11、w 查看当前登录用户信息 last 记录以往用户登录的信息 lastlog查看所有用户最后一次登录信息 12、vim [文件名] 编辑文件,相当于vi 13、cat [文件名] | more 查看文件信息(分页显示) 14、date &>>test.log #以追加的方式把正确和错误的信息输出保存到同一文件中 ls >>right.log 2>>error.log #把正确的输出到文件1中,错误的输出到文件2中 15、scp [目标资源1] [目标资源2] #在不同服务器间拷贝(传递)文件 例:scp /root/test.tar.gz root@192.168.0.102:/ 16、sz [文件名] #下载指定的文件 rz #上传文件(弹窗选择) 二.快捷键 Ctrl+L :清屏 Tap:命令或目录补全 Ctrl+C:强制终止当前命令进程 方向的上下箭头:切换历史输入的命令 Ctrl+a:光标移动到命令行的首 Ctrl+e:光标移动到命令行的尾

优秀的个人博客,低调大师

android 常用命令行笔记

通常我们都是使用eclipse直接创建项目的,命令比较少用,今天学了下命令的模式,这里做个笔记 1、使用android create project创建项目 参数:andriod create project -n projectname -t target -p path -k package -a activity 示例:android create project -n testant -t android-8 -p ./testant -k com.xzw.testant -a TestAntActivity 2、使用android update project命令(该命令会生成build.xml) 示例:android update project -n JsonTest -p ./JsonTest 3、启动模拟器 emulator -avd 模拟器名称 4、安装apk adb install bin/gg.apk 重新安装apk:adb install -r ggg.apk 安装apk到指定的手机上 adb -s 375400install bin/gg.apk 5、卸载应用 adb uninstall 包名 示例:adb uninstall com.xzw.jsontest 6、列出所有的模拟器 android list avds 7、查看当前的设备 adb devices 8、命令行启动程序 adb -s 手机/模拟器名称shell am start-n com.xzw.jsontest/com.xzw.jsontest.JsonActivity 9、手动关闭adb adb kill-server 10、手动启动adb adb start-server 11、使用ant生成debug/release应用 ant debug/release (PS:release需要签名) 本文转自xuzw13 51CTO博客,原文链接:http://blog.51cto.com/xuzhiwei/1101006,如需转载请自行联系原作者

优秀的个人博客,低调大师

测试开发之网络篇-常用命令

ipconfig Windows系统下,ipconfig加上/all参数,可查看本机的IP地址、掩码、默认网关、DHCP和DNS服务器等信息。Linux或mac系统下,请使用ifconfig命令代替。 C:\Users\admin>ipconfig /all Windows IP Configuration Ethernet adapter Ethernet0: Connection-specific DNS Suffix . : DHCP Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connection Physical Address. . . . . . . . . : 00-0C-29-A8-3E-AA DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::547b:2b11:b2bd:3cfb%15(Preferred) IPv4 Address. . . . . . . . . . . : 172.16.13.3(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 Lease Obtained. . . . . . . . . . : 2021年5月24日 14:26:49 Lease Expires . . . . . . . . . . : 2021年5月25日 14:12:25 Default Gateway . . . . . . . . . : 172.16.13.1 DHCP Server . . . . . . . . . . . : 172.16.13.1 DHCPv6 IAID . . . . . . . . . . . : 117443625 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-25-1B-98-1F-00-0C-29-A8-3E-AA DNS Servers . . . . . . . . . . . : 172.16.13.1 NetBIOS over Tcpip. . . . . . . . : Enabled Connection-specific DNS Suffix Search List : DHCP HOST ping 可以用来检测到达另一个主机的连通性,并获取以下信息。注意,有些机器可能会禁用ping所用的ICMP协议,导致没有响应。 判断网络连接是否通畅; 获取某个域名的IP地址; 根据time值获取网络的响应速度; 根据ttl值判断数据包经过的路由器数量。 macbook:~ aaron$ ping baidu.com PING baidu.com (220.181.38.148): 56 data bytes 64 bytes from 220.181.38.148: icmp_seq=0 ttl=52 time=32.157 ms 64 bytes from 220.181.38.148: icmp_seq=1 ttl=52 time=34.663 ms 64 bytes from 220.181.38.148: icmp_seq=2 ttl=52 time=32.626 ms --- baidu.com ping statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 32.157/32.971/34.663/0.991 ms 以上通过ping百度的域名,得到其IP地址为220.181.38.148;响应时间小于50毫秒,说明网速正常。 前面的文章中我们讲到,在不同的网段间转发数据是由路由器完成的。这里的TTL是 Time To Live的缩写,表示IP包被路由器丢弃之前,允许通过的最大网段数量。不同的操作系统初始值可能不一样,但均为2的N次方。 这里,我们使用离返回值52最近的64、也就是2^6作为初始值,那么,途中则经过的路由器数量可以用64-52=12来计算得到。 telent 使用telnet命令可以查看远程主机的某个端口是否有服务在运行,Windows系统默认没有此命令,可在控制面板中安装。如没有响应,请确认远程服务器的端口未被防火墙禁用。 macbook:~ aaron$ telnet 39.156.69.79 80 Trying 39.156.69.79... Connected to 39.156.69.79. Escape character is '^]' tracert 用来检测到达目标主机所经过的路由器数量,它使用ICMP协议来工作,可以帮我们定位网络中哪一个节点发生了问题。 首先,它会发送一份TTL(存活时间)为1的数据包给目标主机,处理这个数据包的第一个路由器将TTL值减1,然后丢弃这个已经为0的数据报,并返回一个包含路由器IP地址的ICMP报文。后续,依次增加TTL的值,发出的响应将会到达更多的路由器,直至失败或结束。 Linux下请使用traceroute命令替代。 macbook:~ aaron$ traceroute -q 1 114.114.114.114 traceroute to 114.114.114.114 (114.114.114.114), 64 hops max, 52 byte packets 1 192.168.0.1 (192.168.0.1) 2.908 ms 2 192.168.1.1 (192.168.1.1) 3.831 ms 3 58.208.178.1 (58.208.178.1) 5.278 ms 4 218.4.30.205 (218.4.30.205) 7.611 ms 5 221.224.235.61 (221.224.235.61) 7.858 ms 6 10.255.61.9 (10.255.61.9) 8.547 ms 7 61.155.228.158 (61.155.228.158) 13.068 ms 8 * 9 * 这里-q表示每次发送一个包;星号表示的行,可能是因为防火墙封掉了ICMP的响应。

优秀的个人博客,低调大师

干货 | Elasticsearch 运维实战常用命令清单

背景 球友反馈的实战问题: 关于es的运维相关的, 遇到一些问题! 第一个问题:是关于集群迁移的,目前需要 针对20亿的数据做迁移,如果文件迁移,需要停机时间太久,除了重新灌入,不知 道有没有更好的方式? 第二个问题:我们es集群的读写都很频繁,如何把控在相互不影响性能,当前情况是会有相互影响! 第三个问题:之前做版本升级,升级后部分分片不可用,但是不知道什么原因导致? 最后:就是关于数据的扩容,备份,高可用这方面...... 扩容其实面对一个问题就是你之前的es mapping 如何建, 如果这个没规划好,增加节点的意义也不大了 另外就是面对现在集群状态黄色和红色,没有体系化的思路去排查问题到底出在哪儿? 更多的是点对点去临时解决,积累的知识是碎片化的。 的确,类似问题经常被问到,是时候整合梳理一下了。 1、集群状态非绿排查清单 1.1 集群状态的含义 红色:至少一个主分片未分配成功; 黄色:至少一个副本分片未分配成功; 绿色:全部主&副本都分配成功。 1.2 排查实战 1.2.1 查看集群状态 GET_cluster/health 返回状态举例:"status" : "red", 红色,至少一个主分片未分配成功。 1.2.2 到底哪个节点出现了红色或者黄色问题呢? GET_cluster/health?level=indices 如下的方式,更明快直接 GET/_cat/indices?v&health=yellowGET/_cat/indices?v&health=red 找到对应的索引。 1.2.3 到底索引的哪个分片出现了红色或者黄色问题呢? GET_cluster/health?level=shards 1.2.4 到底什么原因导致了集群变成红色或者黄色呢? GET_cluster/allocation/explain 返回核心信息解读举例: "current_state":"unassigned",——未分配"unassigned_info":{"reason":"INDEX_CREATED",——原因,索引创建阶段"at":"2020-01-29T07:32:39.041Z","last_allocation_status":"no"},"explanation":"""nodedoesnotmatchindexsetting[index.routing.allocation.require]filters[box_type:"hot"]"""} 根本原因,shard分片与节点过滤类型不一致 到此,找到了根本原因,也就知道了对应解决方案。 1.3 扩展思考:类似 "current_state" : "unassigned",——未分配 还有哪些? 实战: GET_cat/shards?h=index,shard,prirep,state,unassigned.reason 官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.2/cat-shards.html 未分配状态及原因解读: (1)INDEX_CREATEDUnassignedasaresultofanAPIcreationofanindex.(2)CLUSTER_RECOVEREDUnassignedasaresultofafullclusterrecovery.(3)INDEX_REOPENEDUnassignedasaresultofopeningaclosedindex.(4)DANGLING_INDEX_IMPORTEDUnassignedasaresultofimportingadanglingindex.(5)NEW_INDEX_RESTOREDUnassignedasaresultofrestoringintoanewindex.(6)EXISTING_INDEX_RESTOREDUnassignedasaresultofrestoringintoaclosedindex.(7)REPLICA_ADDEDUnassignedasaresultofexplicitadditionofareplica.(8)ALLOCATION_FAILEDUnassignedasaresultofafailedallocationoftheshard.(9)NODE_LEFTUnassignedasaresultofthenodehostingitleavingthecluster.(10)REROUTE_CANCELLEDUnassignedasaresultofexplicitcancelreroutecommand.(11)REINITIALIZEDWhenashardmovesfromstartedbacktoinitializing,forexample,withshadowreplicas.(12)REALLOCATED_REPLICAAbetterreplicalocationisidentifiedandcausestheexistingreplicaallocationtobecancelled. 2、节点间分片移动 适用场景:手动移动分配分片。将启动的分片从一个节点移动到另一节点。 POST/_cluster/reroute{"commands":[{"move":{"index":"indexname","shard":1,"from_node":"nodename","to_node":"nodename"}}]} 3、集群节点优雅下线 适用场景:保证集群颜色绿色的前提下,将某个节点优雅下线。 PUT/_cluster/settings{"transient":{"cluster.routing.allocation.exclude._ip":"122.5.3.55"}} 4、强制刷新 适用场景:刷新索引是确保当前仅存储在事务日志中的所有数据也永久存储在Lucene索引中。 POST/_flush 注意:这和 7.6 版本之前的同步刷新(未来8版本+会废弃同步刷新)一致。 POST/_flush/synced 5、更改并发分片的数量以平衡集群 适用场景: 控制在集群范围内允许多少并发分片重新平衡。默认值为2。 PUT/_cluster/settings{"transient":{"cluster.routing.allocation.cluster_concurrent_rebalance":2}} 6、更改每个节点同时恢复的分片数量 适用场景: 如果节点已从集群断开连接,则其所有分片将都变为未分配状态。经过一定的延迟后,分片将分配到其他位置。每个节点要恢复的并发分片数由该设置确定。 PUT/_cluster/settings{"transient":{"cluster.routing.allocation.node_concurrent_recoveries":6}} 7、调整恢复速度 适用场景: 为了避免集群过载,Elasticsearch限制了分配给恢复的速度。你可以仔细更改该设置,以使其恢复更快。 如果此值调的太高,则正在进行的恢复可能会消耗过多的带宽和其他资源,这可能会使集群不稳定。 PUT/_cluster/settings{"transient":{"indices.recovery.max_bytes_per_sec":"80mb"}} 8、清除节点上的缓存 适用场景:如果节点达到较高的JVM值,则可以在节点级别上调用该API 以使 Elasticsearch 清理缓存。 这会降低性能,但可以使你摆脱OOM(内存不足)的困扰。 POST/_cache/clear 9、调整断路器 适用场景:为了避免在Elasticsearch中进入OOM,可以调整断路器上的设置。这将限制搜索内存,并丢弃所有估计消耗比所需级别更多的内存的搜索。 注意:这是一个非常精密的设置,你需要仔细校准。 PUT/_cluster/settings{"persistent":{"indices.breaker.total.limit":"40%"}} 10、集群迁移 适用场景:集群数据迁移、索引数据迁移等。 方案一、 针对索引部分或者全部数据,reindex POST_reindex{"source":{"index":"my-index-000001"},"dest":{"index":"my-new-index-000001"}} 方案二:借助第三方工具迁移索引或者集群 elasticdump elasticsearch-migration 工具本质:scroll + bulk 实现。 11、集群数据备份和恢复 适用场景:高可用业务场景,定期增量、全量数据备份,以备应急不时之需。 PUT/_snapshot/my_backup/snapshot_hamlet_index?wait_for_completion=true{"indices":"hamlet_*","ignore_unavailable":true,"include_global_state":false,"metadata":{"taken_by":"mingyi","taken_because":"backupbeforeupgrading"}}POST/_snapshot/my_backup/snapshot_hamlet_index/_restore 小结 文章开头的几个运维问题已经解决,其他性能相关的问题,后面会有另外的博文做梳理。 运维工作包罗万象,文章内容只是抛砖引玉,开了个头。 牛逼的集群运维需要结合可视化工具(如:kibana,cerebro,elastic-hd,Prometheus + grafana,结合业务自研工具如 阿里云Eyou等)能极大提高效率。 你的Elasticsearch 运维的经验、心得、体会,欢迎留言交流,我们一起完善清单。 参考: Elasticsearch 官方文档 https://logz.io/blog/elasticsearch-cheat-sheet/ 更多推荐: 严选 | Elasticsearch史上最全最常用工具清单 干货 | Elasticsearch Top10 监控指标 更短时间更快习得更多干货! 中国近1/4的 Elastic认证工程师出自于此! 本文分享自微信公众号 - 铭毅天下(elastic999)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

docker/docker-compose常用命令与配置

今天整理了些以前使用docker时常用的命令与配置,在这里分享出来,也便于自己日后查阅。文中不包括docker的基本概念、安装,还请自行搜寻。 各位感兴趣的话,可以自存一份,若要转载,记得标明出处哦。 docker 一、docker基础操作 service docker start/stop/restart 二、镜像基础操作 1.搜索镜像: docker search imageName 2.拉取搜索出的镜像: docker pull 镜像名; 3.修改镜像名 docker tag 旧镜像名:tag 新镜像名:tag 4.查看当前镜像列表: docker images 三、容器基础操作(对已经启动的镜像操作) --1.显示所有容器 docker ps -a --2.显示当前运行中的容器 docker ps --3.启动容器 docker start containerId --4.停止容器 docker stop containerId --5.重启容器 docker restart containerId --6.删除容器 docker rm containerId 四、从无到有构建一个新的镜像(基于已有镜像,创建一个新的镜像),并启动 1.随意创建一个文件夹; 2.创建Dockerfile文件(名字只能为 Dockerfile),内容如下: #镜像来源 FROM centos:latest #作者 MAINTAINER "chengxp" #在新创建的镜像中创建目录 RUN mkdir /usr/local/jdk RUN mkdir /usr/local/runentry #添加当前镜像中需要依赖的工具 ADD jdk1.8.0_65.tar /usr/local/jdk/ ADD jboss.tar /usr/local/runentry/ #卷,会将镜像中的目录挂载到宿主机的docker安装目录下 VOLUME ["/usr/local/runentry/jboss/logs"] #环境变量添加 ENV JAVA_HOME /usr/local/jdk1.8.0_65 ENV PATH $PATH:$JAVA_HOME/bin #提示要输出的端口(没有实际意义) EXPOSE 8181 #镜像启动成容器需要执行的命令(软件启动指令) CMD ["./usr/local/runentry/jboss/bin/run.sh","-c","all"] 3.执行Dockerfile,在当前目录(Dockerfile文件所在目录)执行: docker build -t 自定义镜像名称:tag(版本号) .("."代表当前目录执行) 4.镜像被成功创建。 5.运行镜像→生成容器 docker run -d(后台运行) -p 8888:8181(指定外部8888端口映射出内部的8080端口) --name 容器名(指定容器运行的名称) 镜像名:tag(版本号) 备注:运行基础的centos镜像,因为没有启动指令,所以需要额外增加命令参数 docker run -dit 镜像名 /bin/bash 五、清理无效镜像与容器 △删除<none>的镜像 docker rmi $(docker images | grep "none" | awk '{print $3}') △删除无用容器 docker rm `docker ps -a | grep Exited | awk '{print $1}'` 六、宿主机与容器交互 1.进入宿主机 docker exec -it 容器ID /bin/bash 2.文件拷贝 1)从主机到容器: docker cp 文件 容器ID:容器中的路径 2)从容器到主机: docker cp 容器ID:容器中的路径 主机上文件的路径 七、卷(容器与宿主机文件同步) --1.查看所有卷 docker volume ls --2.查看容器卷详细信息: 1)docker inspect containerId --3.创建卷 docker volume create my-vol --4.创建容器时指定卷 docker run -v 主机路径:容器中路径 --5.删除容器时,连同卷一起删除 docker rm -v 容器id --6.清理所有无用卷 docker volume prune --7.dockerfile中创建镜像指定卷 VOLUEME ["/data1","/data2"] 以上,会在运行后的容器中的根目录中,分别创建 两个目录; △缺点:以这种方式创建的卷,不能指定主机目录。而对应的目录默认是docker安装时指定的目录:/var/lib/docker/volumes/; 可通过docker inspect containerId 查看对应的自动生成的主机目录; 八、容器备份(实质上应导出镜像进行转移) 第一种方式(导出容器)【不推荐】: 使用命令:docker export/import 相关进行操作; 缺点: 不能保留运行时相关信息,如把war包存放到tomcat,导出时,war包会被遗弃; 第二种方式(导出成镜像)【推荐】: 步骤: 1.导出: 1)提交当前容器状态,并根据当前容器 生成一个新的镜像: docker commit 容器id 新创建的镜像名称 2)将新创建的镜像导出成tar: docker save 新创建的镜像名称 > 镜像名称.tar 2.导入: docker load < 镜像名称.tar △查看容器运行日志 docker logs -f -t --tail 显示最后多少行 容器id docker-comepose(用于启动N个镜像,一个项目中所需要用到的软件) 一、在任意文件夹下创建一个docker-compose.yaml文件,内容如下: version: "3" services: back-app: #1.镜像来源:根据指定镜像启动(二选一) image: 25.30.9.228:5000/back-app:v1.1.0 #2.镜像来源:根据指定的Dockerfile所在目录来启动(二选一) build: /home/start-entry/back-app(绝对路径) build: ./back-app (相对当前目录路径) #若同时配置了image和build,那么将通过build创建一个 名为image配置的镜像 #自定义启动后的镜像名称 container-name: back-app-container #宿主机目录与容器目录映射 volumes: #1.宿主机绝对路径目录:容器中绝对路径目录 - /home/back-app/logs:/home/logs #2.默认在容器内部创建一个数据卷,指向宿主机匿名位置[不推荐] - /home/logs #执行时,重启当前服务 restart: always #启动映射端口:外部:内部 ports: - "8181:8181" #将主机名写入到容器中的hosts文件 extra_hosts: - "master:192.168.1.1" - "node1:192.168.1.2" - "node1:192.168.1.3" #当前镜像启动之前,必须等待以下服务启动完毕之后才能启动 #depends_on: - mysql - kafka mysql: build: ./mysql ports: - "3306:3306" kafka: build: /home/start-entry/kafka ports: - "8787:8787" 二、启动docker-compose: docker-compose up -d(后台运行) 三、相应软件启动成功,可通过docker ps查看。 本文中记录的只是个人经常用到的操作,需获取更多配置,请移步官网:https://docs.docker.com/engine/reference/builder/。

优秀的个人博客,低调大师

Linux查看系统配置常用命令

一、linux CPU大小 cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id" 说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。 其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可以查看physical id 的值,相同则为 二、内存大小 cat /proc/meminfo |grep MemTotal 三、硬盘大小 fdisk -l |grep Disk 四、 uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令 五、head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L 六、cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令 七、hostname # 查看计算机名的linux系统信息命令 八、lspci -tv # 列出所有PCI设备 九、lsusb -tv # 列出所有USB设备的linux系统信息命令 十、lsmod # 列出加载的内核模块 Module Size Used by autofs4 26513 3 sunrpc 260521 1 8021q 25317 0 garp 7152 1 8021q stp 2218 1 garp llc 5546 2 garp,stp cpufreq_ondemand 10544 2 powernow_k8 18171 1 freq_table 4936 2 cpufreq_ondemand,powernow_k8 mperf 1557 1 powernow_k8 ip6t_REJECT 4628 2 nf_conntrack_ipv6 8748 2 nf_defrag_ipv6 11182 1 nf_conntrack_ipv6 xt_state 1492 2 nf_conntrack 79357 2 nf_conntrack_ipv6,xt_state ip6table_filter 2889 1 ip6_tables 19458 1 ip6table_filter ipv6 321422 47 ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6 ppdev 8537 0 parport_pc 22690 0 parport 36209 2 ppdev,parport_pc asus_atk0110 14216 0 sg 29350 0 microcode 112653 0 serio_raw 4594 0 k10temp 3609 0 edac_core 46581 0 edac_mce_amd 14705 0 snd_hda_codec_realtek 68136 1 snd_hda_intel 27823 2 snd_hda_codec 121518 2 snd_hda_codec_realtek,snd_hda_intel snd_hwdep 6652 1 snd_hda_codec snd_seq 55759 1 snd_seq_device 6500 1 snd_seq snd_pcm 86635 2 snd_hda_intel,snd_hda_codec snd_timer 22411 3 snd_seq,snd_pcm snd 69907 14 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_seq,snd_seq_device,snd_pcm,snd_timer soundcore 7958 1 snd snd_page_alloc 8470 2 snd_hda_intel,snd_pcm i2c_piix4 12608 0 r8169 60023 0 mii 5376 1 r8169 shpchp 32778 0 ext4 363408 3 mbcache 8193 1 ext4 jbd2 90230 1 ext4 sr_mod 15177 0 cdrom 39085 1 sr_mod sd_mod 38976 3 crc_t10dif 1541 1 sd_mod ahci 41127 2 pata_acpi 3701 0 ata_generic 3837 0 pata_atiixp 4211 0 radeon 917108 0 ttm 80957 1 radeon drm_kms_helper 40087 1 radeon drm 265638 3 radeon,ttm,drm_kms_helper i2c_algo_bit 5935 1 radeon i2c_core 31084 5 i2c_piix4,radeon,drm_kms_helper,drm,i2c_algo_bit dm_mirror 14133 0 dm_region_hash 12085 1 dm_mirror dm_log 9930 2 dm_mirror,dm_region_hash dm_mod 82839 11 dm_mirror,dm_log 十一、env # 查看环境变量资源 LESS_TERMCAP_mb= HOSTNAME=localhost.localdomain LESS_TERMCAP_md= LESS_TERMCAP_me= TERM=xterm SHELL=/bin/bash HISTSIZE=1000 NLS_LANG=AMERICAN_AMERICA.AL32UTF8 SSH_CLIENT=192.168.1.104 2465 22 QTDIR=/usr/lib64/qt-3.3 OLDPWD=/home LESS_TERMCAP_ue= QTINC=/usr/lib64/qt-3.3/include SSH_TTY=/dev/pts/1 USER=root LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib: LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36: ORACLE_BASE=/usr/lib/oracle/11.2 LESS_TERMCAP_us= MAIL=/var/spool/mail/root PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/erlang/bin:/home/rabbitmq_server-3.3.1/sbin/:/usr/lib/oracle/11.2/client64/bin:/root/bin PWD=/ LANG=zh_CN.UTF-8 KDE_IS_PRELINKED=1 MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles LOADEDMODULES= KDEDIRS=/usr SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass HISTCONTROL=ignoredups SHLVL=1 十二、free -m # 查看内存使用量和交换区使用量 total used free shared buffers cached Mem: 3706 3534 171 0 31 3258 -/+ buffers/cache: 244 3461 Swap: 3711 0 3711 [root@localhost /]# 十三、df -h # 查看各分区使用情况 [root@localhost /]# df -h 文件系统 容量 已用 可用 已用%% 挂载点 /dev/mapper/VolGroup-lv_root 50G 6.4G 41G 14% / tmpfs 1.9G 72K 1.9G 1% /dev/shm /dev/sda1 485M 38M 422M 9% /boot /dev/mapper/VolGroup-lv_home 406G 2.8G 382G 1% /home 下面就不一一演示了 十四、du -sh # 查看指定目录的大小 十五、grep MemTotal /proc/meminfo # 查看内存总量 十六、grep MemFree /proc/meminfo # 查看空闲内存量 十七、uptime # 查看系统运行时间、用户数、负载 十八、cat /proc/loadavg # 查看系统负载磁盘和分区 十九、mount | column -t # 查看挂接的分区状态 二十、fdisk -l # 查看所有分区 二十一、swapon -s # 查看所有交换分区 二十二、hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) 二十三、dmesg | grep IDE # 查看启动时IDE设备检测状况网络 二十四、ifconfig # 查看所有网络接口的属性 二十五、iptables -L # 查看防火墙设置 二十六、route -n # 查看路由表 二十七、netstat -lntp # 查看所有监听端口 二十八、netstat -antp # 查看所有已经建立的连接 二十九、netstat -s # 查看网络统计信息进程 三十、ps -ef # 查看所有进程 三十一、top # 实时显示进程状态用户 三十二、w # 查看活动用户 三十三、id # 查看指定用户信息 三十四、last # 查看用户登录日志 三十五、cut -d: -f1 /etc/passwd # 查看系统所有用户 三十六、cut -d: -f1 /etc/group # 查看系统所有组 三十七、crontab -l # 查看当前用户的计划任务服务 三十七、chkconfig –list # 列出所有系统服务 三十八、chkconfig –list | grep on # 列出所有启动的系统服务程序 三十九、rpm -qa # 查看所有安装的软件包 四十、cat /proc/cpuinfo :查看CPU相关参数的linux系统命令 四十一、cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令 四十二、cat /proc/meminfo :查看linux系统内存信息的linux系统命令 四十三、cat /proc/version :查看版本,类似uname -r 四十四、cat /proc/ioports :查看设备io端口 四十五、cat /proc/interrupts :查看中断 四十六、cat /proc/pci :查看pci设备的信息 四十七、cat /proc/swaps :查看所有swap分区的信息 今天不努力,明天就会落后

优秀的个人博客,低调大师

docker学习笔记(五)——Docker常用命令总结

1. 开启/停止/重启container(start/stop/restart) 容器可以通过run新建一个来运行,也可以重新start已经停止的container,但start不能够再指定容器启动时运行的指令,因为docker只能有一个前台进程。 容器stop(或Ctrl+D)时,会在保存当前容器的状态之后退出,下次start时保有上次关闭时更改。而且每次进入attach进去的界面是一样的,与第一次run启动或commit提交的时刻相同。 1 2 3 CONTAINER_ID=$(dockerstart<containner_id>) dockerstop$CONTAINER_ID dockerrestart$CONTAINER_ID 关于这几个命令可以通过一个完整的实例使用:docker如何创建一个运行后台进程的容器并同时提供shell终端。 2. 连接到正在运行中的container(attach) 要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似)。 官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。这不是我们想要的,detach的意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上--sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。 1 #dockerattach--sig-proxy=false$CONTAINER_ID 3. 查看image或container的底层信息(inspect) inspect的对象可以是image、运行中的container和停止的container。 1 2 3 4 查看容器的内部IP #dockerinspect--format='{\{.NetworkSettings.IPAddress}}'$CONTAINER_ID 172.17.42.35 (注:由于代码块解析的问题,上面NetworkSettings前面的\去掉) 4. 删除一个或多个container、image(rm、rmi) 你可能在使用过程中会build或commit许多镜像,无用的镜像需要删除。但删除这些镜像是有一些条件的: 同一个IMAGE ID可能会有多个TAG(可能还在不同的仓库),首先你要根据这些 image names 来删除标签,当删除最后一个tag的时候就会自动删除镜像; 承上,如果要删除的多个IMAGE NAME在同一个REPOSITORY,可以通过docker rmi <image_id>来同时删除剩下的TAG;若在不同Repo则还是需要手动逐个删除TAG; 还存在由这个镜像启动的container时(即便已经停止),也无法删除镜像; TO-DO 如何查看镜像与容器的依存关系 删除容器docker rm <container_id/contaner_name> 1 2 3 删除所有停止的容器 docker rm $(docker ps -a-q) 删除镜像docker rmi <image_id/image_name ...> 下面是一个完整的示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #dockerimages<== ubuntu13.10195eb90b53494monthsago184.6MB ubuntusaucy195eb90b53494monthsago184.6MB seanlook /ubuntu rm_test195eb90b53494monthsago184.6MB 使用195eb90b5349启动、停止一个容器后,删除这个镜像 #dockerrmi195eb90b5349 Errorresponsefromdaemon:Conflict,cannotdeleteimage195eb90b5349becauseitis tagged in multiplerepositories,use-ftoforce 2014 /11/04 14:19:00Error:failedtoremoveoneor more images 删除seanlook仓库中的tag<== #dockerrmiseanlook/ubuntu:rm_test Untagged:seanlook /ubuntu :rm_test 现在删除镜像,还会由于container的存在不能rmi #dockerrmi195eb90b5349 Errorresponsefromdaemon:Conflict,cannotdelete195eb90b5349becausethe containereef3648a6e77isusingit,use-ftoforce 2014 /11/04 14:24:15Error:failedtoremoveoneor more images 先删除由这个镜像启动的容器<== #dockerrmeef3648a6e77 删除镜像<== #dockerrmi195eb90b5349 Deleted:195eb90b534950d334188c3627f860fbdf898e224d8a0a11ec54ff453175e081 Deleted:209ea56fda6dc2fb013e4d1e40cb678b2af91d1b54a71529f7df0bd867adc961 Deleted:0f4aac48388f5d65a725ccf8e7caada42f136026c566528a5ee9b02467dac90a Deleted:fae16849ebe23b48f2bedcc08aaabd45408c62b531ffd8d3088592043d5e7364 Deleted:f127542f0b6191e99bb015b672f5cf48fa79d974784ac8090b11aeac184eaaff 注意,上面的删除过程我所举的例子比较特殊——镜像被tag在多个仓库,也有启动过的容器。按照<==指示的顺序进行即可。 5. docker build使用此配置生成新的image build命令可以从Dockerfile和上下文来创建镜像:docker build [OPTIONS] PATH | URL | - 上面的PATH或URL中的文件被称作上下文,build image的过程会先把这些文件传送到docker的服务端来进行的。 如果PATH直接就是一个单独的Dockerfile文件则可以不需要上下文;如果URL是一个Git仓库地址,那么创建image的过程中会自动git clone一份到本机的临时目录,它就成为了本次build的上下文。无论指定的PATH是什么,Dockerfile是至关重要的,请参考Dockerfile Reference。 请看下面的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #catDockerfile FROMseanlook /nginx :bash_vim EXPOSE80 ENTRYPOINT /usr/sbin/nginx -c /etc/nginx/nginx .conf&& /bin/bash #dockerbuild-tseanlook/nginx:bash_vim_Df. SendingbuildcontexttoDockerdaemon73.45MB SendingbuildcontexttoDockerdaemon Step0:FROMseanlook /nginx :bash_vim --->aa8516fa0bb7 Step1:EXPOSE80 --->Usingcache --->fece07e2b515 Step2:ENTRYPOINT /usr/sbin/nginx -c /etc/nginx/nginx .conf&& /bin/bash --->Running in e08963fd5afb --->d9bbd13f5066 Removingintermediatecontainere08963fd5afb Successfullybuiltd9bbd13f5066 上面的PATH为.,所以在当前目录下的所有文件(不包括.dockerignore中的)将会被tar打包并传送到docker daemon(一般在本机),从输出我们可以到Sending build context...,最后有个Removing intermediate container的过程,可以通过--rm=false来保留容器。 TO-DOdocker build github.com/creack/docker-firefox失败。 6. 给镜像打上标签(tag) tag的作用主要有两点:一是为镜像起一个容易理解的名字,二是可以通过docker tag来重新指定镜像的仓库,这样在push时自动提交到仓库。 1 2 3 4 将同一IMAGE_ID的所有tag,合并为一个新的 #dockertag195eb90b5349seanlook/ubuntu:rm_test 新建一个tag,保留旧的那条记录 #dockertagRegistry/Repos:TagNew_Registry/New_Repos:New_Tag 7. 查看容器的信息container(ps) docker ps命令可以查看容器的CONTAINER ID、NAME、IMAGE NAME、端口开启及绑定、容器启动后执行的COMMNAD。经常通过ps来找到CONTAINER_ID。docker ps默认显示当前正在运行中的containerdocker ps -a查看包括已经停止的所有容器docker ps -l显示最新启动的一个容器(包括已停止的) 8. 查看容器中正在运行的进程(top) 容器运行时不一定有/bin/bash终端来交互执行top命令,查看container中正在运行的进程,况且还不一定有top命令,这是docker top <container_id/container_name>就很有用了。实际上在host上使用ps -ef|grep docker也可以看到一组类似的进程信息,把container里的进程看成是host上启动docker的子进程就对了。 9. docker与宿主机文件互拷 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。 1 docker cp /www/runoob 96f7f14e99ab: /www/ 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。 1 docker cp /www/runoob 96f7f14e99ab: /www 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。 1 docker cp 96f7f14e99ab: /www /tmp/ 10、docker 容器保持后台运行的两种方式 10.1run一个容器: (推荐方法) 1 2 3 4 5 [root@localhost~] #dockerrun-dit--hostnamecentos--namecentos--restartalwaysa8493f5f50ff/bin/bash -dit是后台运行、交互模式、分配终端,容器启动后不会退出 如果没有it参数,run一个容器以后,docker ps -a容器状态就exited了 --restartalways容器可以随docker服务启动而启动 10.2run 一个容器,并一直发送ping包 1 [root@localhost~] #dockerrun-d--nametest--hostnametesta8493f5f50ffping127.0.0.1 开启ping进程,则主机一直运行 本文转自 jackjiaxiong 51CTO博客,原文链接:http://blog.51cto.com/xiangcun168/1958278

优秀的个人博客,低调大师

linux下的一些常用命令

linux的命令操作 一下是一些基本的命令操作,平时如果有需要的话会继续增加进去。 1、日常操作命令 **查看当前所在的工作目录 pwd **查看当前系统的时间 date **查看有谁在线(哪些人登陆到了服务器) who 查看当前在线 last 查看最近的登陆历史记录 2、文件系统操作 ** ls / 查看根目录下的子节点(文件夹和文件)信息 ls -al -a是显示隐藏文件 -l是以更详细的列表形式显示 **切换目录 cd /home **创建文件夹 mkdir aaa 这是相对路径的写法 mkdir -p aaa/bbb/ccc mkdir /data 这是绝对路径的写法 **删除文件夹 rmdir 可以删除空目录 rm -r aaa 可以把aaa整个文件夹及其中的所有子节点全部删除 rm -rf aaa 强制删除aaa **修改文件夹名称 mv aaa angelababy **创建文件 touch somefile.1 创建一个空文件 echo "i miss you,my baby" > somefile.2 利用重定向“>”的功能,将一条指令的输出结果写入到一个文件中,会覆盖原文件内容 echo "huangxiaoming ,gun dan" >> somefile.2 将一条指令的输出结果追加到一个文件中,不会覆盖原文件内容 用vi文本编辑器来编辑生成文件 ******最基本用法 vi somefile.4 1、首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容 2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容 3、编辑完成之后,按Esc键退出编辑模式,回到一般模式; 4、再按:,进入“底行命令模式”,输入wq命令,回车即可 ******一些常用快捷键 一些有用的快捷键(在一般模式下使用): a 在光标后一位开始插入 A 在该行的最后插入 I 在该行的最前面插入 gg 直接跳到文件的首行 G 直接跳到文件的末行 dd 删除行,如果 5dd ,则一次性删除光标后的5行 yy 复制当前行, 复制多行,则 3yy,则复制当前行附近的3行 p 粘贴 v 进入字符选择模式,选择完成后,按y复制,按p粘贴 ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴 shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴 查找并替换(在底行命令模式中输入) %s/sad/88888888888888 效果:查找文件中所有sad,替换为88888888888888 /you 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个) 3、文件权限的操作 ****linux文件权限的描述格式解读 drwxr-xr-x (也可以用二进制表示 111 101 101 --> 755) d:标识节点类型(d:文件夹 -:文件 l:链接) r:可读 w:可写 x:可执行 第一组rwx: 表示这个文件的拥有者对它的权限:可读可写可执行 第二组r-x: 表示这个文件的所属组对它的权限:可读,不可写,可执行 第三组r-x: 表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行 ****修改文件权限 chmod g-rw haha.dat 表示将haha.dat对所属组的rw权限取消 chmod o-rw haha.dat 表示将haha.dat对其他人的rw权限取消 chmod u+x haha.dat 表示将haha.dat对所属用户的权限增加x 也可以用数字的方式来修改权限 chmod 664 haha.dat 就会修改成 rw-rw-r-- 如果要将一个文件夹的所有内容权限统一修改,则可以-R参数 chmod -R 770 aaa/ chown angela:angela aaa/ <只有root能执行> 目录没有执行权限的时候普通用户不能进入 文件只有读写权限的时候普通用户是可以删除的(删除文件不是修改它,是操作父及目录),只要父级目录有执行和修改的权限 4、基本的用户管理 *****添加用户 useradd angela 要修改密码才能登陆 passwd angela 按提示输入密码即可 **为用户配置sudo权限 用root编辑 vi /etc/sudoers 在文件的如下位置,为hadoop添加一行即可 root ALL=(ALL) ALL hadoop ALL=(ALL) ALL 然后,hadoop用户就可以用sudo来执行系统级别的指令 [hadoop@shizhan ~]$ sudo useradd huangxiaoming 5、系统管理操作 *****查看主机名 hostname ****修改主机名(重启后无效) hostname hadoop *****修改主机名(重启后永久生效) vi /ect/sysconfig/network ****修改IP(重启后无效) ifconfig eth0 192.168.12.22 ****修改IP(重启后永久生效) vi /etc/sysconfig/network-scripts/ifcfg-eth0 mount **** 挂载外部存储设备到文件系统中 mkdir /mnt/cdrom 创建一个目录,用来挂载 mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/ 将设备/dev/cdrom挂载到 挂载点 : /mnt/cdrom中 *****umount umount /mnt/cdrom *****统计文件或文件夹的大小 du -sh /mnt/cdrom/Packages df -h 查看磁盘的空间 ****关机 halt ****重启 reboot ******配置主机之间的免密ssh登陆 假如 A 要登陆 B 在A上操作: %%首先生成密钥对 ssh-keygen (提示时,直接回车即可) %%再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中 ssh-copy-id B 6、打包和压缩 1.gzip压缩 gzip a.txt 2.解压 gunzip a.txt.gz gzip -d a.txt.gz 3.bzip2压缩 bzip2 a 4.解压 bunzip2 a.bz2 bzip2 -d a.bz2 5.将当前目录的文件打包 tar -cvf bak.tar . 将/etc/password追加文件到bak.tar中(r) tar -rvf bak.tar /etc/password 6.解压 tar -xvf bak.tar 7.打包并压缩gzip tar -zcvf a.tar.gz 8.解压缩 tar -zxvf a.tar.gz 解压到/usr/下 tar -zxvf a.tar.gz -C /usr 9.查看压缩包内容 tar -ztvf a.tar.gz zip/unzip 10.打包并压缩成bz2 tar -jcvf a.tar.bz2 11.解压bz2 tar -jxvf a.tar.bz2 7、进程控制 1.查看用户最近登录情况 last lastlog 2.查看硬盘使用情况 df 3.查看文件大小 du 4.查看内存使用情况 free 5.查看文件系统 /proc 6.查看日志 ls /var/log/ 7.查看系统报错日志 tail /var/log/messages 8.查看进程 top 9.结束进程 kill 1234 kill -9 4333 本文转自yushiwh 51CTO博客,原文链接:http://blog.51cto.com/yushiwh/1906700,如需转载请自行联系原作者

优秀的个人博客,低调大师

CentOS常用命令:find & 常用快捷方式

常用快捷方式 ctrl+u:往前清空 ctri+k:往后清空 ctrl+d:此行为空时退出终端,不为空时往后删一个字符 ctrl+h:删除光标前一个字符 ctrl+e:挪到光标最后 ctrl+a:挪到光标最前 ctrl+f:后移一个字符 ctrl+c:结束此进程 ctrl+p:重复上一次命令 ctrl+l:清屏 2.23/2.24/2.25 find命令 系统中有4个搜索工具 1、which 只能用来查找PATH环境变量中出现的路径下的可执行文件 2、whereis 需要预生成一个文件列表库去查找跟给出的文件名相关的文件 3、locate 类似于whereis 4、find 格式为 find [路径] [参数条件-type,-name -mtime] 跟多个条件默认是并且的意思,加上 “-o” 就是或者的意思 -atime +n/-n : access访问或执行时间大于/小于n天的文件 -ctime +n/-n : change写入、更改inode属性(例如更改所有者、权限或者链接)时间大于/小于n天的文件 -mtime +n/-n : modify 写入时间大于/小于n天的文件 #(-1天以内,+1大于1天,发生过更改,类型为 f 的文件) find / -type f -mtime -1 #2小时内文件,exec为find的一个选项,{}代表find出来的文件列表,最后需要加一个 ;但是需要 \脱意一下。 find /home/ww/ -type f -mmin -120 -exec ls -l {} \; #给2个小时内找出来的文件加个bak后缀 find /home/ww/ -type f -mmin -120 -exec mv {} {}.bak \; #查找大于10M的文件并列出来 find ./ -type f -size +10M -exec ls -l {} \; ls -lrti find / -inum 50677474 #查找inode号,查找硬链接文件 stat 2.txt #查看文件具体信息(包含设备、权限、各种时间、inode等) LANG=en #修改系统语言 echo $LANG #查看当前语言 2.26 文件名后缀 linux中文件名的后缀没有任何具体的意义,加或者不加都一样,但是为了区分,我们习惯在定义文件名同时加上一个后缀名,常用的几个后缀: 1、sh代表它是一个shell脚本 2、tar.gz代表是个压缩包 3、test.zip代表一个压缩文件 4、my.cnf代表一个配置文件

优秀的个人博客,低调大师

linux(系统centos6.5)常用命令总结

ls -al 列出当前目录下的所有文件和子目录 用户在登录Linux时由/etc/passwd文件来决定要使用哪个shell,用户使用的shell被列于每行的末尾(/bin/bash) ls -F在列出的文件,目录名称后面加一个符号,列如可执行文件加“*”目录则加“/” cd后面不加任何东西会回到使用者自己的home目录。如果是root那就是回到/root。这个功能同cd~是一样的 mkdir与rmdir mkdir是在当前目录下新建一个目录,rmdir是用来删除已建立的目录 cp这个命令相当于dos下面的copy命令复制 copy -r源文件(source)目的文件(target)参数r是指连同源文件中的子目录一同拷贝 rm命令是用来删除文件的,rm命令常用的参数有三个:-i,-r,-f rm -i test系统会询问我们是否删除test文件,敲y/n确认是否删除test文件 rm -i目录名可以连同目录下面的子目录都删除,功能比上面讲到的rmdir更强大 rm -f文件名 这个操作可以不经确认强制删除文件 所以在这里要认识到rm -rf的严重性,不要轻易使用 mv这个命令的功能是移动目录文件,引申功能是给目录文件重命令 mv 1.tar 1.txt将/home目录下的1.tar更名为1.txt cat这个命令是linux中非常重要的一个命令,他的功能是显示或连接一般的ascii文本文件 cat file1 file2>file3该命令是把file1,file2的内容结合起来在重定向到file3文件中 more是显示一般文本文件的指令,如果一个文本文件太长了超过一个屏幕的画面,这时用cat来看是在是不太理想,就可以试试more pwd这个命令的作用是显示用户当前的工作路径,直接输入pwd即可 用户及用户组命令 useradd +用户名创建一个新的用户账号, Useradd tiantian系统将创建一个新用户tiantian,该用户的home目录为/home/tiantian useradd用户名-g组名-G组名-d Home目录名-p密码 其中: -g指定该用户的首要组 -G指定该用户的次要组 -d指定该用户的Home目录 -p指定该用户的密码 如输入以下命令: useraddOracle-g oinstall -G dba -d /home/oracle -p ora123 系统将创建一个用户oracle,oracle用户的首要组为oinstall,次要组为dba,home目录为/home/oracle,密码为ora123 userdel+用户名删除一个已经存在的账号 groupadd +组名创建一个新的用户组 groupdel+组名用于删除一个已经存在的用户组名 passwd命令用于改变自己的口令 passwd:输入该命令后,按系统提示一次输入密码和密码确认后,即可完成用户密码的修改 此外超级用户还可以修改其他用户的口令 passwd +用户名 chmod用于改变文件或目录的访问权限。该命令有两种方法:一种是包含字母和操作符表达式的文字设定法,另一种是包含数字的数字设定法 1:操作对象who可以是下述字母中的任一个或者它们的组合 u表示用户(user)即文件或目录的所有者 g表示同组(group)用户即与文件属主有相同组id的所有用户 o表示其他(others)用户 a:表示所有(all)用户它是系统默认值 2:操作符号可以是: +:添加某个权限 -:取消某个权限 =:赋予给定权限,并取消其他所有权限 3:mode表示权限,常用的参数有: r:可读 w:可写 x:可执行 将文件text,的权限设为:文件属主可读,可写,可执行,与文件属主同组的用户可读,其他用户不可读, chown:用于更改某个文件或目录的属主或属组,例如root用户把自己的一个文件拷贝给用户oracle,为了让用户oracle能够存取这个文件,root用户应该把这个文件的属主设为oracle chown[用户:组]文件 例如:将test文件的属主与属组分别改为oracle和dba chown oracle:dba text 用root新建一个目录并在其下新建一个文件,并将两者如下授权: chmod o=r xxx 然后切换到普通用户,尝试打开目录,发现失败 当如下授权后,发现可以打开目录和文件,但不能修改: chmod o+x xxx 说明对文件来说,r权限为可读,但对目录来说,要想进入目录中,必须要有x权限。 ps:查看进程 -f:全格式显示 -e:显示所有进程 -l:长格式显示 显示的项目依次为UID(执行进程的用ID),PID(进程),PPID(父进程ID),TTY(终端名称)STIME(进程启动时间),TIME(进程执行时间) CMD(该进程的命令行输入) 但是一般使用ps -ef输出比较多可以使用ps -ef | grep oracle top与ps命令的基本作用是相同的,显示系统当前的进程和其他状况。但是top是一个动态显示过程,q退出 kill +进程号结束进程 kill -9 1234将终止PID进程号为1234的进程(-9表示强制停止) cron用于实现定时任务的完成 一个用户名为user的用户它所对应的crontab文件应该是/var/spool/cron/user。也就是说,以该用户命令的crontab文件存放在/var/spool/cron目录下面。cron命令还讲搜索/etc/crontab文件,这个文件使用不同格式写成的。cron启动以后它将首先检查是否有用户设置了crontab文件 如果没有就转入休眠状态,释放系统资源。它每分钟醒过来一次查看当前是否有需要运行的命令 可以使用 crontab -l命令查看目前已经存在的cron任务 crontab -r删除当前用户的cron进程 crontab -e添加计划任务 分时日月周 df -k将显示各分区的磁盘空间使用情况。 reboot系统重启命令 Shutdown关闭系统{选项}{时间}{警告信息} -k:并不真正关机而只是发出警告信息给所有用户 -r:关机后立即重新启动 -h关机后不重新启动 -f快速关机重新启动跳过fsck -n快速关机不经过init程序 -c取消一个已经运行的shutdown Shutdown -r +10 系统在十分钟后关机并且马上重新启动 Shutdown -h now系统马上关机并且不重新启动 名词介绍: 控制台:(console),它就是我们常见的使用字符串操作界面的人机接口,列如dos.我们说的控制台命令就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。 Linux是一个多用户操作系统,这表示它可以同时接受多个用户登录。Linux还允许一个用户登录进行多次登录,这是因为linux和unix一样提供了虚拟控制台的访问方式,允许用户在同一时间从控制台进行多次登录 分类: Linux 好文要顶 关注我 收藏该文 左正 关注 - 29 粉丝 - 126 +加关注 0 0 « 上一篇: Chrome 控制台console的用法(学了之后对于调试js可是大大有用的哦) » 下一篇: 在CentOS上搭建PHP服务器环境 posted @ 2017-05-17 17:27 左正 阅读( 23) 评论( 0) 编辑 收藏 刷新评论 刷新页面 返回顶部 (评论功能已被禁用) 【推荐】超50万VC++源码: 大型工控、组态\仿真、建模CAD源码2018! 【推荐】腾讯云新用户域名抢购1元起,抓紧抢购 最新IT新闻: · 阮一峰:加密货币的本质 · ofo被曝订单较峰值跌六成 账户现金仅能支撑一个月 · 途牛宣布一亿美元股票回购计划及CTO任命 · 我们帮你划了一份微信公开课PRO的重点 · iPhone 4S起死回生,可降级至iOS 6.1.3 » 更多新闻... 最新知识库文章: · 步入云计算 · 以操作系统的角度述说线程与进程 · 软件测试转型之路 · 门内门外看招聘 · 大道至简,职场上做人做事做管理 » 更多知识库文章... 历史上的今天: 2015-05-17 图像相似度算法的C#实现及测评 2012-05-17 Android 创建其它应该程序的上下文对象 2012-05-17 Android 读取文件内容 2012-05-17 Android数据存储与访问 公告 本文转自 左正博客园博客,原文链接: http://www.cnblogs.com/soundcode/p/6868602.html,如需转载请自行联系原作者

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。