Linux常用命令
2017-10-01 15:44
239 查看
辅助命令
makewhatis #安装whatis命令查看命令解释 help #帮助查看命令 man #查看命令 info #查看命令 ls -a -l -R -ld cp #拷贝文件 mv #移动或重命名文件 touch #创建空文件/修改文件 rm -rf #递归强制删除 rmkdir #只能删除空目录 history #显示全部历史 history n #显示历史倒数第n条数据 !! #运行上一条命令 !88 #运行第88条数据 history -c #清空历史命令 ctrl+r搜索历史中的字符串可重复执行,回车就是执行查找命令
关机命令
shutdown -h now #立刻关机 shutdown -h 12:00 #系统会在今天12:00关机 shutdown -h +10 #10分钟后关机 shutdown-r now #系统立刻重启 shutdown -r +10 #10分钟后系统重启 reboot #重启系统 halt #关闭系统
运行级别
who -r #显示当前运行级别和系统时间 runlevel #显示前一个(无则显示“N”)、当前运行级别 init n #切换运行级别,n为运行级别数字
Liux运行级别详解
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别2:多用户状态(没有NFS) 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 运行级别4:系统未使用,保留 运行级别5:X11控制台,登陆后进入图形GUI模式 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
运行级别原理
在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service),在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字,系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件,对于以K开头的文件,系统将终止对应的服务,对于以S开头的文件,系统将启动对应的服务。
用户、用户组、其他人与权限
cat /etc/passwd #查看用户账号有关的系统文件 cat /etc/shadow #查看与passwd对应的数据 cat /etc/group #查看用户分组信息
用户管理
useradd -p -c -d -g -G -S -u #添加用户 usermod -p -c -d -g -G -S -u #修改用户 passwd -l -u -d -f test #用户口令设置 userdel test #删除用户 userdel -r test #在删除用户的同时删除他的home目录(不建议使用)
用户组管理
groupadd -g -o test #添加用户组 groupmod -g -o test #用户组修改 groupdel test #删除用户组 newgrp root #为当前用户切换用户组
权限管理
ls -al #查看权限内容 chgrp [-R] dirname/filename # 改变所属用户组 chown [-R] 用户账号dirname/filename #改变文件所有者 chmod [-R] mode dirname/filename #改变权限
查看权限
mode权限管理
mode改变权限之数字类型Linux的基本权限有9个,分别是owner,group,others 三种身份各自的read,write,excute权限, 各个权限对应的数字如下: r:4、w:2、x:1 为此每种身份各自的三个权限数字相加即可得出数字表示的权限… 例如[-rwxrwx---]可以表示为: owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0 范例:所以要修改文件权限,改为770即可:
mode改变权限之符号类型
另一种改变权限的方法就是通过符号了,上文提到,Linux总共9种权限,对应着三种身份,为此我们 可以通过u,g,o代表三种身份,另外a代表全部身份。对应的权限可以写为r,w,x,如下图所示:
为wsx设置[-rwxr-xr–],可以使用[chmod u=rwx,g=rx,o=r filename]。
文件系统
mount *** #将设备挂载到某个目录 umount *** #取消挂载点 df -h d4bd #查看目录设置 lsblk #查看块设备 du #文件系统的磁盘使用量或目录使用量 dumpe2fs #文件系统
挂载U盘出现乱码
man manout #执行该命令,并使用/iocharset查找,验证编码格式是否为utf-8
mount -o iocharset=utf8 /dec/sdb1 /mnt/udisk #设置外设编码格式是utf8
进程管理
ps aux | grep *** #查看现有进程 ps aux、ps -lA、 ps -ef ps -l #仅查看自己的bash相关的进程 top *** #动态的观察进程的变化 top -b -n 5 > a.log #需要进行5次top的输出,并将批次导出的结果到处为a.log文件 top -p #指定某些PID来进行观察 pstree -Aup #显示系统进程树同事显示PID与user kill -l #查看系统目前能够发送的信号 -15正常的死亡 -9 强杀 -1守护进程特殊 -2 与键盘输入Ctrl+C相同 kill 默认使用15
系统资源监控
free #显示内存使用情况 uname -a #显示系统与核心相关信息## ## uptime #查看系统时间与工作负载 netstat -atp #所有tcp协议的链接,并输出pid好 netstat -antp netstat -lntp vmstat 1 4 #侦测系统资源变化 CPU/内存/磁盘输入输出状态,一秒钟侦测一次 共4次 service iptablse start #开启防火墙 service iptablse status #查看防火墙状态 service iptablse stop #关闭防火墙 chconfig iptalse off #永久关闭防火墙 chconfig iptablse on #永久开启防火墙
任务管理
Ctrl+Z #将目前的工作丢到后台暂停 fg #一般实现后台进程的前台显示 cp test test1 & # &符号实现了进程的后台运行,一般用在启动后台进程上 jobs #显示全部后台进程(不含PID) jobs -l #显示全部后台进程(含PID) jobs -r #显示正在后台run的任务 jobs -s #显示正在后台暂停的任务 fg 1 #将任务号为1的进程调到前台执行 nohup *** #脱机或注销后正常执行工作 nohup *** & #在后台执行
vim命令
vim的三种模式
一般模式 可以删除、复制、粘贴等但无法编辑文件内容。编译模式 使用i、I、o、O、a、A、r、R进入,使用Esc退出
命令行模式 在一般模式中输入:/?三个字符中的任何一个可以进入,提供查询、替换、存盘、离开vi、显示行号等命令。
一般模式操作(移动光标)
h 光标左移 j 光标下移 k 光标上移 l 光标右移 Ctrl+f 屏幕向下移动 Ctrl+b 屏幕向上移动 0或Home 移动到此行最前面字符处 $或End 移动到光标所在行的行尾 H 光标一定到当前屏幕最上方的行的第一个字符 M 光标移动到当前屏幕中间行的第一个字符 L 光标移动到当前屏幕最下行的第一个字符 G 移动到此文件最后一行 nG 移动到第n行 gg 相当于1G 即移动到第一行 nEnter 光标下移n行
一般模式操作(查找、替换)
/word 向下查找单词“word” ?word 向上查找单词“word" n 表示重复前一个查找操作 N与n相反(反向查找) :s/word1/word2/g 在当前 行 将word1替换成word2 :%s/word1/word2/g 在当前 文件 将word1替换成word2 :n1,n2s/word1/word2/g在n1到n2行查找word1替换成word2(n1,n2为数字) :1,$ s/word1/word2/g 从第一行到最后一行查找word1 替换成word2 :1,$ s/word1/word2/gc 同上,在替换前需要判断是否替换
一般模式操作(删除 )
x 向后删除一个字符 nx向后删除n个字符(不常用) X 向前删除一个字符 dd 删除光标所在行 ndd 删除包括光标所在行以下的n行。 d1G 删除包括光标所在行在内到第一行所有数据 dG 删除包括光标所在行到最后一行 d$ 删除光标所在处到同行最后一个字符 d0 删除光标所在处到同行的第一个字符
一般模式操作(复制)
yy 复制光标所在行 nyy 复制光标所在向下n行 y1G 复制光标所在行到第一行所有数据 yG 复制光标所在行到最后一行所有数据 y$ 复制光标所在到同行最后一个字符 y0 复制光标所在处到同行的第一个字符 p 将已复制的数据粘贴到光标所在下一行 P 将已复制的数据粘贴到光标所在上一行 u 复原前一个操作(类似windows中Ctrl+z)
编辑模式操作
一般模式到编辑模式切换 i 从光标所在处插入 I 从所在行第一个非空白字符处插入 a 从光标所在下一个字符处插入 A 从光标所在行最后一个字符处插入 o 在光标所在处下一行插入新的行 O 在光标所在处上一行插入新的行 r 替换光标所在处字符一次 R 一直替换光标所在处文件知道按下Esc
命令行模式
w [filename] 另存为filename r [filename] 读取filename指定文件中的内容到光标所在的行 n1,n2 w [filename] 将n1到n2 行另存为filename ! command 林芝奇幻到命令行模式下执行command命令 例如 !ls /etc 即可在vim当中查看/etc下面以ls输出的信息 wq 保存后离开 q!不保存并强制离开 set nu 显示行号 set noun 取消显示行号
软件包管理
文件的压缩与打包
gzip与bzip2比较
gzip比bzip2性能好,但bzip2可以获得更高的压缩比gzip压缩和解压
gzip -cv test.log > test.log.gz #压缩并重定向 gzip -l *.gz #查看压缩比 gzip -ncv test.log > test.log.gz #n为数字 1--9 默认是6 数据越大压缩比越大 gzip -v test.log #不保留原文件 gzip -d **.gz #解压缩 zcat **.gz #查看压缩后的文件
bzip2压缩和解压
bzip2 -z test.log #压缩后不保留源文件 bzip2 -zk test.log #压缩后保留源文件 bzip2 -d **.bz2 #解压缩文件,删除源文件 bzip2 -dk **.bz2 #解压缩文件,不删除源文件 bzip2 -ncv test.log > test.log.bz2 #n为数字 1--9 默认是6 数据越大压缩比越大
tat打包和解压
gzip打包、压缩和解压tar -zcvf ***.tar.gz /** #打包并按gzip压缩文件 tar -zxvf ***.tar.gz -C /** #将压缩文件解压到指定文件下 tar -ztvf ***.tar.gz #查看打包的内容有哪些文件 tar -zpcvf ***.tar.gz *** #备份文件
bzip2打包、压缩和解压
tar -jcvf ***.tar.bz2 etc /** #打包并按bzip2压缩文件 tar -jxvf ***.tar.bz2 /** #将压缩文件解压到指定文件下 tar -jtvf ***.tar.bz2 #查看打包的内容有哪些文件 tar -jpcvf ***.tar.gz *** #b备份文件
解压相关文件操作
tar -zxvf .tar.gz | grep # 查看压缩包中是否存在相应文件并得到相应目录
tar -zxvf *.tat.gz 查询出的文件目录
rpm安装
rpm默认安装路径/etc 配置文件放置的目录 /usr/bin 一些可执行文件 /usr/lib 程序使用动态链接库 /usr/share/doc 基本软件使用手册与说明文件 /usr/share/man man page文件
rpm配置
rpm -ivh ****.rpm #安装rpm文件 rpm -Uvh ***.rpm #如果后面文件未安装直接安装。如已安装版本较低直接更新到新版本 rpm -Fvh **.rpm #如果后面接的软件未安装到系统上,该软件不会被安装 只有已安装的软件才会被升级 rpm -qa *** #查询系统已安装的包 rpm -ql *** #查询文件所包含的文件及目录 rpm -qi *** #查询文件相关说明用户名、版本、时间等 rpm -qc *** #查看文件的配置文件内容 rpm -qd *** #查看文件说明文件 rpm -qR *** #查看文件需要的依赖 rpm -V *** #查看软件是否被改动过 rpm -Vf *** #列出某个文件是否被改动过 rpm -Vp **.rpm #列出rpm包中的文件是否在当前系统中安装或修改 rpm -Va *** #列出目前系统上面rpm安装的所有包中被修改过的文件 rpm -e *** #卸载rpm文件
yum使用
yum search *** #查找相关软件包 yum info *** #查看软件包功能 yum info | head *** yum list | head *** yum list updates #查询服务器上可供本机进行升级的软件 yum list updates | grep xx.x86_64 #列出可供xx.x86_64升级的版本 yum [install | update | remove] 软件名
yum客户端运行机制
客户端每次运行yum调用install或search的时候,都回去解析/etc/yum.repose.d下面所有以.repo结尾的文件,这些配置文件指定了yum服务器的地址。 yum会定期去"更新"yum服务器上的rpm“清单”,然后把“清单”下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum/x86_64/6下),每次调用yum安装包的时候都会去这个cache目录下找“清单”,根据“清单”里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,如果rpm包的cache不存在,就去yum服务器下载rpm包安装。
yum服务器端运行机制
所有要发行的rpm包都放在yum服务器上以供别人下载,rpm包根据kernel的版本号、CPU版本号分别编译发布。yum服务器只要提供简单的下载,httpd或ftp。yum服务器一个重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号,cof文件,binary信息,以及依赖信息。在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张“清单”,这张“清单”就是描述每个rpm包的spec文件中的信息。
shell脚本
shell是用户与Linux操作系统之间的接口,提供了与操作系统之间的通讯的方式。 shell基本上是一个命令解释器,它接受用户命令,然后调用相应的应用程序。
关于变量:
全局变量:一般全大写,如环境变量 局部变量:脚本函数中的局部变量通常使用local修饰:表示的是该变量的有效范围在该函数内部有效。 linux命令可以定义变量 ${WEEL}day若变量和其他字符组成新的变量就必须给变量价格大括号。
变量的读取和设置
echo $**** #读取shell变量 echo ¥{****} #读取shell变量 env | more #查看环境变量 set | more #同上 export a=1 #设置环境变量值 /etc/prpfile #自定义java环境变量 a=$(date +%F) #定义日期格式为:2017-10-1
数据重定向
就是摸个命令执行后应该要出现在屏幕上的数据,该传输的指定位置的过程。比如传输文件或其他命令 命令分为标准输出和标准错误输出。 数据重定向编号 标准输入(stdin)编号:0 标准输出(stdout)编号:1 标准错误输出(stderr)编号:2 1>:以覆盖的方法,将正确的数据输出到文件 1>>:以累加的方法,将正确的数据输出到文件 2>:以覆盖的方法,将错误输出的数据传输到文件 2>>:以累加的方法,将错误的输出数据传输的文件。
find查找命令 ##
find [path] [option] #查找格式 [path] .当前路径 /从跟目录下查找 [option] print :将匹配的文件输出到标准输出 size :匹配文件大小 find ./ -size 0 size n:[c]:查找文件长度为n块的文件,带有c时表示文件长度以字节计算。 find .-size +1000c test name :按照文件名查找 find ./ -name java find . -name ".java" perm :按照文件权限来查找文件 find . -perm 755 test user :按照文件所有者来查找文件 find ~ -user root test group :按照文件所属的组来查找文件 find / -group root test mtime -n +n :按文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示更改时间距现在为n天以前 find / -mtime -5 test #5天以内 find / -mtime +5 test #5天以前 nogroup :查找无有效所属组的文件 find / -nogroup test
sed命令
sed是一种在线编辑器。 sed的执行过程如下: sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间)。然后处理临时缓冲区中的行,完成后把该行发送到屏幕上set每处理完一行就将其从临时缓冲区中删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,set便结束运行,set把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。 sed [option] "[action]" [filename] option: h或--help 显示帮助 n仅显示script处理后的结果 V或--version 显示版本信息 e:允许对输入数据应用多条sed命令进行编辑 f 直接将sed的动作卸载一个文件内 action s:字符串替换 i:插入 d:插入 a:追加 c:c替换 p:打印指定的输出行 sed "s/test/ceshi/g" ceshi.txt #替换原文件test为ceshi sed -i "s/test/ceshi/g" #修改源文件内容 sed "1 i hi linux" test #n i 在第一行添加 sed "1 a hi linux" test #n a 在第一行后追加 sed "/hdfs/d" test #删除匹配行
grep ##
grep是一种文本搜索工具,它能够使用正则表达式搜索文件。 grep -n -i
tail
把文件的最后几行显示到终端上,如果该文件有更新,tail会自动刷新 tail [-F ] [ -c Number | -n Number | -m Number | -b Number | -k Number] [File] tail -F filename #显示文件尾部内容默认10行
sort
-n #按照数值排序 -u #不出现重复的行 -t #指定分段的符号 -k #指定的第几段 -r #逆向排序 sort -r test > test1 #对文件进行逆序排序 sort -t "." -k 1 test #对文件进行指定分割符,并对第1个字段排序
cut
cut [-option] filename option -b 字节 -c 字符 -f 提取第几行 -d 按指定分隔符分个列
相关文章推荐
- linux常用命令笔记
- Linux常用命令总结,持续更新,菜鸟必备
- Linux常用命令
- Linux常用命令整合及解释(1)
- Linux常用命令17:whereis
- linux 常用命令-查看文件
- Linux常用命令详解之文件处理命令三
- Linux常用基础命令整理:关机命令、查看目录下文件命令等
- Linux查看系统配置常用命令
- 一些常用Linux, Unix 命令
- linux常用命令-用户,组,权限,用户配置文件,特殊权限uid/gid/sticky
- Linux常用的基本命令
- Linux常用命令21:find命令之xargs
- Linux常用命令大全
- linux的命令解析器和常用的快捷键(以及简单的目录结构)
- Linux常用命令 一
- Linux 常用命令汇总
- 常用的linux系统管理命令
- Linux常用的 20 个命令
- LINUX常用命令小整理