600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Linux基础命令必知必会

Linux基础命令必知必会

时间:2018-07-21 00:45:52

相关推荐

Linux基础命令必知必会

基础命令:这里的文件可以是单个文件也可以是文件夹也可以是软连接类文件,一切皆文件

$环境变量,@主机,~用户,|管道符(将一个命令的输出定向到另一个命令的输入;也就说前一个命令处理后的数据会作为数据源传递给下一命令继续进行处理),;连续(使用;保证命令的连续)

>输出重定向,<输入重定向

cat /etc/password | sort | less # 获取password的内容,然后排除,再次使用less查看data ; troff -me verylargedoc | lpr ; date # 记录开始时间,然后开始整理一个large doc,完成后再次记录时间,这样就记录了整理文档的耗时

所有的命令都具有--help,有问题找助手;

以下内容中<source>是指源文件或者源路径,<dest>目标文件或者路径

man <command>manual 手册:search for files in a directory hierarchy

pwdprint working directory 打印当前路径

datedate 打印当前系统时间

history <n>打印历史限制n个最近命令,默认全部

type <command>显示命令的位置

./jemeter.sh执行一个可执行文件

文件基本操作

cdchange directory 切换路径

cd [options] <dest>

cd ~ # 切换到HOMEcd # 切换到HOME

lslist 列出文件列表

ls [options] <dest>

-aall 所有文件包括隐藏文件-llong 长列表即详情 等同于ll

ls # 默认当前路径ls -l /usr/local/bin # 等同于'll'

cpcopy 复制(并重命名)文件

cp [options] <source> <dest>

-aall 全部信息拷贝,连同内链接等一同拷贝 等同于-dpr-rrecursive 递归复制,如果有文件夹会递归复制文件夹中的所有文件-fforce 强制拷贝,如果有相同的文件名强制覆盖-iinteractive 交互,有需要提示的给出弹窗

cp -rf /usr/local/thrid/doc/ /home/doc

mvmove 移动文件(可以用于重命名文件功能)

mv [options] <source> <desc>

-fforce 强制拷贝,如果有相同的文件名强制覆盖-nno-blobber 不覆盖已经存在的文件-iinteractive 交互,有需要提示的给出弹窗

mv -rf /usr/src/log /home/logmv /test/php.log /test/coll.log #如果目标路径是与原路径相同会执行重命名

rmremove 移除文件(rm是不能够直接移除非空的文件夹)

rm [options] <desc>

-rrecursive 递归移除,如果有文件件会递归复制文件件中的所有文件-fforce 强制拷贝,如果有相同的文件名强制覆盖-iinteractive 交互,每移除一个文件时都会提示给出弹窗

rm rf /usr/local/log/temp

mkdirmake directory 创建路径

mkdir [options] <desc>

-mmode 创建路径的同时设置其权限属性-pparrents 可以创建目录路径的父类路径

mkdir -m 711 -pv /usr/local/test/1/2/3/4/5/6/7

rmdirremove directory 移除空的路径

mkdir [options] <desc>

-pparents 连同上级的空目录一并删除(仅限于空的上级目录)

rmdir -pv /usr/local/test/1/2/3/4/5/6/7

touchtouch 创建文件(修改文件的属性)

touch [options] <dest>

-aaccess time 修改文件的访问时间-mmodification time 修改文件的修改时间

touch /usr/local/test.log

lnlink 创建一个连接(在指定路径下创建目标文件的快捷方式)

ln [options] <source> <dest-ln>

-fforce 如果已经存在目标连接名称则强制移除后在创建-iinteractive 交互,有需要提示的给出弹窗-ssoft 创建一个软连接

ln -is /usr/zk /usr/local/bin/zike

tar打包文件,把多个文件打包成一个文件,生成或者提取.tar文件

注意这里并没有压缩,仅仅是打包,如果需要压缩请使用-z参数,或者使用gzip命令

-ccreate a new compressed archive 创建(打包)一个压缩文件-fuse archive file or device ARCHIVE-xextract files from an archive 提取一个包文件-tlist the contents of an archive 列出包文件的内容-vverbosely list files processed 冗长地列出处理过的文件-zfilter the archive through gzip 通过 gzip 过滤存档即:压缩和解压

tar -zcvf archive.tar 1.txt 2.log 3.zip files/4.md # 打包并压缩1,2,3/4等文件到archive.tar文件tar -tvf archive.tar # 查看.tar文件内容tar -zxvf archive.tar # 解压文件包到当前目录

