Linux命令
day01
1、增加用户
useradd 用户名
passwd 用户名
2、切换用户
su 用户名
3、查看目录下的文件和文件夹
ls
ls-a
ls-l目录有隐藏目录,是以“.”开头,使用-a可以查看
ll:查看权限
4、改变目录
cd
当cd不带任何参数,是默认回到账户的home中
“.” 当前目录
“..” 上一级目录
“../..” 返回上两级目录
“../../..” 返回上三级目录,两个点代表一级目录
5、显示当前目录
pwd
6、拷贝
cp
-f 强制,会覆盖
-r 递归
-i 提示是否覆盖,建议使用此参数
-a 相当于dpr
7、新建目录
mkdir
8、移动和改名
mv
重命名:
mv 旧文件名 新文件名;
mv bb bb1;
目录移动
mv 目录1 ./目录2;
mv bb ./aa; 把bb目录移动到aa目录下面
9、删除文件
rm
-i ,interactive交互模式删除文件,删除文件前给出提示
-r , 加此参数,才会删除目录(非空目录),递归删除,先删除文件,再删除目录
-f ,force强制删除.忽略不存在的文件,不提示确认
10、删除空目录
rmdir
-p 当删除的目录所在的父目录为空时,一并删除
两种情况:
第一种:如果在a目录下删除b目录,那么只能删除b目录,不能一并删除a目录,因为用户使用的是a目录进行操作的
rmdir -p b;
第二种:如果在a目录的上一级目录删除a目录下的b目录,若a目录为空,则可以一并删除
rmdir -p /opt/a/b;
11、创建空文件或修改时间戳
touch
第一次touch:创建文件
第二次touch:修改文件时间戳
12、改变文件或目录的权限
chmod
两种使用方法
第一种:使用字母和操作符来实现变更权限
第二种:使用数字来设定
(1).chmod使用字母和操作符
操作对象
u 用户;g 同组用户;o 其他用户;a 所有用户
操作符
+ 增加权限;- 取消权限;=赋予给定权限,取消其他权限
权限设置
r 只读;w 可写;x 可执行
文件名
支持通配符(* - 通配符,代表任意字符(0到多个),? - 通配符,代表一个字符)
这里面的通配符和数据库里面的_与%意义相似
例子:有aa文件
chmod u+rw aa 给用户增加权限
chmod u-rw aa 给用户取消权限
chmod u=rw aa 赋予给定权限,取消其他权限
chmod u+r a* 使用通配符*
chmod u+rw a? 使用通配符?
chmod u+r,g+w,o+x a? 同时给用户,同组用户,其他用户添加权限,并且使用通配符?
(2).chmod使用数字来设定
数字属性,是用3组0-7的八进制表示,其实每组八进制是有三位二进制数字组成的,每位二进制数字对应一
个权限。
0 表示没有权限
1 表示可执行
2 表示写权限
4 表示读权限
顺序是 u g o
例子:
读 写 执行
Y W X
0 0 1 =1
0 1 0 = 2
0 1 1 = 3
1 0 0 = 4
1 0 1 =5
1 1 0 =6
1 1 1 =7
假如有aa文件 chmod 721 a?
ll:查看权限 = ls -a
13、对登录用户发送消息
wall
例如:
wall hello
wall nidaye
wall < aa # aa是文件,就是把aa文件内容发送给用户
14.保存历史,只保存命令
history>dd
保存命令到dd文件里面
15、从内存同步硬盘,关闭之前的必须步骤
sync
16、查看内存的使用情况
free
-m 以m为单位统计,默认单位为k
17、系统处理器的状态监视
top
退出监控状态使用ctrl+z
18、查看文件系统的磁盘空间占用情况
df
-a 所有文件系统的磁盘使用情况
-k 千字节为单位显示
19、显示指定目录磁盘空间的使用情况
du
-a 递归显示目录各文件及子孙目录各文件占用的数据块数
-k 千字节为单位显示
以块为基本单位,一块=4K,默认是K
20、编辑器 vi
vi+文件名,新建或编辑文件。
分成Command mode(命令模式)和Insert mode(插入模式)
vi的Command mode
1、方向键,移动光标
2、dd,删除整行
3、xdd,删除x行,X是个动态数字
4、u,回复上一个操作
5、x,剪切,删除单个字符
6、p,粘贴
7、按Ctrl+b:屏幕往前移动一页。
8、按Ctrl+f:屏幕往后移动一页。
9、按 G:移动到文章的最后。
10、yy,复制整行,y是动态数字
11、/pattern:从光标开始处向文件尾搜索pattern 从上往下
12、?pattern:从光标开始处向文件首搜索pattern 从下往上
13、n:在同一方向重复上一次搜索命令
14、N:在反方向上重复上一次搜索命令
查找的字符串必须在可视化范围内,以单个字串为单位
vi的Insert mode
在Command mode下,按i,a,o进入Insert mode
1、i,在光标处插入,在字母前面插入
2、a、在光标处追加,在字母后面追加
3、o、在光标下一行开始添加一行
4、按esc键,退出Insert mode
5、输入:q!,不保存退出编辑
输入:wq,保存退出编辑
20、查看文件
cat
21、翻页查看
more 文件名
空格是向后翻页,回车是往下一行,只能向后翻页
more +5 aa 从第5行开始显示
more -5 aa 每页显示5行
22、翻页查看
less 文件
可以前后翻页,使用page up 和 page down(电脑上的按键)
more, less 都具备查找功能,在命令模式下,按/ 然后输入要找的字串,再按 Enter 即可,按 n(next) 会继续找,
大写的 N 则是往回(上)找,按 q(quit)或者ZZ离开
查找的字符串必须在可视化范围内,以行为单位
n 向下找
N 向上找
q 离开
23、查看文件的头和尾指定行数
head
tail
例如:
head -100 aa 只能是负的,显示前100条数据
tail -1 aa 显示最后一条数据
24、设置时间
date
例:设置时间为下午14点36分。
# date -s 14:36:00
例:设置时间为2017年6月8号12:00
# date -s "2017-06-08 12:00:00"
修改完后,记得执行clock -w,把系统时间写入CMOS
25、文件查找
find
例:
* 代表多个 ?代表一个
find -name "*.log" 使用*符号更方便
find -name “????.log”
find -name "pro*"
26、管道符和内容查找
“|”,管道符,把前部分的输出通过管道符变为后部分的输入grep,内容查找命令
例如:
cat aa | grep "hello"
是打开aa文件,然后在aa文件的内容中,查找字符“hello”
练习:在/var/log/messges 里面,messages是一个文件
方案1:
(1).cd /var/log
(2).cat messages | grep "found SMP MP-table at"
方案2:
第一步:cd /var/log
第二步:less bb
第三步:进入bb文件,使用 “/abcd...”查找要查询的字串
27、查看历史
history
例如:
history | more
28、输出重定向 >,>>
>,是定向输出到文件,如果文件不存在,就创建文件;
如果文件存在,就将其清空;是覆盖。
>>,是将输出内容追加到目标文件中。如果文件不存在,就创建文件;
如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
例如:
cat wj>new wj覆盖new
cat bb>>new 把bb文件的内容追加到new文件后面
cat wj | grep "hello">>new 查找出wj里面涉及hello的行数据然后追加到new文件里面
29、挂载外边设备,一般使用命令挂载U盘,移动硬盘
mount
mount 源路径 目标路径
mount /dev/sdc1 /mnt/usbd1 挂载设备
*虚拟机挂载时报错“无法连接到理想的主机控制器”,需要检查下虚拟机设置中usb控制器是否设置为兼容3.0。
30、卸载已经挂载的外边设备
umount
umount /mnt/usbd1 普通卸载
umount -fl /mnt 强制卸载
31、查看系统进程
ps
例如:
ps aux |more ;查看所有进程
ps aux |grep 程序名; 查看单个进程
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
32、杀掉系统线程
kill
例如:
kill -9 3423
kill -9 pid=kill -s 9 pid
9只是几十个信号中的一个信号,是强制尽快终止的标准符。
33、关机(虚拟机关机)
Shutdown –h now 立马关机
Shutdown –h 20:25 系统会在今天20:25关机
Shutdown –h +10 十分钟后关机
reboot 就是重启,等同于 shutdown –r now
halt 关闭系统,等同于shutdown –h now 和 poweroff
34、jdk安装配置(根据自己的操作总结的)
如果上传失败的话,说明目录没有读写权限
(1).左键点击新建文件传输,弹出一个窗口,进行操作.
(2).tar包解压 tar -zxvf 文件名
tar.bz2类型文件使用 tar -jxvf 文件名
(3).进入jdk的bin目录下复制路径,使用pwd,查看当前路径
/opt/software/jdk1.8.0_111/bin
(4).cd /etc
vi profile在最后一个export前面添加:
PATH=.:/opt/software/jdk1.8.0_111/bin:$PATH
.意思是在当前目录下
$PATH将之前的复制过来
(5). 配置文件生效
. /etc/profile
source /etc/profile
(6).查看jdk配置是否成功
java
javac
删除软件:rm -rf 软件名
35.环境变量的配置以及衍生的相关问题详细介绍版本
软件安装-jdk二进制
1.jdk环境,二进制安装
上传jdk压缩包,jdk-8u121-linux-i586.tar.gz
2.解压tar.gz文件使用命令tar -zxvf 文件名
解压tar.bz2类型文件使用 tar jxvf 文件名
3.配置环境变量
JAVA_HOME = /opt/software/jdk1.6.0_45
CLASSPATH = $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH = $PATH:$JAVA_HOME/bin
4.使/etc/profile修改生效。
(1)、source /etc/profile
(2)、. /etc/profile 有空格
(3)、重启机器
5.检测环境变量配置是否成功
java
javac
常见错误:
环境变量配置错误,命令失效!
解决方法:
在/opt/software/目录下执行以下命令,重新启动命令
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
然后再去profile文件里面配置正确的环境变量
查看系统版本:uname -a
查看命令所在目录,which java
对PATH环境变量、CLASSPATH环境变量、JAVA_HOME环境变量解释:
1. PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了。
2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过 CLASSPTH来寻找类的。我们 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。
3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
36.软件包的两种形式:源代码方式和二进制包。
区别:
(1).二进制包里面包括了已经经过编译,可以马上运行的程序;
源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程序。
source code 是程序员写的编码,需 rebuild 之后才能安装使用。
binary code 是机器可以直接运行的编码。 source code 得经过 compile 才能成为 binary code ,可以直接使用。
(2).一般情况下名字区分,二进制格式的包名字很长,都带有版本号、适应平台、适应的硬件类型等,而源码格式仅仅就是一个版本号的tar包。
mysql-5.0.45.tar.gz 是 源码包
像这样的 mysql-5.0.45-linux-x86_64-glibc23.tar.gz 是二进制包
(3).源代码包里的文件往往会含有种种源代码文件,头文件*.h、c代码源文件*.c、C++代码源文件*.cc/*.cpp等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为bin的目录(仅有少数例外)
37.
1、Java的安装目录是 /opt/java,
(1)系统的环境变量的文件名和路径是什么?
(2)请写出新添加的PATH内容,使java命令能在系统任意位置生效。
答:
(1)文件是profile,路径是/etc/profile
(2)PATH=$PATH:/opt/java/bin
2、文件 mysql-community-test-8.0.1-0.1.dmr.el7.x86_64.rpm
(1)请写出安装命令是什么?
(2)卸载命令是什么?
(3)怎么查询之前是否安装了这个软件包?
答:
(1)rpm -ivh mysql-community-test-8.0.1-0.1.dmr.el7.x86_64.rpm
(2)rpm -e 服务名(这个服务名是根据具体情况,只要写出 rpm -e 即可)
(3)rpm -qa | grep mysql