Linux常用命令及shell脚本
一、 用户管理(添加用户、切换用户、删除用户)
~ #波浪线,代表家目录
cd ~ 和 cd #快速回到家目录
id 和 whoami #查看当前用户
who 和 w #查看当前已经登录的用户
whereis 文件名 #查找文件
root用户的家目录为/root
普通用户默认家目录为/home/用户目录下
添加用户:
useradd 用户名 #添加用户
useradd -g 组名 用户名 #添加用户,指定到某组
passwd 密码 #给添加用户设置密码、重置密码
切换用户:
su 用户名 #切换用户
su - 用户名 #切换用户,su - 会重新加载用户的环境变量
sudo #获取超级用户权限
普通用户sudo获取超级用户权限
在 /etc/sudoers文件
找到 root ALL=(ALL) ALL
加入 用户名 ALL=(ALL) NOPASSWD:ALL
删除用户:
userdel 用户 #删除用户
userdel -r 用户名 #删除用户,也删除用户家目录
二、 组管理(添加组、修改组、删除组)
添加组:
groupadd 组名 #添加组
修改组:
groupmod –n 组新名 组旧名 #修改组名
删除组:
groupdel 组名 #删除组
三、 对目录(文件夹)的操作(增删改查)
相对路径:以当前路径为基准的路径,跟着当前路径变化;当前路径
绝对路径:以根目录为基准的路径;实际路径
cd #进入到哪个目录里(文件夹)
mkdir #创建文件夹
mkdir -p #如果创建的文件夹的父目录不存在的话,自动创建父目录
命令 --help #所有命令的帮助说明
rm 和 rmdir #删除文件夹
rmdir #删除空文件夹
rm -rf / #强制全部删除
rm -rf /路径 #强制全部删除某个目录下的文件
ls #查看目录下的所有文件
ls -a #查看隐藏文件
ls-la #查看影藏文件,文件大小等详细信息
cat 文件 #查看文件内容
more 文件 #分页查看文件内容
less 文件 #分页查看文件内容,和more命令的区别就在于它支持上下键卷动屏幕,按q即可退出
ln /文件绝对路径 ~/快捷方式名 #创建(硬连接)快捷方式(例子:ln /opt/lampp/lampp ~/lampp)(相当于复制了一遍)
ln -s /文件绝对路径 ~/快捷方式名 #创建(软连接)快捷方式(例子:ln -s /opt/lampp/lampp ~/lampp)
du -sh #查看当前目录的大小
du -sh * #当前目录每个文件夹的大小
du -sh /文件路径 #查看某个文件夹的大小
df -h #查看当前磁盘已经使用了多少
df #查看整个磁盘大小分布,还剩多少空间
df -l #查看本机的文件系统(ls | wc -l,统计当前目录的行数;cat 文件名 | wc -l,统计当前文件的行数)
find / -name 文件 #查找文件或者文件夹
grep 关键字 文件 #查找文件里的关键字
grep -v 关键字 文件 #过滤掉指定的信息
tail -f 日志 #查看动态实时的日志
tail 文件 #默认显示文件最后十行(例:tail -5 文件,显示文件最后五行)
tail -f 日志|grep 关键字 #在动态实时的日志里查找关键字
nohup ./程序 & #在后台启动(例:nohup ./jmeter-server & )
cd .. #返回上一级目录
cd ../../ #返回上两级目录
cd - #返回上一次所在的目录
pwd #显示当前所在目录路径
树状结构,/ #最高的根目录,顶级目录,相当于Windows→我的电脑
root #root用户的个人文件夹(家目录)
bin #存放多数用户可用的命令
boot #存放启动文件和配置信息,系统启动时会用
dev #存放设备文件,/dev/hdc代表光驱
etc #存放服务配置文件
home #其他用户的家目录
lib #存放程序运行所需要的库文件
media #可移动设备的挂载目录
mnt #设备挂载目录
usr #用户程序存放目录
var #存放经常改动的数据文件
tmp #存放临时文件
wc -l #统计行数
wc -w #统计字数
| #管道符,连接两条命令,把前面的命令执行结果给后面的命令处理,只要有一个失败,即不会执行
&& #and,连接两条命令,分别执行前后两条命令(例:ls && wc -l 文件名),只要有一个失败,即不会执行
权限:
例:drwxr-xr-x.(d代表文件夹;什么都没有,只显示权限代表文件)
-rw-r--r--.
-rw -r-- r--.
所有者的权限 同一组用户权限 其他用户权限
数字方式:r=4;w=2;x=1 rwx:4+2+1; r-x:4+1; rw-:4+2
chmod 777 #所有者的权限 同一组用户权限 其他用户权限
chmod 77 #同一组用户权限 其他用户权限
chmod 7 #其他用户权限
chmod -R #递归(为文件夹加权限)
文本方式:r:读;w:写;x:执行
chmod o+权限 用户名 #给用户加权限(o:其他;u:自己;g:组)
chmod a+权限 和 chmod +权限 #给所有用户加权限
chmod o-权限 用户名 #去除权限(w:写;r:读;x:执行)
chown 文件 user #修改文件所有者
如果是一个文件夹的话,要加-R
chgrp 文件 group #修改文件所属组
如果是一个文件夹的话,要加-R
移动:
mv 文件名 /路径 #把文件移到某路径下
mv 文件名 新文件名 #改名
mv如果后面跟的是文件名则是改名,如果跟的是路径则是移动
touch #创建一个空文件
cp 文件 /路径 #复制文件到某路径下
cp -r 文件夹 /路径 #复制文件夹到某路径下
cp -f 文件 /路径 #强制复制文件
cp -rf 文件 /路径 #不论是否重复,是否是文件还是文件夹,都可以复制
alias 创建命令='实际命令' #起别名,创建命令,只对当前连接有效
在/etc/profile
加上alias 创建命令='实际命令' #永久生效
source 文件路径 #重新加载文件
进程:
ps -ef|grep 进程 #查看进程是否存在
ps -a或者-e #列出所有的进程
top #查看进程、资源使用率以及服务器配置,top是动态实时的数据,ps是执行时候的状态
kill -9 pid #强制杀进程(可以跟多个pid)
killall #杀多个进程
端口:
netstat -nlpt|grep pid #根据pid去查询进程启动的端口号
netstat -nlpt|grep port #查看端口号是否被占用
四、 对文件的操作(增删改查)
命令模式,默认是命令模式,输入的都是命令
编辑模式,输入的是文本
vi 和 vim #修改操作文件
i #切换到编辑模式,当前位置
o #切换到编辑模式,下一行开始
a #下一位置进行编辑
esc #切换到命令模式
命令模式下:
:q #没有修改,直接退出
:q! #不保存退出,强制退出
:wq 和 :x #保存退出
/ #从头开始查找
? #从末尾开始查找
:set nu #显示行号
:8 #快速到第8行
Shift+G #快速到文件末尾
:set nonu #取消显示行号
x #删除单个字符
dd #删除一整行(删除几行就几dd,例如:删除16行,命令为:16dd)
u #撤销
yy #复制一整行(复制几行就几dd,例如:复制16行,命令为:16yy)
p #粘贴
. #重复前一次的操作
$ #快速把光标到行尾
0 #快速把光标到行首
:%s/字符/替换字符/g #替换字符串
五、 安装软件
rpm安装:
rpm -ivh 软件.rpm #安装,不需要再自己去加环境变量,rpm自己会添加
rpm -e 软件.rpm #卸载
rpm -qa|grep 软件 #查询是否已经安装
rpm -i #安装
rpm -U #更新(升级)
rpm -e #卸载
rpm -v #显示安装信息
rpm -h #显示安装进度
yum安装:
yum install 软件 #安装
yum -y install 软件 #如果有选项全部同意安装
yum list|grep 软件 #从yum列表中查找你需要的软件
yum update 软件 #yum升级
yum list installed |grep 软件 #查询是否已经安装
yum remove 软件 #卸载yum安装的软件
源码安装(前提条件(安装gcc):yum -y install gcc*):
①.生成编译文件(命令:./configure --prefix=/路径)
./configure 一般安装包下面都有一个configure文件,用来生成makefile编译文件
--prefix #指定安装目录
--with-xx #指定依赖文件的目录
②.make编译(命令:make)
make命令也需要安装,会根据./configure产生makefile文件编译写好的c语言程序,产生可运行的文件
③.make install(命令:make install)
make install的作用是把编译好的文件复制到指定的目录下,也就是第一步--prefix指定的目录,如果没有指定目录的话,还是在当前目录下
六、 上传下载(必须是一个文件,文件夹必须借助FTP工具)
rz #上传
sz 文件名称 #下载
FTP工具:直接拖拽,什么都可以上传下载,必须选择SFTP协议
上传下载命令安装:使用yum安装:yum –y install lrzsz
编译安装:http://blog.chinaunix.net/uid-20639775-id-154615.html
七、 开关机、重启
注销:exit(逐步注销) logout
重启:reboot(可以不加参数)
-w #不实际关机,用户登录信息写入/var/log/wtmp
-d #不将用户登录信息写入/var/log/wtmp
-f #强制重启
shutdown -r 延时分钟数 “提示信息” #定时重启
关机:shutdown(不能单独用,至少2个参数)
shutdown -h 延时分钟数 “提示信息” #定时关机
shutdown -r now #now表示立即执行
init 0 #立即关机
八、 网络的操作:修改IP地址等
ip a 和 ifconfig #查看ip地址
dhclient -r #释放IP
dhclient #获取IP
service network start/stop/restart #启动、停止、重启网络
九、 压缩、解压文件
tar -c #创建
tar -x #解压
tar -f #使用归档文件
tar -j #使用bzip2解压缩
tar -z #使用gzip解压缩
tar -v #详细输出模式
tar cvf 文件.tar 文件名 #打tar包
tar zcvf 压缩名称.tgz 文件名 #压缩成tar包
tar xvf 压缩文件 文件名 #解压,不管是否压缩,都能解开
zip 文件.zip 文件名 #打zip包
unzip 文件.zip 文件名 #压缩成zip包
gzip 文件 #压缩成gz包;只能对文件打包,打包完原来的文件就不存在了;一般在备份日志的时候用
gunzip 文件.gz 文件 #解压
十、 环境变量(优先执行用户环境变量,用户环境变量没有再执行系统环境变量)
作用:让一个命令/脚本随便在哪个目录下都能用
系统环境变量:/ect/prifile
用户环境变量:~/.bashrc(只针对自己的用户生效)
export PATH=$PATH:/绝对路径
source 文件路径 #重新加载
十一、 定时任务
crontab 文件的格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期 天)。cmd表示要运行的程序,*代表每分钟都执行。
crontab -e #编辑定时任务
crontab -l #查看当前有哪些定时任务
示例:
*/1 * * * * sh /opt/lampp/test.sh #表示每分钟执行一次test.sh这个脚本
*/5 * * * * sh /opt/lampp/test.sh #表示每5分钟执行一次test.sh这个脚本
30 21 * * * /opt/lampp/lampp restart #表示每晚的21:30重启lampp
十二、 重定向
cat 文件 >文件 #把一个文件的内容复制到另一个文件里;重定向多次会覆盖之前的内容
>文件 #清空文件,一般在清空日志的时候使用,不需要删除和重启,直接清空
cat 文件 >>文件 #重定向多次,追加内容
十三、 shell脚本(多个命令写在一起组成shell脚本)
awk
awk '{print $2}' #取第二列的数据
ps -ef|grep 进程|grep -v grep |awk '{print $2}' #取第二列的值
#!/bin/bash #指定shell解释器(linux默认的shell解释器是bash)
定义变量时,变量名和=号之间不能有空格
例1:启动脚本
count=`ps -ef|grep 进程绝对路径|grep -v grep |awk '{print $2}'|wc -l`
if[ $count -gt 0 ]
then
echo "进程 running"
else
nohup 进程绝对路径 &
例2:初版停止脚本
pid=`ps -ef|grep 进程绝对路径|grep -v grep |awk '{print $2}'`
kill -9 $pid
echo "进程 stoped"
例3:终版停止脚本
count=`ps -ef|grep 进程绝对路径|grep -v grep |awk '{print $2}'|wc -l`
pid=`ps -ef|grep 进程绝对路径|grep -v grep |awk '{print $2}'`
if[ $count -gt 0 ]
then
kill -9 $pid
echo "进程 stoped"
else
echo "进程 not running"
例4:重启脚本
停止脚本的绝对路径
启动脚本的绝对路径
十四、 其他
date +%Y%m%d%H%M%S #获取当前时间
桥接模式(VMnet0网络类型): 局域网内,同一网段的可以访问。VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在bridged模式下, 你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中 的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。
NAT(网络地址转换)模式(VMnet8网络类型):只 允许虚拟机和本机连,其他不可以。让 虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚 拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不 需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
Host-only模式(VMnet1网络类型): 只 允许虚拟机和本机连,其他不可以。在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用Host-only模式。在Host- only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的,可以利用Windows XP里面自带的Internet连接共享(实际上是一个简单的路由NAT),来让虚拟机通过主机真实的网卡进行外网的访问。虚拟系统的TCP/IP配置信 息(如IP地址网关地址DNS服务器等),都是由VMnet1(Host-only)虚拟 网络的DHCP服务器来动态分配的。
CRT设置
选项→会话选项→终端→外观 #乱码问题,字符编码设置,修改字体等样式
选项→全局选项→终端→鼠标 #选中即复制成功
选项→会话选项→终端→X/Y/Zmodem #上传下载时,默认选中打开哪个目录
Xshell设置
文件→属性→终端 #乱码问题,字符编码设置
文件→属性→外观 #修改字体等样式
[root@suan ~]# PS1=“[\u@\H \W]\\\$ “
root 当前用户 u
suan 主机名 H
~ 当前路径 W
# 超级用户
$ 普通用户
Linux常用命令及shell脚本的更多相关文章
- linux常用命令(shell脚本常用命令)(grep、cut、sort、uniq、seq、tr、basename、dirname)
本章命令: 1 2 3 4 5 6 grep cut sort uniq seq tr 1.grep 作用:过滤文本内容 选项 描述 -E :--extended--regexp 模式是扩展正则表达式 ...
- Linux常用命令及shell技巧
这里列出一些个人在工作中常使用的各种linux命令,每一个不详细讲参数,只写经常用的参数.希望快速获得在linux命令行工作的能力的朋友可以看看.本人一直觉的,不使用linux 图形界面,以xshel ...
- Linux常用命令及Shell的简单介绍
一.linux命令 1.查看指令的参数搭配: man 指令名称 2.基础指令 ls 列出当前目录下的所有文档的名称(文档指的是文件和文件夹) 常用参数搭配: ls -l 列出文档详细信息 l ...
- Linux常用命令和Shell编程基础
目录相关 cd - .与.. 分别表示当前目录和父目录 - ~与$HOME 都是指当前用户的主目录 - cd – 切换到上一次所在的目录(不一定是父目录) pwd - pwd 显示当前目录 - $PW ...
- 如何在java程序中调用linux命令或者shell脚本
转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到ja ...
- linux——常用命令与脚本
linux常用命令 --文件管理pwd --查看当前目录cd --切换当前目录ls --列出当前目录下的所有文件touch --创建文件mkdir --建立目录rmdir --删除空目录rm --删除 ...
- Linux常用命令整理 - imsoft.cnblogs
su 用户名 在不退出登陆的情况下,切换到另外一个人的身份如果用户名缺省,则切换到root状态会提示输入密码,密码不回显的. 在用su命令切换root用户时,使用“-”选项,这样可以将root的环境变 ...
- Linux常用命令英文全称与中文解释Linux系统
Linux常用命令英文全称与中文解释Linux系统(转) Linux常用命令英文全称与中文解释Linux系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Pri ...
- Linux 常用命令使用方法大搜刮
Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入 ...
随机推荐
- Magento后台简单更换favicon.ico
刚才需要更换网站的favicon.ico,就是浏览器url前面的那个小图标. 网上稍微搜搜一下,然后就震惊了,号多方法是替换文件的方法,而且文件散步在网站的各个角落. 其实,后台是有直接上传更换的方法 ...
- (转载)Resin安装配置及使用教程
Resin是一个提供高性能的,支持 Java/PHP 的应用服务器.目前有两个版本:一个是GPL下的开源版本,提供给一些爱好者.开发人员和低流量网站使用:一种是收费的专业版本,增加了一些更加适用于生产 ...
- SQL Server中Rowcount与@@Rowcount的用法 和set nocount on 也会更新@@Rowcount
rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10select * from 表A 这样的查询只会 ...
- GZIP压缩优化
使用gzip优化web应用(filter实现) 相关知识: gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户 ...
- [转]Raspberry Pi树莓派无线网卡配置[多重方法备选]
要想让树莓派方便操作,肯定需要配置无线网卡,这样可以大大增强树莓派的移动性和便利性,其实配置无线网卡基本就是和普通linux平台下配置无线网卡一样,几种方法大同小异,具体如下: 一.第一种方法:通过配 ...
- 三分之一的程序猿之社交类app踩过的那些坑
三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...
- C# 使用BackgroundWorker例子及注意点
该例子为使用BackgroundWorker在TextBox文本中产生一个10000以内并且能被5整除的数(1秒产生一个) 操作界面可以启动线程,也可以停止线程,界面设计如图: 先贴代码,有注释的地方 ...
- HTML5表单那些事
//一般写法 <form method="post" action="http://xxx:port/form"></form> //高 ...
- 7.Git的版本退回
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...
- .NET 动态脚本语言Script.NET 入门指南 Quick Start
Script.NET是一种动态的脚本语言,它使得程序可扩展,可定制,和维护性好.和Office系列的VB Script相似,可以在应用中嵌入大量的代码块,以便在运行时才执行这些代码. Script.N ...