gzip压缩/解压缩文件,会生成或者解压.gzip文件

通常用的比较少,都是直接使用tar -z直接使用了

-kkeep 不删除原有文件,默认完成压缩后会删除原有文件-d解压缩文件

gzip archive.tar archive.tar.gz # 压缩archive.tar 到archive.tar.gzdu -h archive.tar.gz # 查看压缩包信息gzip -d archive.tar.tz # 解压archive.tar.gz 到 archive.tar

lrzsz插件/工具:文件传输器,需要使用yum/apt进行安装

rzsz仅支持单文件处理的传输

rz上传sz下载

rz # 回车后会弹出计算机文件选择弹窗,进行文件选择sz authorized_keys # 回车后会弹出系统文件保存选择弹窗

注意:xshell支持,putty是不支持的

如果是ssh协议可以使用scp,OpenSSH secure file copy

scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target

-rrecurse 递归,用于复制文件夹-Pport 指定host端口

scp d:/res/a.md root@192.168.101.13:~/home/ # 本地上传到linuxscp -r d:/res/ 192.168.101.13:~/home/res/ # 上传文件夹,然后确认用户名及密码scp root@192.168.101.13:/home/res/a.md d:/lin # 由linux下载到本地scp -r :/home/ d:/ln/ # 也可以使用域名

注意scp只能传输regular文件,如果是文件夹的话需要使用-r参数

zip/unzip插件/工具:解压缩文件,需要使用yum/apt进行安装

-rrecurse 递归压缩文件夹-ddelete 删除 zip entry

zip -r folder.zip folder 1.txt 2.txt # 压缩文件到zipdu -h folder.zip # 查看压缩包信息unzip folder.zip -d folder # 解压zip文件

比较之下压缩率:zip不及gzip

findfind 命令用来在指定目录下查找文件,更多使用方法

find path -option [ -print ] [ -exec -ok command ] {} \;

