@渴望知识的你
**
初入Linux
**
第一次写CSDN的博客,经验奇缺所以在文章里本人只把自己对于知识的理解进行阐述如果有不足的请读者指出,在开始阅读之前让我们喊出口号:“要想人前显贵,就要人后受罪!”加油嘎嘣儿,加油所有想获得美好未来的你!
1.Linux介绍
Linux是一个类Unix操作系统支持多用户的操作,基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,并以网络为核心。在Linux上可以运行主要的UNIX工具软件、应用程序和网络协议。(本人对Linux的直观感受就是它的字符界面,不像Windows一样有很多的图形,可以用鼠标点来点去,只能通过命令来进行操作,大家可以把它想像成一个树根,从一个节点发出密密麻麻的根茎)
***2.Linux目录结构***
目录 | 作用 |
---|---|
/ | Linux系统的根目录,一般只存放目录 |
/bin和/usr/bin | 命令文件目录,包含可供root用户和普通用户所使用的Liunx命令和二进制文件,包含shell解析器等 |
/boot | 系统引导和内核目录,存放引导装载文件 |
/dev | 设备目录,存放各个硬件设备的信息,例如光驱、硬盘等 |
/etc | 系统级别的配置文件存放的目录,一般由 配置管理员来使用 |
/home | 所用普通用户的家目录 |
/lib、/usr/lib、/usr/local/lib | 系统使用的函数库目录 |
/lost+fount | 在ext2和ext3文件系统中,系统崩溃时记录信息的目录 |
/opt | 给主机额外安装软件所摆放放的目录 |
/proc | 重要的需要放置在内存中的数据 |
/root | root用户的根目录 |
/sbin、/usr/sbin、/usr/local/sbin | 放置的是系统管理员(root)才能使用的命令,普通用户只能进行查看,而/bin目录的命令普通用户也可以使用 |
/tmp | 是用来存放应用程序的临时数据不能在此目录下存放重要的数据 |
/var | 系统一般运行时需要改变的数据 |
/sys | 系统相关文件存放的目录 |
/usr | 应用程序相关目录命令、函数库、共享包、内核源码 |
3.Linux基本操作和命令
3.1 Clear清空屏幕
3.2.Cd 转换文件夹
3.3 以 /开头的是绝对路径 没有/的是相对路径 …/代表上级目录(一个点叫做进入到当前目录)
3.4 Tab 补充 a.自动不全命令或者目录 b. 在一个目录下的时候可以不用输入首字母直接敲table即可自动补全目录 c.双击table 一般显示所有命令后者列出某个目录下的所有目录和文件
3.5 Ctrl+R 查找历史输入过得命令 箭头上也能够查询以往输入的命令
3.6.Ctrl+C 终止或者退出当前操作
3.7 Pwd 是查看当前所在的位置
3.8 cd ~ 进入家目录
3.9 cd- 回到上次所在的目录
4.Linux系统级别命令
4.1 查看当前Linux系统信息
uname -a 显示系统及版本的所有信息
uname -r 显示内核版本
uname -m 显示计算机是多少位系统
free -m查看系统内存
4.2 查看系统小版本
cat 查看信息,文本信息
cat /etc/redhat-release centos redhat两个版本中都存在这个文件,标记版本信息
4.3查看当前主机名
Hostname 查看主机名 hostname name 临时改变主机名
4.4查看第一个网卡
ifconfig eth0
4.5查看和设置系统时间
Date查看时间
date -s “2015-5-8 19:48:00”
设置时区
执行tzselect命令–>选择Asia–>选择China–>选择east China - Beijing, Guangdong, Shanghai, etc–>
TZ=‘Asia/Shanghai’; export TZ
4.6 :设置系统时间同步到硬件时钟
hwclock --systohc
4.7 查看进程
ps -ef | grep redis
4.8:显示当前在运行的进程包括对CPU 内存使用量
top -s
4.9管道:|
cmd1 | cmd2 将cmd1输出结果交给cmd2命令来执行(vim aa.txt创建文本 :wq 是退出)
4.10 grep(管道)过滤
# grep //输出包含指定字符串的行
-i //忽略大小写
-v //取反
–color //突出显示查找字符串
4.11 重新启动Linux操作系统
reboot
init 6
4.12 关闭Linux操作系统
shutdown -h now
poweroff
init 0
4.13 图形和命令行转换
vi /etc/inittab
init 3 命令行模式
init 5 图形化
4.14 显示守护进程目录树
pstree daemon守护线程(放在后台运行)
4.15 显示所有正在运行的进程
ps -aux
4.16 显示所有正在运行java 进程/
jps
4.17结束正在运行的指定进程(参照33)
kill -9 pid
4.18 wget url 通过命令下载网页
wget http://192.168.21.41/lrzsz.rpm
Pwd查询当前所在位置
5.Linux账号与组操作
5.1 账户
超级账户 root uid = 0
普通账户 uid > = 500
系统账户 uid = 1 ~ 499
/etc/passwd //保存账户的信息
记录的信息有七个部分
用户名:无意义:用户id:用户组id:关于用户的描述:家目录所在位置:执行脚本
/etc/shadow //保存账户密码信息
/etc/group //用户组文件
/root //root用户家目录
/home/xxx //普通用户xxx的家目录
5.2 添加和删除用户 useradd
# useradd //创建用户
-u 指定uid
-d 指定宿主目录
-s 指定使用shell
-e 指定用户过期时间
-g 指定基本组(都必须需是已经创建好的组,拥有已定的id)
-G 指定附加组(都必须是已经创建好的组,拥有已定的ID)
Su切换用户,新增用户,如果没有指定密码,那么不能直接登录,但是可以在登录别的用户后切换过去
切换用户,如果是从root用户切换过去的,那么不需要密码,如果从普通用户切换到另一个普通用户的话则需要添加密码。
Groups 用户名 :查看这个用户所属的用户组
# useradd openlab
# gpasswd -a openlab gropenlab //将用户加入到组中
# gpasswd -d openlab gropenlab //将用户从组中删除(不能不属于任何组)
#echo打印信息(System.out.println)
# echo “123456” | passwd --stdin haiyuan //不通过交互信息,直接改用户密码
# userdel +用户名 //删除用户 不删除用户文件
# userdel -r //连主目录一起删除
#Userdel -r -f强制删除
# id openlab //显示用户信息
Passwd:修改密码
5.3 :创建用户组
groupadd manager (groups看自己的用户组)
删除用户组groupdel +用户组名
5.4 创建用户
useradd -G manager tom
useradd -G manager tom2
5.5 更改密码方式1
passwd tom
5.6更改密码方式2
echo “root” | passwd --stdin root //不通过交互信息,直接改用户密码
5.7 删除指定的账号
userdel tom2
5.8锁定帐户 tom2 禁止其登录
usermod -l 新名字 旧名字(修改用户名)
usermod -L 禁用
usermod -U 启用
5.9切换当前用户帐户为 admin
su admin
5.10 显示当前登录用户帐户
whoami
5.12 查看系统文件判断添加用户组添加用户操作是否正确
cat /etc/passwd
cat /etc/group
Linux文件文件夹操作(删除和rwx无关)
5.13查看当前位置
pwd
5.14显示当前目录的文件列表
Ls ll是查看命令,-la是参数,能够显示隐藏文件的 在linux中的隐藏文件是以点开头的
Ls 显示文件列表 ls -l显示文件列表以及详情 ls -la显示所有的文件(包含隐藏文件)
Ls -l 等于 ll
5.15递归显示/目录的文件列表
ls -R /data0(目录的目录)
5.16显示文件或文件夹详细信息
总结:四个部分 1.文件类型 2,用户权限 3组权限 4其他用户权限
Chmod u/g/o +/- r/w/x(如果前面没有ugo说明是加相应的权限)(权限和加减号要连在一起)
Chmod xxx(421) file
Chown uname:gname aa.txt
权限:读取\写入\可执行 r w x ==7 r4 w2 x1 chmod 755 file
归属关系: 所有者\所属组\其他用户
-|rw-|—|---. 1 root root 1771 4月 28 2015 anaconda-ks.cfg
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨
①:文件类型
- 文件
d 目录
l 链接
②:所有者权限(u)
r 读 4
w 写 2
x 执行 1
③:所属组权限(g)
r 读 4
w 写 2
x 执行 1
④:其他用户权限(o)
r 读 4
w 写 2
x 执行 1(/echo.sh执行脚本)
⑤:所有者
⑥:所属组
⑦:文件大小
⑧:最后修改时间
⑨:文件名
5.17 创建文件夹和文件
mkdir /tmp/test01 //创建空文件夹
mkdir /data1/hadoop/hdfs/name -p //创建多级文件夹
touch /tmp/test01/file.txt //创建空文件
5.18 复制文件
cp /tmp/file1.txt (文件名) /opt (后面写复制的路径复制到哪里)(绝对路径)
cp ./file1.txt opt/opt1 (相对路径)
5.19 复制目录
cp -r /tmp/test01 /opt(-r就是递归操作的意思) 如果复制tmp就写/tmp/
5.20移动,剪切,重命名
mv /opt/test01 /tmp
mv /opt/file1.txt(此处也可以写相对路径) /tmp/file2.txt
5.21 删除
rm //删除文件
rm -r //删除目录
rm -f //强制删除
rm –rf folder //常用命令 不可恢复
5.22文件内容查看
cat -n //查看内容时显示行号
cat /etc/redhat-release //不显示行号
cat -n /etc/passwd //查看内容时显示行号
5.23设置文件所有者拥有对文件读写执行权限
chmod 777 /data0/my.cnf (-R对文件夹的所有内容都执行)
5.24 目录文件显示多行可上下翻查
less /etc/passwd q退出
5.25 显示文件的头10行或尾10行
tail //默认查看文件尾10行
head //默认查看文件头10行
Tail -nf 滚动查看尾部多少行 tail -200f catalina.out(持久进程进行查看)
-n 数字 //查看指定头几行
tail /etc/passwd
head /etc/passwd
tail -n /etc/passwd
Tail -3f 文件(尾部查看并且滚动)
5.26 重定向 > >>
> 先清空文件内容,后写入新的内容
# ls -l /root > /tmp/file1.txt
>> 追加新的内容,旧的内容不会消除
# ls -l /root >> /tmp/file1.txt
5.27 屏幕打印 echo
echo “No Hello World…” //打印到屏幕
echo “hello word” >> /data0/my.cnf //打印追加到文件
5.28 文本编辑器 VIM(nodepad++) vi(txt)
vim file vi(可看成是个文本)是普通编译
默认进入vim编辑器,那么就是命令行形式
:q //退出
:w //保存
:wq //保存退出
:q! //强制退出
I是insert输入模式 esc是命令行
O是insert模式,但是光标自下一行
ESC是切换命令行状态
dd删除当前行
u撤回
o是输入命令的转换,转换到下一行
h/j/k/l这几个命令都是光标的移动
ctrl F向后翻整页
ctrl+d向后翻半页
ctrl+b向前翻整页
ctrl+u向前翻半页
set nu出现行数(在编辑时用的,:set nu )
set nonu 去掉行数
esc是编辑器输入命令的模式转换
i是变幻到输入模式 insert
:/content 下一个进行匹配的时候按N
编辑文本查找:/输入要查的东西
5.29 打包 tar原理
包的类型是两种 普通的包 压缩包
-z 压缩包
-c 打包
-x 解包
-f 必须要
-C 指定解包位置
-v 输出信息
5.30使用tar备份指定目录/data0/内容包括子目录中内容备份至 /data3/data0.tar.gz
tar -zcvf /data3/data0.tartar.gz /data0
5.31恢复tar 文件中的内容/data3/data0.tar.gz 至 /data2
tar -zxvf /data3/data0.tar.gz -C /data2
5.32 which cmd 查找cmd命令所在路径
which reboot
5.33 locate找寻文件的命令
find / -name “查询的东西”