做软件开发的朋友相信大家或多或少都接触过Linux知道Linux中的命令是非常多的但是我们也不必因此而烦恼因为我们只需要掌握常用的命令就可以满足我们日常工作开发了。下面汇总了做开发以来最常用的32个命令分享给有需要的朋友。1、cd-切换当前目录这是一个最基本也是最常用的命令它用于切换当前目录它的参数是要切换到的目录的路径可以是绝对路径也可以是相对路径。cd /root # 切换到目录/root cd ./path # 切换到当前目录下的path目录中“.”表示当前目录 cd ../path # 切换到上层目录中的path目录中“..”表示上一层目录2、ls-查看文件与目录这也是一个非常有用的查看文件与目录的命令它的参数非常多下面就列出一些常用的参数-l 列出长数据串包含文件的属性与权限数据等-a 列出全部的文件连同隐藏文件开头为.的文件一起列出来常用-d 仅列出目录本身而不是列出目录的文件数据-h 将文件容量以较易读的方式GBkB等列出来-R 连同子目录的内容一起列出递归列出等于该目录下的所有文件都会显示出来注这些参数也可以组合使用ls -l # 以长数据串的形式列出当前目录下的数据文件和目录 ls -al # 以长数据串的形式列出当前目录下的数据文件和目录及隐藏文件(常用) ls -lR # 以长数据串的形式列出当前目录下的所有文件 ls -aR # 列出当前目录所有文件包括子目录 ls -al --block-sizem # 查看文件大小其中k,m,g表示单位相关命令如果想展示树形结构可使用tree命令# 使用yum install tree命令先安装tree tree # 树形展示当前目录下所有子文件和目录该命令不显示中文 tree -N # 中文展示 tree -N -L 2 # 遍历两级菜单 tree /home --charsetgbk -L 2 # 设定中文编码 # -a显示所有文件-C文件与目录清单加上颜色-L 2遍历两级菜单 tree -aC -L 2-I命令允许你使用正则匹配来排除掉你不想看到的文件夹。tree -I node_modules # 也可以使用|同时排除掉多个文件夹 # 最后一个使用到正则匹配这样以test_开头的文件夹都不会被显示出来。 tree -I node_modules|cache|test_*3、grep-分析一行内容过滤筛选分析一行的信息若当中有我们所需要的信息就将该行显示出来该命令通常与管道命令一起使用用于对一些命令的输出进行筛选加工等下面就列出一些常用的参数-a 将binary文件以text文件的方式查找数据-c 计算找到‘查找字符串’的次数-i 忽略大小写的区别即把大小写视为相同-v 反向选择即显示出没有‘查找字符串’内容的那一行# 把ls -l的输出中包含字母file不区分大小写的内容输出 ls -l | grep -i file # 取出文件/etc/passwd中包含root的行并把找到的关键字加上颜色 grep --colorauto root /etc/passwd # 当我们需要过滤多个文件时也很管用 # 查看以smart开头的目录下面以smart开头的properties配置文件是否包含kafka grep --colorauto kafka smart*/smart*.properties4、cat-查看文本文件的内容该命令用于查看文本文件的内容后接要查看的文件名通常可用管道与more和less一起使用从而可以一页页地查看数据下面就列出一些常用的参数-n由 1 开始对所有输出的行数编号。-b和 -n 相似只不过对于空白行不编号。cat text | less # 查看text文件中的内容,这条命令也可以使用less text来代替 cat /etc/redhat-release # 查看操作系统版本号 cat /proc/version # 查看操作系统版本 cat /etc/os-release # 查看操作系统版本号 cat /etc/*release* # 查看操作系统版本号,这个命令比较好使 # 总核数 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 cat /proc/cpuinfo # 查看CPU信息 # 查看物理CPU个数 cat /proc/cpuinfo | grep physical id| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo | grep cpu cores| uniq # 查看逻辑CPU的个数 cat /proc/cpuinfo | grep processor | wc -l # 查看CPU信息型号 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c cat /proc/meminfo # 查看内存信息 # 查看所有用户帐号的信息包括用户名和密码 # passwd文件由许多条记录组成每条记录占一行记录了一个用户帐号的所有信息。 # 每条记录由7个字段组成字段间用冒号“:”隔开其格式如下 # username:password:User ID:Group ID:comment:home directory:shell cat /etc/passwd cat /etc/resolv.conf # 查看DNS # 过滤有error的行并输出行号 cat -n app.log | grep error # 清空 /etc/test.txt 文档内容 cat /dev/null /etc/test.txt5、tail/tailf-从尾部查看文本文件的内容用于从文件尾部查看文件的内容有一个常用的参数 -f 常用于查阅正在改变的日志文件。tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上并且不断刷新只要 filename 更新就可以看到最新的文件内容。常用参数如下-f循环读取-c数目显示的字节数-n行数显示文件的尾部 n 行内容# 查看文件的后10行 tail -10 /etc/passwd 或 tail -n 10 /etc/passwd # 不停地去读/var/log/messages文件最新的内容这样有实时监视的效果用Ctrlc来终止 tail -f /var/log/messages # 显示文件 notes.log 的内容从第 20 行至文件末尾: tail 20 notes.log # 显示文件 notes.log 的最后 10 个字符: tail -c 10 notes.logtailf 等同于tail -f -n 10与tail -f不同的是如果文件不增长它不会去访问磁盘文件所以tailf特别适合那些便携机上跟踪日志文件因为它减少了磁盘访问可以省电。6、find-查找文件一个查找文件的命令相对而言它的使用也相对较为复杂参数也比较多所以在这里将给把它们分类列出。# 命令格式 find [PATH] [option] [action] # 与时间有关的参数 -mtime n : n为数字意思为在n天之前的“一天内”被更改过的文件 -mtime n : 列出在n天之前不含n天本身被更改过的文件名 -mtime -n : 列出在n天之内含n天本身被更改过的文件名 -newer file : 列出比file还要新的文件名 # 例如 find /root -mtime 0 # 在当前root目录下查找今天之内有改动的文件 find /root -newer xxx # 在当前root目录下查找比file还要新的文件名 # 与用户或用户组名有关的参数 -user name : 列出文件所有者为name的文件 -group name : 列出文件所属用户组为name的文件 -uid n : 列出文件所有者为用户ID为n的文件 -gid n : 列出文件所属用户组为用户组ID为n的文件 # 例如 find /home/liguodong -user liguodong # 在目录/home/liguodong 中找出所有者为liguodong的文件 # 与文件权限及名称有关的参数 -name filename 找出文件名为filename的文件 -size [-]SIZE 找出比SIZE还要大或小-的文件 -tpye TYPE 查找文件的类型为TYPE的文件TYPE的值主要有一般文件f)、设备文件b、c、 目录d、连接文件l、sockets、FIFO管道文件p -perm mode 查找文件权限刚好等于mode的文件mode用数字表示如0755 -perm -mode 查找文件权限必须要全部包括mode权限的文件mode用数字表示 -perm mode 查找文件权限包含任一mode的权限的文件mode用数字表示 # 例如 find / -name passwd # 查找文件名为passwd的文件 find . -perm 0755 # 查找当前目录中文件权限的0755的文件, 第一个0表示十进制 find . -size 1k # 查找当前目录中大于1KB的文件注意c表示byte find . -size 1024c # 查找当前目录中大于1KB的文件7、locate-查找文件用于查找符合条件的文档他会去保存文档和目录名称的数据库内查找合乎范本样式条件的文档或目录。当我们不知道某个文件放哪里了能够通过他快速定位到文件目录这是一条非常有用的命令。# 查找eureka-server-xxx.jar文件的位置 locate eureka-server-xxx.jar # 查询包含passwd的目录或文档 locate passwdlocate与find的不同:find 是去硬盘找locate 只在/var/lib/slocate资料库中找。locate的速度比find快它并不是真的查找而是查数据库一般文件数据库在/var/lib/slocate/slocate.db中所以locate的查找并不是实时的而是以数据库的更新为准一般是系统自己维护也可以手工升级数据库 命令为locate -u8、cp-复制文件该命令用于复制文件它还可以把多个文件一次性地复制到一个目录下它的常用参数如下-a 将文件的特性一起复制-p 连同文件的属性一起复制而非使用默认方式与-a相似常用于备份-i 若目标文件已经存在时在覆盖时会先询问操作的进行-r 递归持续复制用于目录的复制行为-u 目标文件与源文件有差异时才会复制cp -a file1 file2 # 连同文件的所有特性把文件file1复制成文件file2 cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中9、scp-远程复制文件该命令用于 Linux 之间复制文件和目录。 scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的。# 命令格式 scp [可选参数] file_source file_target scp local_file remote_usernameremote_ip:remote_folder scp local_file remote_usernameremote_ip:remote_file scp local_file remote_ip:remote_folder scp local_file remote_ip:remote_file下面就列出一些常用的参数-p保留原文件的修改时间访问时间和访问权限。-q 不显示传输进度条。-r 递归复制整个目录。-v详细方式显示输出。# 从本地服务器复制到远程服务器 # 复制文件 scp /home/space/music/1.mp3 rootwww.runoob.com:/home/root/others/music # 复制文件夹 scp -r /home/space/music/ rootwww.runoob.com:/home/root/others/ # 从远程服务器复制到本地服务器 # 复制文件 scp rootwww.runoob.com:/home/root/others/music /home/space/music/1.mp3 # 复制文件夹 scp -r www.runoob.com:/home/root/others/ /home/space/music/10、vim-编辑文件该命令主要用于文本编辑它接一个文件名作为参数如果文件存在就打开如果文件不存在就以该文件名创建一个文件。vim是一个非常好用的文本编辑器它里面有很多非常好用的命令在这里不再多说。vim demo.txt # 编辑demo.txt文件11、mv-移动目录文件该命令用于移动文件、目录或更名move之意它的常用参数如下-f force强制的意思如果目标文件已经存在不会询问而直接覆盖-i 若目标文件已经存在就会询问是否覆盖-u 若目标文件已经存在且比目标文件新才会更新注该命令可以把一个文件或多个文件一次移动一个文件夹中但是最后一个目标文件一定要是“目录”。mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中 mv file1 file2 # 把文件file1重命名为file2 mv xxdir/ tempdir # 把目录xxdir下的所有文件和目录移动到temp目录下,包含xxdir目录 mv xxdir/* tempdir # 把目录xxdir下的所有文件和目录移动到temp目录下,不包含xxdir目录12、rm-删除目录文件该命令用于删除文件或目录remove之意它的常用参数如下-f 就是force的意思忽略不存在的文件不会出现警告消息-i 互动模式在删除前会询问用户是否操作-r 递归删除最常用于目录删除它是一个非常危险的参数rm -i file # 删除文件file在删除之前会询问是否进行该操作 rm -rf dir # 强制删除目录dir中的所有文件**避免rm -rf ***cd ${log_path} rm -rf *上面的命名先进入到日志目录然后把日志都删除。看上去没有任何问题。但是当目录不存在时悲剧就发生了。ps偷偷告诉你一个小故事我之前就犯过这种错误不过好在是自己学习虚拟机上面。如果实现线上生产环境就不是故事了而是事故了。上诉问题有四种方法进行规避第一、命令替换在生产环境把rm -rf 命令替换为mv再写个定时shell定期清理。模拟了回收站的功能。第二、收拢权限帐号权限的分离线上分配work帐号只能够删除/home/work/logs/目录无法删除根目录。大公司一般线上权限管理比较规范小公司就未必了搞不好所有的小伙伴都有权限在线上乱搞。第三、使用可以通过“”将cd ${log_path} rm -rf *合并成一个语句cd ${log_path} rm -rf *当前半句执行失败的时候后半句不再执行。第四、判断目录是否存在制定编码规范对目录进行操作之前要先判断目录是否存在。靠人的自觉来保证规范的执行总感觉有些不太靠谱。当然规范是有必要的。13、ln-连接这是一个非常重要命令它的功能是为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的目录用到相同的文件时我们不需要在每一个需要的目录下都放一个必须相同的文件我们只要在某个固定的目录放上该文件然后在其它的目录下用ln命令链接它就可以不必重复的占用磁盘空间。而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link)硬链接的意思是一个档案可以有多个名称而软链接的方式则是产生一个特殊的档案该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中而软链接却可以跨越不同的文件系统。不论是硬链接或软链接都不会将原本的档案复制一份只会占用非常少量的磁碟空间。它的常用参数如下-f : 链接时先将与 dist 同档名的档案删除-i : 在删除与 dist 同档名的档案时先进行询问-n : 在进行软链接时将 dist 视为一般的档案-s : 进行软链接(symbolic link)-v : 在连结之前显示其档名-b : 将在链接时会被覆写或删除的档案进行备份# 创建软链接在/usr/bin/目录下freeswitch文件 # 如果 /usr/local/freeswitch/bin/freeswitch丢失/usr/bin/freeswitch将失效 ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/ # 删除软链接,和删除普通的文件是一眼的删除都是使用rm来进行操作 rm -rf 软链接名称 # 下面我们来创建test_chk目录的软链接 ln -s test_chk test_chk_ln #软链接创建好了我们来看看怎么删除它 # 正确的删除方式删除软链接但不删除实际数据 rm -rf ./test_chk_ln # 错误的删除方式 rm -rf ./test_chk_ln/ (这样就会把原来test_chk下的内容删除)软链接与硬链接的区别软链接软链接以路径的形式存在。类似于Windows操作系统中的快捷方式软链接可以 跨文件系统 硬链接不可以软链接可以对一个不存在的文件名进行链接软链接可以对目录进行链接硬链接硬链接以文件副本的形式存在。但不占用实际空间。不允许给目录创建硬链接硬链接只有在同一个文件系统中才能创建14、chmod-修改文件权限chmod用于管理文件或目录的权限文件或目录权限的控制分别以读取®、写入(w)、执行(x)3种一般的用法如下chmod [-R] abc 文件或目录参数说明如下-R进行递归的持续更改即连同子目录下的所有文件都会更改abc : a,b,c各为一个数字分别表示User、Group、及Other的权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法u 表示该文件的拥有者g 表示与该文件的拥有者属于同一个群体(group)者o 表示其他以外的人a 表示这三者皆是。表示增加权限、- 表示取消权限、 表示唯一设定权限。r 表示可读取w 表示可写入x 表示可执行X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。另一种是包含数字的数字设定法。其中4表示读2表示写1表示可执行因此7表示读写可执行5表示读可执行chmod gw file # 向file的文件权限中加入用户组可写权限 # 文件 file1.txt 设为所有人皆可读取 : chmod ugor file1.txt chmod 755 file # 把file的文件权限改变为-rxwr-xr-x chmod arwx file 等价于 chmod 777 file chmod ugrwx,ox file 等价于 chmod 771 file15、chgrp-修改文件所属用户组该命令用于改变文件所属用户组它的使用非常简单它的基本用法如下chgrp [-R] dirname/filename参数说明如下-R 进行递归的持续对所有文件和子目录更改# 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users chgrp users -R ./dir16、chown-修改文件所属用户、用户组该命令用于改变文件的所有者与chgrp命令的使用方法相同只是修改的文件属性不同# 将文件 file1.txt 的拥有者设为 runoob用户组组 runoobgroup : chown runoob:runoobgroup file1.txt # 将目前目录下的所有文件与子目录的拥有者皆设为 runoob群体的使用者 runoobgroup: chown -R runoob:runoobgroup *17、sz/rz-文件上传下载这是Linux/Unix同Windows进行ZModem文件传输的命令行工具。windows端需要支持ZModem的telnet/ssh客户端比如SecureCRT、XShellsz将选定的文件发送到本地机器rz运行该命令会弹出一个文件选择窗口从本地选择文件上传到Linux服务器# 安装 yum install lrzsz # 从本地上传文件到服务器 rz # 从服务器下载一个文件到本地 sz filename # 从服务器下载多个文件到本地 sz filename1 filename2 ### 下载dir目录下的所有文件不包含dir下的文件夹 # sz dir/*18、yum-包安装卸载Linux包管理器 解决依赖问题方便快捷yum install package_name -y # 安装包 yum search package_name # 搜索包名 yum search all # 查询所有 yum remove package_name -y # 删除包(不建议用yum可以解决依赖问题删除会删除所有包依赖) yum update # 安装所有软件到最新版本19、curl-与服务器之间传输数据curl是一个非常实用的、用来与服务器之间传输数据的工具支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP)curl设计为无用户交互下完成工作curl提供了一大堆非常有用的功能包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传等。# 下载页面 curl -o index.html http://aiezu.com # 下载并显示进度条 curl -# -o centos6.8.iso http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS.iso # 继续完成上次终止的未完成的下载 curl -# -o centos6.8.iso -C - http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS.iso # 访问一个网页 curl https://www.baidu.com # http请求带上用户名和密码 curl -u xxx:xxx http://10.250.xxx.xxx:5400/xxx/health # http post请求 curl http://xxx.xxx.xxx/shorturl -X POST -d {originalUrl:xxx, expire:7776000, app:xxx } --header Content-Type: application/json20、wget-文件下载一个下载文件的工具我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTPHTTPS和FTP协议可以使用HTTP代理。# 使用wget下载单个文件 wget http://www.linuxde.net/testfile.zip # 下载并以不同的文件名保存 wget -O wordpress.zip http://www.linuxde.net/download.aspx?id1080 # 使用wget断点续传 wget -c http://www.linuxde.net/testfile.zip # wget限速下载 wget --limit-rate300k http://www.linuxde.net/testfile.zip21、ps-查看进程运行情况该命令用于将某个时间点的进程运行情况选取下来并输出它的常用参数如下-a 显示除控制进程与无端进程外的所有进程-d 显示除控制进程外的所有进程-e 显示所有进程-g 显示会话或组ID在grplist列表中的进程-p 显示PID在pidlist列表中的进程-s 显示会话ID在sesslist列表中的进程-t 显示终端ID在ttylist列表中的进程-u 显示有效用户ID在userlist列表中的进程-x 以用户为中心组织进程状态信息显示-M 显示进程的安全信息-f 显示完整格式的输出-j 显示任务信息-l 显示长列表-o 仅显示由format指定的列-y 不要显示进程标记-L 显示进程中的线程其实我们只要记住ps一般使用的命令参数搭配即可它们并不多如下ps aux # 查看系统所有的进程数据 ps ax # 查看不与终端terminal有关的所有进程 ps -lA # 查看系统所有的进程数据 ps axjf # 查看连同一部分进程树状态 ps –ef # 显示所有信息连同命令行 ps -ef | grep xxx # 过滤池包含xxx的行22、top-查看系统的整体运行情况实时动态地查看系统的整体运行情况是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面用热键可以管理。它的常用参数如下-b以批处理模式操作-c显示完整的命令-i 时间设置间隔时间-u 用户名指定用户名-p 进程号指定进程-n 次数循环显示的次数。top交互命令如下h显示帮助画面给出一些简短的命令总结说明k终止一个进程i忽略闲置和僵死进程这是一个开关式命令q退出程序r重新安排一个进程的优先级别S切换到累计模式s改变两次刷新之间的延迟时间单位为s如果有小数就换算成ms。输入0值则系统将不断刷新默认值是5sf或者F从当前显示中添加或者删除项目o或者O改变显示项目的顺序l切换显示平均负载和启动时间信息m切换显示内存信息t切换显示进程和CPU状态信息c切换显示命令名称和完整命令行M根据驻留内存大小进行排序P根据CPU使用百分比大小进行排序T根据时间/累计时间进行排序w将当前设置写入~/.toprc文件中。top # 显示系统中进程的资源占用状况 top -c # 显示系统中进程的资源占用状况并显示完整的命令 top -u xxx # 查看xxx用户的进程的资源占用状况相关命令iotop、htop23、kill-根据进程ID杀死进程该命令用于向某个工作%jobnumber或者是某个PID数字传送一个信号它通常与ps和jobs命令一起使用它的基本语法如下kill -signal PIDsignal的常用参数如下1SIGHUP启动被终止的进程2SIGINT相当于输入ctrlc中断一个程序的进行9SIGKILL强制中断一个进程的进行15SIGTERM以正常的结束进程方式来终止进程17SIGSTOP相当于输入ctrlz暂停一个进程的进行注最前面的数字为信号的代号使用时可以用代号代替相应的信号。# 以正常的结束进程方式来终于第一个后台工作可用jobs命令查看后台中的第一个工作进程 kill -SIGTERM %1 # 重新改动进程ID为PID的进程PID可用ps命令通过管道命令加上grep命令进行筛选获得 kill -SIGHUP PID # 强制杀死进程号为1112的进程 kill -9 1112kill -15 PID和kill -9 PID的区别kill -9 PID 是操作系统从内核级别强制杀死一个进程。kill -15 PID 可以理解为操作系统发送一个通知告诉应用主动关闭。效果是正常退出进程退出前可以被阻塞或回调处理。并且它是Linux缺省的程序中断信号。尽量使用kill -15 PID而不要使用kill -9 PID。kill -9 PID没有给进程留下善后的机会关闭socket链接清理临时文件将自己将要被销毁的消息通知给子进程重置自己的终止状态一些磁盘操作多的程序更是不要使用kill -9 PID会导致数据的丢失如ESkafka等。批量杀死进程(ps/grep/awk/kill)ps aux|grep server|grep -v grep | awk {print $2}|xargs kill -9说明管道符”|”用来隔开两个命令管道符左边命令的输出会作为管道符右边命令的输入。awk的作用是输出某一列{print $2}就是输出第二列如上即是pid这一列。“xargs kill -9” 中的 xargs 命令是用来把前面命令的输出结果作为”kill -9″命令的参数并执行该命令。”kill -9″会强行杀掉指定进程。24、killall-杀死指定名字的进程用于杀死指定名字的进程向一个命令启动的进程发送一个信号它的一般语法如下killall [-iIe] [command name]它的参数如下-i 交互式的意思若需要删除时会询问用户-e 表示后面接的command name要一致但command name不能超过15个字符-I 命令名称忽略大小写killall -SIGHUP syslogd # 重新启动syslogd25、file-辨识文件类型该命令用于辨识文件类型因为在Linux下文件的类型并不是以后缀为分的所以这个命令对我们来说就很有用了它的用法非常简单基本语法如下file filename查看test文件格式file ./test26、tar-对文件压缩解压缩该命令用于对文件进行打包默认情况并不会压缩如果指定了相应的参数它还会调用相应的压缩程序如gzip和bzip等进行压缩和解压。它的常用参数如下-c 新建打包文件-t 查看打包文件的内容含有哪些文件名-x 解打包或解压缩的功能可以搭配-C大写指定解压的目录-j 通过bzip2的支持进行压缩/解压缩-z 通过gzip的支持进行压缩/解压缩-v 在压缩/解压缩过程中将正在处理的文件名显示出来-f filename filename为要处理的文件-C dir 指定压缩/解压缩的目录dir注意-c,-t,-x不能同时出现在同一条命令中通常我们只需要记住下面几条命令即可# 压缩 tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称 # 查询 tar -jtv -f filename.tar.bz2 # 解压 tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录 # 注上面文件名并不定要以后缀tar.bz2结尾这里主要是为了说明使用的压缩程序为bzip2 # 解压elasticsearch-5.5.2.tar.gz tar -zxvf elasticsearch-5.5.2.tar.gz27、zip/unzip/gzip/gunzip-对文件压缩解压缩用于压缩、解压缩文件zip 压缩的后文件是 *.zip 而 gzip 压缩后的文件 *.gz相应的解压缩命令则是 gunzip 和 unzip。# 将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip zip -q -r html.zip /home/html zip -r MiniGPT-4.zip ./MiniGPT-4/ # 如果在我们在 /home/html 目录下可以执行以下命令 zip -q -r html.zip * # 从压缩文件 cp.zip 中删除文件 a.c zip -dv cp.zip a.c # 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件 zip -r myfile.zip ./* # 把myfile.zip文件解压到 /home/bunny/ # -o:不提示的情况下覆盖文件 # -d:-d /home/bunny 指明将文件解压缩到/home/bunny目录下 unzip -o -d /home/bunny myfile.zip # 它会将文件压缩为文件 test.txt.gz原来的文件则没有了解压缩也一样 gzip test.txt # 它会将文件解压缩为文件 test.txt原来的文件则没有了为了保留原有的文件 # 我们可以加上 -c 选项并利用 linux 的重定向 gunzip test.txt.gz # 这样不但可以将原有的文件保留而且可以将压缩包放到任何目录中解压缩也一样 gzip -c test.txt /root/test.gz # 解压缩 gunzip -c /root/test.gz ./test.txt28、adduser/useradd/userdel-增加删除用户adduser/useradd为创建用户命令使用权限系统管理员root用户。常用参数说明如下-c comment加上备注文字。备注文字会保存在通常是 /etc/passwd的备注栏位中。-d home_dir设定使用者的根目录为 home_dir 预设值为预设的 home 后面加上使用者帐号-e expire_date设定此帐号的使用期限格式为 YYYY-MM-DD预设值为永久有效-f inactive_time帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能预设值为-1-g 群组指定用户所属的群组。-r 建立一个系统的帐号这个帐号的 UID 会有限制 (/etc/login.defs)# 添加一个一般用户 useradd kk # 添加用户kk # 为添加的用户指定相应的用户组 useradd -g root kk # 添加用户kk并指定用户所在的组为root用户组 # 创建一个系统用户 useradd -r kk # 创建一个系统用户kk # 为新添加的用户指定/home目录 useradd -d /home/myf kk //新添加用户kk其home目录为/home/myf # 当用户名kk登录主机时系统进入的默认目录为/home/myf用户删除命令userdel语法如下:userdel [login ID]删除用户kk:userdel kk29、passwd-修改用户密码更改使用者的密码常用参数如下-d删除密码-l停止账号使用-S显示密码信息-u启用已被停止的账户-x设置密码的有效期-g修改群组密码-i过期后停止用户账号# 修改用户密码 passwd runoob # 设置runoob用户的密码 # 显示账号密码信息 passwd -S runoob # 删除用户密码 passwd -d lx13830、time-测算一个命令的执行时间该命令用于测算一个命令的执行时间。就像平时输入命令一样不过在命令的前面加入一个time即可。在程序或命令运行结束后在最后输出了三个时间它们分别是user用户CPU时间命令执行完成花费的用户CPU时间即命令在用户态中执行时间总和system系统CPU时间命令执行完成花费的系统CPU时间即命令在核心态中执行时间总和real实际时间从command命令行开始执行到运行终止的消逝时间time ./process.sh # 查看process.sh脚本执行时间 time ps aux # 查看ps aux命令的执行时间31、free-显示内存的使用情况显示内存的使用情况包括实体内存虚拟的交换文件内存共享内存区段以及系统核心使用的缓冲区等。参数说明-b以Byte为单位显示内存使用情况。-k以KB为单位显示内存使用情况。-m 以MB为单位显示内存使用情况。-g 以GB为单位显示内存使用情况。-o 不显示缓冲区调节列。-s 间隔秒数持续观察内存使用状况。-t显示内存总和列。# 显示内存使用情况 free # 显示内存使用信息 # 以总和的形式显示内存的使用信息 free -gt # 以总和的形式查询内存的使用信息,以GB为单位 # 周期性的查询内存使用信息 free -g -s 10 # 每10s执行一次命令,以GB为单位32、crontab-定时任务用来定时的去跑一些脚本或者程序linux内置的cron进程能帮我们实现这些需求精确到分设计秒的我们一般自己写脚本。相关配置文件说明/var/spool/cron/目录下存放的是每个用户包括root的crontab任务每个任务以创建者的名字命名/etc/crontab 这个文件负责调度各种管理和维护任务。/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中让它每小时/天/星期、月执行一次。常用参数说明-u 省略该参数表示操作当前用户的crontab-e编辑某个用户的crontab文件内容。如果不指定用户则表示编辑当前用户的crontab文件。-l显示某个用户的crontab文件内容如果不指定用户则表示显示当前用户的crontab文件内容。-r从/var/spool/cron目录中删除某个用户的crontab文件如果不指定用户则默认删除当前用户的crontab文件。-i在删除用户的crontab文件时给确认提示注意-r-i尽量不要执行常见操作命令如下crontab -e # 编辑定时任务 * * * * * sh /opt/lampp/test.sh # 每分钟执行一次test.shcrontab使用 crontab -l # 查看定时任务 * * * * * sh /opt/lampp/test.sh # 重启定时任务进程crond service crond reload # 查看日志 # /var/log/cron只会记录是否执行了某些计划的脚本 sudo tail -100f /var/log/cron定时任务配置实例如下# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed # 每1分钟执行一次myCommand * * * * * myCommand # 每小时的第3和第15分钟执行 3,15 * * * * myCommand # 在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * myCommand # 每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * myCommand # 每周一上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 myCommand # 每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart # 每月1、10、22日的4 : 45重启smb 45 4 1,10,22 * * /etc/init.d/smb restart # 每周六、周日的1 : 10重启smb 10 1 * * 6,0 /etc/init.d/smb restart # 每天18 : 00至23 : 00之间每隔30分钟重启smb 0,30 18-23 * * * /etc/init.d/smb restart # 每星期六的晚上11 : 00 pm重启smb 0 23 * * 6 /etc/init.d/smb restart # 每一小时重启smb * */1 * * * /etc/init.d/smb restart # 晚上11点到早上7点之间每隔一小时重启smb * 23-7/1 * * * /etc/init.d/smb restart好了这是花了2天业余时间整理的日常工作中常用的命令希望能够对你有帮忙。如果觉得还不错希望能得到你的一个赞。如何系统学习网络安全/黑客网络安全不是「速成黑客」而是守护数字世界的骑士修行。当你第一次用自己写的脚本检测出漏洞时那种创造的快乐远胜于电影里的炫技。装上虚拟机从配置第一个Linux环境开始脚踏实地从基础命令学起相信你一定能成为一名合格的黑客。如果你还不知道从何开始我自己整理的282G的网络安全教程可以分享我也是一路自学走过来的很清楚小白前期学习的痛楚你要是没有方向还没有好的资源根本学不到东西下面是我整理的网安资源希望能帮到你。需要的话可以V扫描下方二维码联系领取~如果二维码失效可以点击下方链接去拿一样的哦【CSDN大礼包】最新网络安全/网安技术资料包~282G无偿分享1.从0到进阶主流攻防技术视频教程包含红蓝对抗、CTF、HW等技术点2.入门必看攻防技术书籍pdf书面上的技术书籍确实太多了这些是我精选出来的还有很多不在图里3.安装包/源码主要攻防会涉及到的工具安装包和项目源码防止你看到这连基础的工具都还没有4.面试试题/经验网络安全岗位面试经验总结谁学技术不是为了赚$呢找个好的岗位很重要需要的话可以V扫描下方二维码联系领取~因篇幅有限资料较为敏感仅展示部分资料添加上方即可获取如果二维码失效可以点击下方链接去拿一样的哦【CSDN大礼包】最新网络安全/网安技术资料包~282G无偿分享