(N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE -nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN -readable -writable -executable -wholename PATTERN -size N[bcwkMG] -type [bcdpflsD] -uid N -used N -user NAME -xtype [bcdpfls] -context CONTEXT

-amin <n>File was last accessed n minutes ago.-atime <n>过去 n 天内被访问的文件-cmin <n>File’s status was last changed n minutes ago.-ctime <n>过去 n 天内被修改的文件-mmin <n>File’s data was last modified n minutes ago.-mtime <n>过去 n 天内被修改过属性的文件-emptyFile is empty and is either a regular file or a directory. (蛋疼会找空的文件)-name/inamne <pattern>文件名符合 str 的文件(iname 忽略大小写) 支持(*,?,[])进行文件名称匹配-type [options]过滤指定类型的文件:fregular file ,ddirectory ,llink file-user <uname>File is owned by user uname-size +/- <n[c/k/M/G]>过滤文件大小(+/-大于/小于参数,c:bytes,k:kb,M:Mb,G:Gb)-writable,-readable,-executable可写,可读,可执行的属性

find . -iname *.log # find 当前目录下以.log结尾的文件find /usr/ -type d -cmin 10find / -size +500M # find 单文件容量大于500M的所有文件

总结: 对文件操作时,一般-r是递归完成指令,-f是强制完成指令,-i是由需要时给出提示 ,-v显示执行过程

文本文件基本读写查

catConcatenate file 输出文本内容到控制台

比较适合打开小型文本文件,因为它是一次性读取全部内容;如果内容比较大的文件建议联合grep一起使用

cat [options] <dest>

-n带有行号打印

cat -n /usr/lacal/log/temp.log | grep -C error

tac功能和作用与cat相同,只不过是文件的读取方向刚好相反

more一次性读取全部文本,可以进入阅读模式,支持内容内容查找

more [options] <dest>

回车键移动下一行

空格键移动下一页

b向上翻一页

f向下翻一页

d向下翻半页

qquit 退出阅读模式,或者ctrl +c

less一屏一屏的读取,可以进入阅读模式,支持操作查看内容 更多使用技巧

less [options] <dest>

操作覆盖more的外键操作功能,同时支持方向键PageUp/PageDown功能键控制

/输入关键字后回车向下搜索

?输入关键字后回车向上搜索

支持F键开启文件新内容监听,类似tail -F

-o保存到其他文件-N显示行号

例如:分页显示进程

ps -ef | less -N

head输出文件头部指定行数

head [options] <dest>

-cbytes 指定的字节数-llines 指定的行数(没有指定-c可以省略)

head -20 /usr/local/requeset.log

tail输出文件尾部指定行数

tail [options] <dest>

-cbytes 指定的字节数-llines 指定的行数(没有指定-c可以省略)-ffollow 监听文件,常用于监听日志,抓取指定日志,进入等待模式-Ffollow retry

tail -F /usr/local/src/www/login.log

三剑客(grep,sec,awk)

grep查找文件里符合条件的字符串

grep可以直接查文档,也可以接收流

grep [options] <str> <dest>

-ccount 计算符合样式的行数-r使用递归的方式查文件夹-A <n>after 找到目标的后n行-B <n>before 找到目标的前n行-C <n>找到目标词汇的前后n行-v <str>

grep -C 10 "error" php_access_log.txt # 查找文件中包含关键词的前后各10行的内容

sed一种在线编辑器,一次处理一行数据

多用于行数据处理

sed [options] 'n [,m] action'

options:

-n--silent,quiet 沉静的,如果没有指定该参数那么在使用action/p(打印)中指定的行号无效-i默认所有的操作都是在使用内存的副本,并不对文件本身进行修改,如果需要修改文件就需要使用-i参数

actions:

格式:[n,[m]] function

-a新增行,需要指定在第几行后追加,可以标记新增行的内容,例如:2a hello,world-c替换行-d删除行,不可与option中的-n同时使用-i插入行-p[指定行号/查询]打印,如果指定了行号需要联合option中的-n使用-s替换,直接进行取代工作;s/source/target/g全局替换

sed '2p' data.ini # 打印所有内容,没有指定'-n'参数默认打印全部行数sed -n 'p' data.ini # 打印所有行内容sed -n '2,4p' data.ini # 打印第2行-第4行内容sed '3d' data.ini # 删除第3行,这里不需要加`-n`参数,只是删除显示中数据不会删除元数据sed '2a hello,word' data.ini # 在第2行后新建行插入hello.wordsed -n '/hello/p' data.ini # 打印包含字段的行sed -i 's/hello/world/g' data.ini # 替换文件中全部的hello字段为worldsed 's/ /hello/g' data.ini | sort | uniq -c | sort -r | head -5 # 查一篇文章中出现频率最高的5个词

awk对文件进行格式化的工具

多用于列数据进行处理

awk [options] 'pattern{action}' file,file,...

options:

-F--field-separator指定分割符,以分隔符为标识把行数据进行分割为多列;默认为空白字符

pattern:符合pattern的才会传递给action(简单理解为符合该条件)可以使用&&,||…等逻辑判断符

$n可以直接获取第n列的值与指定条件比较,例如:$2=="order"NF分割后的字段列的数量(支持==,>,<等比较操作)NR当前行的行号

action :

print $n打印第n列($n)数据内容

awk '{print "TAG:" $5," msg:" $6}' php_login_0202.log # 输出文件中以空白字符为分割标识后的第5列及第6列的内容awk -F '-' 'NF>=4 && ($1=="order"||$1=="t_order") {print "uid:" $2,"order_id:" $4}' php_order_all.log # 输出文件中指定以`-`分割且分割后列数>=4的行信息中第2列及第4列的内容awk '{print $7}' php_access_log.txt | awk -F '?' '{$1}'| sort | uniq -c | sort -rn | head -10

涉及第几列的数据优先使用awk,因为awk会对行依据分隔符进行分列,有列的概念

sort把文件内容中以行为单位进行比较,按照首字符向后

-rreverse 反转-nnumerical value 数值

通常会和其它命令联合使用,例如:uniq,awk

sort -rn login.log # 排序文件中的行数据

uniq去重,去除重复数据,前提条件是相邻数据相同才会被执行去重

在使用uniq之前要用sort进行排序,目的是使相同的数据相邻,这样uniq才会更准确

-c统计出现的次数

通常会和其它命令联合使用,例如:sort,awk

awk -F "," 'NF>2 {print $1,$2}' awk.txt | sort | uniq -c | sort -rn | head -3 # 读取文件以','进行分割,满足至少两个字段后进行过滤然后按照出现频率又少到多进行排序

总结:

awk适合对行内有规律的列数据进行处理,通常用于找到(行分割后的)列数据进行统计分析,较多情况需要结合sort -rn,uniq -c使用

sed适合对行数据进行处理,可以增删改查 用于修改文件内容例如:sed -i 's/source/target/g file'grep适合对文本数据进行过滤处理 较多使用-C `过滤文件关键字

磁盘系统

df(disk free:report file system disk space usage) 显示磁盘可用空间数目信息

目标是系统文件:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息

df [options] <test>

-aall-kk byte-mM byte-h自行显示相关单位,人性化的单位,常用

df -h

duestimate file space usage

目标是用户文件/目录

-aall 列出该目录的子目录的已用容量-kk byte-mM byte-h自行显示相关单位,人性化,常用-s对于目录:列出该目录的总体积,而不列出每个各别的目录占用容量;

du -hs /usr/local/log # 查看 log目录总体积

fdisk磁盘分区(manipulate disk partition table)

fdisk [options] device

-l输出后面接的装置所有的分区内容

fdisk -l /dev/sda1 # 查看指定设备的磁盘及分区信息

这个命令的输出内容有点专业,表示似懂非懂

mount磁盘挂载 (mount a filesystem)

mount [options] <device> <dir>

fdisk -l # 查找接入设备的信息,主要指设备名称 /dev/sdb1# DeviceBoot StartEnd Sectors Size Id Type# /dev/sdb163 4108607 4108545 2G e W95 FAT16 (LBA)mkdir -p /mnt/usb/tempmount /dev/sdb1 /mnt/usb/tempcd /mnt/usb/temp # 就可以看到u盘内容了,使用文件

umount磁盘挂载

-fforce 强制卸载

umount /dev/sdb1

fsck磁盘检查

mkfs [options] <device>

没有怎么用到

mkfsmake file system 格式化文件系统

mkfs [options] <device>

-t <type>指定格式化后的文件系统格式,例如’ext2’

mkfs -t ext3 /dev/sdc

安装软件包

rpm

yumCentos发行版本的包管理器,使用于yum源上已有的资源

list <package>list packages based on package namesinstall/reinstall -y <package_name>install/reinstall packagesearch <package>list packages based on package namesremove <package>卸载指定的软件包update/downgrade <package>升/降级已经安装的软件包

aptUbuntu发行版本的包管理,默认使用Ubuntu平台的资源

list <package>list packages based on package namessearch <package>list packages based on package namesshow <package>show package detailsinstall/reinstall -y <package>install/reinstall packageremove <package>卸载指定的软件包upgrade <package>升级已经安装的软件包

wget插件/工具:文件下载器,需要使用yum/apt进行安装

系统相关

iphow / manipulate(操纵) routing, network devices, interfaces and tunnels

ifconfig默认centos7及Ubuntu都已经去掉了该工具,可以使用sudo yum/apt instatll -y ifconfig进行安装

addr/address查看IP地址 protocol (IP or IPv6) address on a device.route路由主机 routing table entry.linknetwork device.

systectl服务控制器 Control the systemd system and service manager

systemctl暂且可以看作是命令service的升级兼容版本

同时等效于直接启动/etc/init.d/<service_name> [options]

systemctl [options] <test>[status|start|stop|restart(restart service) |force-reload(reload config file)`]

