linux操作

xshell里显示乱码问题解决方案:
第一步:输入echo $LANG可以查看当前使用的系统语言,如下图:

第二步:查看是否有中文语言包,可以在终端输入locale命令,如有上图表示已经安装了中文语言
第三步:如果没有中文语言,可以通过网上下载安装中文语言包yum groupinstall chinese-support
第四步:如何修改系统语言为中文,可以通过输入设置 LANG=语言名称, 如中文是zh_CN.UTF-8(我这里本来就是中文的)
第五步:修改系统默认语言,如vi /etc/sysconfig/i18n

如果要改成英文,设置成LANG="en_US.UTF-8",改好之后重启一下系统
第六步:如果按照以上方法修改设置中文语言还是不行的话,注意您的链接终端选择的编码,以xshell为例,终端编码选择如下图:

注释:
#开头的行就是注释,会被解释器忽略,Shell中没有多行注释,只能每一行加一个#号

定义字符串:
字符串定义可以用单引号,也可以用双引号,也可以不用引号
a='besttest' b="besttest" c=besttest

拼接字符串:
把一个字符串跟到另一个字符串后面即可,例如:
name="besttest"
say="hello, "$name""
say1="hello, ${name}"
echo $say $say1

获取字符串长度,#来获取字符串的长度:
str='besttest'
echo ${#str}

获取字符串的某个元素:
s='besttest is a good school'
echo ${s:1:4}

命令模式切换到编辑模式
a:点击a会从当前位置的下一个字符开始编辑
i:点击i会从当前位置开始编辑
o:点击o会从当前位置的下一行起始位置开始编辑

 

编辑模式切换到命令模式:esc
定位到文件的最末端 shift+g
移动光标到页面中央 shift+m
移动光标到页面开始处 shift+h
向后翻页 Ctrl+f
向前翻页 Ctrl+b
退出(文件没发生更改)vi :q
不保存退出(文件发生更改) :q!
保存退出 :wq :x
保存 :w
显示行号 :set nu
不显示行号 :set nonu
从上往下查找 /xx,查找下一个按n
从下往上查找 ?xx,查找下一个按n
快速到第一行 :1
快速到第n行 :n
删除一行 dd
删除单个字符 x
撤销 u
重复上一次操作 .
复制一行 yy
复制3行,就3yy,复制8行就8yy
复制第一行到第三行 :1,3y
删除第一行到第三行 :1,3d
替换第一行到第三行中的字符串 :1,3s/str/str_new/g
替换所有行中的字符串 :%s/str/str_new/g
粘贴:想粘贴的位置按下p粘贴
把光标快速移动到行尾 $
把光标快速移动到行首 0
查看ip:ifconfig或ip a或ip address show

cat a.txt # cat适合看文件内容少的,主要参数-n、-b、-s
-n:由第一行开始对所有输出的行数编号
-b:和-n相似,只不过对于空白行不编号
-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行
举例1:将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件,如cat a.txt b.txt > c.txt
举例2:对行进行编号,如cat -b a.txt
more a.txt # more可以分屏显示,空格键:下一页,b:上一页,Enter:向下一行,q:退出,-n:每页行数(可以理解为每按一下空格,跳转的行数) ,+n:从第n行开始显示
less a.txt # less分屏显示,可以支持查找,空格键:向下滚动一页,Enter:向下滚动一行,pageup:向上滚动一页,pagedown:向下滚动一页,?xx:向上搜索字符串,/xx:向下搜索字符串,q:退出,G:移动到最后一行,g:移动到第一行

tail -f a.txt # 显示a.txt文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上,退出,按下CTRL+C
tail -n 20 a.txt # 显示a.txt文件最后20行
head -2 a.txt # 显示开头2行
alias m='mysql -uroot -p123456' # alias起别名,以后用m就可以代替后面那句,如果想要命令永久生效,把alias m='mysql -uroot -p123456'放到家目录的.bashrc文件里,然后source .bashrc
unalias # 取消别名

linux路径
cd . 停留在当前目录
cd .. 返回上级目录
cd ../xx 退到上级目录的xx目录
cd ~ 回到用户家目录
cd回车 退到当前用户个人目录
cd - 回到上一次操作的目录
cd ../../ 回到上两级目录
pwd 查看当前工作目录

ll     查看当前目录下的文件夹和文件,不显示隐藏文件,显示total,单位是k,-代表普通文件,d代表目录,l代表链接文件,b代表设备文件,9个字符每3个为一组,分别代表文件所有者、文件所有者所在用户组、其他用户对文件拥有的权限。每组中3个字符分别代表读、写、执行的权限,若没有其中的任何一个权限则用-表示,数字26代表apr-1.4.6这个目录下的目录文件数量(有目录和文件,显示目录数量,没有目录显示文件的数量),然后是用户组信息文件大小文件修改时间文件/目录名

ls -al 查看当前目录下的目录和文件(包括隐藏的),以.开头的都是隐藏文件或隐藏目录,还会显示total
ls 查看当前目录下的目录和文件,不显示隐藏的,不显示total
ls -a 显示当前目录下的目录和文件(包括隐藏的),不显示total
ls -l 和ll一样的


cp -rf test/ newtest 将当前目录test/下的所有文件复制到新目录newtest下,-f是覆盖已经存在的目标文件而不给出提示
mv 移动或改名
mv besttest.bak / 移动到根目录下
mv besttest.bak test.bak 将 besttest.bak改成test.bak
mkdir 创建目录
touch filename或vi filename 创建文件,如果已存在这个文件touch完会更新时间
rm 删除文件或目录,加上-f不给出提示,直接删除
rm –rf 强制删除当前目录下的所有文件和子目录
rmdir 删除一个空目录

环境变量
修改环境变量的方式有两种:
1、修改/etc/profile
2、修改用户目录下的.bash_profile
使用export声明变量,如export JAVA_HOME PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH,如果有多个值时使用 : 来分隔,export PATH=$PATH: /tmp,想把哪个目录加到环境变量就把目录写到export PATH=$PATH: 后面,同时需要注意如果修改的是PATH系统环境变量需要把系统环境变量加上,修改完环境变量后,需要使用source /etc/profile或者source .bash_profile来刷新环境变量

查询磁盘空间
df -h 显示已经挂载的分区列表及各分区的大小,df -lh 查看当前系统磁盘使用情况,df -h和df -lh显示的内容一样
du -sh dir1 估算目录或文件dir1已经使用的磁盘空间,-s仅显示总计,du -sh * |sort -n当前目录下所有目录及文件按照升序排序,du -sh * |sort -rn是降序,-sh是以G为单位,-sk是以K为单位,-sm是以M为单位
quota 设定限制用户使用磁盘空间的命令

chmod:给文件和文件夹赋权限
chmod a+rwx # 加上最高权限
chmod a-x # 减去执行权限
a代表所有人,u代表归属用户,g代表本组用户,o代表其他用户
数字方式:
r=4,w=2,x=1
rwx:4+2+1,r-x:4+1,rw-:4+2
-R,递归,主要用于一个目录,把test目录下面的所有文件或目录赋权限
chown:改变文件所有者和所属组
chown user:[group] a.txt 将文件a.txt 的拥有者设为user,群组设为group
chown -R user:[group] dir 将目录dir的拥有者设为user,群组设为group

find命令
find / -name mysql -name后面必须完全匹配
find /opt/ | grep mys 不用完全匹配
which java 找到当前生效的java的位置,which命令只查找环境变量中path里面的路径
whereis java 只能用于程序名的搜索,而且只搜索二进制文件

 

rpm -ivh xx.rpm rpm 安装包安装文件
rpm -e xx.rpm 卸载rpm方式安装的文件
rpm -qa 查询已安装的软件

 

安装:yum install xxx
安装rz和sz命令:
yum -y install lrzsz(如果这个命令报错,可以使用rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm命令,lrzsz-0.12.20-27.1.el6.x86_64.rpm安装包自己下载)
-y:同意所有默认配置项
yum list | grep xxx 查询你需要安装的软件包有没有
yum list installed | grep xxx 查询是否安装过这个软件
yum remove xxx 卸载

 

编译安装:
首先保证安装了gcc,如果没有安装可以使用yum -y install gcc*
第一步:./configure --prefix=/path -with xxx
第二步:make
第三步:make install

 

打包:tar –czvf xx.tar.gz dir1 创建一个gzip格式的压缩包
解压:tar –zxvf xx.tar.gz
打zip包:zip aa.zip aa
解压缩:unzip aa.zip
打gz包:gzip xx,打成一个gz包
解压缩:gunzip xx.gz
重定向:cat nihao > xiaobai,nihao是文件名,如果xiaobai文件里有内容就会把之前的内容覆盖,cat nihao >> xiaobai,两个>就会在xiaobai文件末尾追加,> xiaobai是把空内容存到xiaobai里,可以把xiaobai文件清空的意思
1.覆盖写入:echo "日志内容" > 文件
2.追加写入:echo "日志内容" >> 文件

 

后台启动:nohup 命令 &

 

虚拟机图形界面切换到命令行的命令是:Ctrl+Alt+F2
onboot是指在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯
BOOTPROTO是获取的IP地址类型,static和none为静态地址,dhcp为动态获取IP地址
linux格式化的时候,流行的格式为ext2和ext3

常用系统信息命令
cat /etc/issue 查看虚拟机操作系统
arch显示机器的处理器架构,要是没有这个命令通过yum install arch安装,如果显示i386或i686说明架构是32位
i386适用于intel和AMD所有32位的cpu以及via采用X86架构的32的cpu
i686只是i386的一个子集,支持的cpu从Pentium 2(686)开始,之前的型号不支持
uname -m等同于arch
uname -r显示正在使用的的内核版本
cal 2018显示2018年的日历表
date 120122522018.00 设置日期和时间 月日时分年.秒
显示当前日期:date

cat /proc/cpuinfo 显示cpu info的信息
cat /proc/meminfo 校验内存使用
cat /proc/interrupts 显示中断
cat /proc/version 显示内核的版本
cat /proc/mounts 显示已加载的文件系统
cat /proc/net/dev 显示网络适配器及统计
cat /proc/swaps 显示哪些swap被使用

查看当前用户:输入id,whoami
查看当前有多少用户在使用系统:who
重启:reboot,init 6,shutdown -r now(now表示立即执行),shutdown -r 延时分钟数 '提示信息'
关机:halt,poweroff,init 0,shutdown -h now(now表示立即执行),shutdown -h 延时分钟数 '提示信息'
重启、启动、停止网络命令:service network restart/start/stop

 

添加用户:useradd ssj,$代表普通用户,#代表root用户
为新用户设置密码:passwd ssj
切换用户:su - ssj,普通用户切换到root需要密码,root用户切换到普通用户不要密码,中间有-会重新加载用户的环境变量,没有则不加载环境变量
获取超级用户权限:sudo
用法:root用户可以执行reboot,普通用户执行reboot会报错,如下图:

有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限,如果普通用户要使用sudo命令,需要在/etc/sudoers文件中配置才可以使用,例如ssj用户可以使用sudo获取root用户权限,使用root用户编辑/etc/sudoers文件,找到root ALL=(ALL) ALL这一行,在它下面加入ssj ALL=(ALL) NOPASSWD:ALL然后保存即可,NOPASSWD代表该用户使用sudo的时候不用输入密码,配置完之后普通用户就可以执行sudo reboot命令
删除用户的家目录和文件:userdel -r ssj,-r用于删除家目录及其所有文件
修改用户:usermod -l sun2(新用户) sun(旧用户)

 

添加组:groupadd -g 组id -r 组名,也可以在添加用户时添加组,如useradd -g ssj1 ssj2,ssj1是组名,ssj2是用户名
修改组:groupmod -g 组新id -n 组新名 组旧名,如groupmod -g 1001 -n xiaohua hua
查看用户信息:cat /etc/passwd | grep test(test是用户名,用于查找某个用户)

test是用户名,x是密码,501是用户id,502是用户所在组id,/home/test是用户家目录,/bin/bash是shell命令所在路径
查看组信息:cat /etc/group | grep test(test是组名,用于查找某个用户组)

test是用户组,x是用户组口令,502是uid,如果最后一个:后面还有,该项是用户组所包含的用户
删除组:groupdel 组名

 

1是父进程,1399是子进程,如果把下面用户的子进程1449kill掉,1399这个进程还在,因为父进程1还在,父进程守护子进程的

ps -ef |grep java  # 检查java 进程是否存在
下面对命令选项进行说明:
-e 显示所有进程
-f 全格式
grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户,grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

原文地址:https://www.cnblogs.com/laosun0204/p/8677834.html