systemctl start mysqld.servicesystemctl stop mysqld.servicesystemctl restart mysqld.service

psprocess status 进程状态(类似 windows 的任务管理器) report a snapshot of the current processes.ps displays information about a selection of the active processes.

ps [options]

-auxfTo see every process on the system using BSD syntax-efTo see every process on the system using standard syntax-ejHTo print a process tree

ps -ef | grep sshd # 使用标准的语法查看系统进程,并使用grep进行过滤ps -aux | grep sshd # 使用bsd语法查看系统进程,ps -ejH

Notes:可以用于查看指定应用的进程是否已经启动

killsend a signal to a process 发送一个信号给进程

kill有多个signal,可以使用kill -l查看,参数-9SIGKILL杀掉进程

kill [options] <pid>

kill -9 -1 # Kill all processes you can kill.

nohup以后台进程的方式启动,避免控制台阻塞式启动

nohup [opitons]

nohup ./jemter.sh > run.log # 以后台的方式运行./jemeter.sh 并把输出信息保存到run.log文件

如果没有权限运行可以先确认脚本文件是否有x可执行权限,使用chmod +x <file>增加可执行属性

如果用户角色权限不够请切换su,·sudo passwd root·修改root密码

netstat显示协议统计信息和当前 TCP/IP 网络连接 prints information about the Linux networking subsystem.

netstat [options]

-a显示所有连接-n以数字形式显示地址和端口号

netstat -anp | grep 3306

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。