Linux -- 基础

Linux目录结构

image

/:Linux中没有盘符,根目录为"/"

**/bin:**存放系统命令的目录,所有用户都可以执行.

**/sbin:**保存和系统环境设置相关的命令,只有超级用户可以使用这些命令,有些命令可以允许普通用户查看。

**/home:**用户缺省宿主目录 添加新用户 home会有对应用户的文件夹

**/etc:**系统配置文件

**/dev:**存放设备文件 网卡 声卡 显示 CD 打印机

**/mnt:**挂载目录。临时文件系统的安装点,默认挂载光驱和软驱的目录

**/media:**挂载目录。 挂载媒体设备,如软盘和光盘

**/opt:**第三方安装的软件保存位置。 习惯放在/usr/local/目录下

/usr: 系统软件共享资源目录,存放所有命令、库、手册页等

**/root:**存放root用户的相关文件,root用户的家目录。宿主目录 超级用户 我们进入系统默认在root目录下

基础命令

cd切换文件夹

英文:change directory  命令路径:内部命令	执行权限:所有用户
作用: 切换目录
语法:cd 目录

Linux绝对路径    
	  /路径  
	  /aaa/bbb/ccc
	  
Linux相对路径 不是根目录开头的路径
	 ./   当前目录
	 ../  上一级目录
	 ../../  上两级目录
	 
cd ..返回上一级目录	 
cd  /     切换到根目录
cd  /root  使用绝对路径进入到root目录
cd  root   使用相对路径进入到root目录 
cd ./root  使用相对路径进入到root目录
cd -   显示并打开到上一次操作的目录     	 

pwd显示当前目录

英文:print working directory	命令路径:/bin/pwd		执行权限:所有用户
作用:显示当前工作目录
语法:pwd 

ls 查看目录下文件

英文:list	命令路径:/bin/ls	执行权限:所有用户
作用:显示目录文件
语法:ls [-alrRd]   [文件或目录]
-a  (all) 显示所有文件,注意隐藏文件,特殊目录.和..    
-l (long) 显示详细信息    
-R(recursive)   递归显示当前目录下所有目录  
-r  (reverse)  逆序排序
-t (time)	按修改时间排序(降序)
 ll  相当于 ls –l 

ls查看当前目录下的文件

[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

ls -a 显示所有文件 包括隐藏文件

[root@localhost /]# ls -a
.   bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
..  boot  etc  lib   media  opt  root  sbin  sys  usr

ls -l 显示详细信息

[root@localhost /]# ls -l
total 20
lrwxrwxrwx.   1 root root    7 Nov 18 02:08 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Nov 18 02:18 boot
drwxr-xr-x.  20 root root 3240 Nov 18 03:10 dev
drwxr-xr-x.  75 root root 8192 Nov 18 04:42 etc
drwxr-xr-x.   3 root root   17 Nov 18 04:42 home
lrwxrwxrwx.   1 root root    7 Nov 18 02:08 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Nov 18 02:08 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 Nov  5  2016 media
drwxr-xr-x.   2 root root    6 Nov  5  2016 mnt

注意:linux中 d开头的是文件夹  -开头的是文件  l开头的快捷方式

ls -l 可以简写成  ll

mkdir创建文件夹

英文:make directories	命令路径:/bin/mkdir	执行权限:所有用户
作用:创建新目录
语法:mkdir [-p] 目录名
-p 父目录不存在情况下先生成父目录 (parents)

mkdir  /root/aaa  在root下创建aaa文件夹
mkdir  /root/bbb /home/ccc  在root下创建bbb文件夹 在home下创建ccc文件夹
mkdir  -p /root/aa/bb/cc  -p可以创建多级文件夹  在/root下创建 aa/bb/cc文件夹  

touch创建文件

命令路径:/bin/touch		执行权限:所有用户
作用:创建空文件或更新已存在文件的时间      
语法:touch 文件名    
eg:# touch  a.txt  b.txt   touch {a.txt,b.txt}    同时创建多个文件
创建带空格的文件   eg:touch "program files"   在查询和删除时也必须带双引号
注意:生产环境中,文件名,一定不要加空格

touch  a.txt  在当前目录下创建 a.txt
touch  /root/a.txt  /root/b.txt /root/c.txt  在root下创建 a.txt b.txt c.txt
touch  "1 .txt"  如果文件名中有空格 需要加""

mv移动文件

英文:move 	命令路径:/bin/mv		执行权限:所有用户
作用:移动文件或目录、文件或目录改名

语法:mv 源路径 目标路径

mv   a.txt  b.txt  将当前目录的a.txt改为b.txt
mv   b.txt  /home  将当前目录下的b.txt移动到home文件夹下
mv   /root/c.txt  /home/ccc.txt 将root下的c.txt移动到home下并改名为ccc.txt

cp复制文件目录

英文:copy		命令路径:/bin/cp		执行权限:所有用户
作用:复制文件或目录
语法:cp [–rp]  源路径.....  目标路径
-r -R recursive 递归处理,复制目录
-p 保留文件属性 (原文件的时间不变)
eg:
1,相对路径  cp –R /etc/* .     cp –R ../aaa  ../../test/
2,,绝对路径  cp –R /ect/service  /root/test/aa/bb

cp a.txt b.txt  将a.txt文件 复制成b.txt 复制并改名 
cp -r aa   abc  复制文件夹要递归复制   将aa文件夹 复制为 abc文件夹  

rm删除

英文:remove 	命令路径:/bin/rm		执行权限:所有用户
作用:删除文件
语法: rm [-rf] 路径
-r  (recursive)删除目录,同时删除该目录下的所有文件
-f(force) 强制删除文件或目录 即使原档案属性设为唯读,亦直接删除,无需逐一确认

注意:工作中,谨慎使用rm –rf 命令。
 乱码文件删除
 ll -i 获取到 inum
 find -inum 33575027 -delete
 
 
rm -rf  a.txt   强制删除 a.txt文件 
rm -rf  aa    强制 递归删除 aa文件夹

echo输出

将内容打印在控制台显示
echo “hello”
echo “hello” > 1.txt    覆盖 
echo “hello” >> 1.txt   追加内容

cat显示文件内容

英文:concatenate 	命令路径:/bin/cat		执行权限:所有用户
作用:显示文件内容
语法:cat [-n] [文件名]
     -A  显示所有内容,包括隐藏的字符   
	-n	显示行号     
eg:cat /etc/services

ln连接

英文: link 	命令路径:/bin/ln	执行权限:所有用户
作用:产生链接文件   , 方便操作文件  
语法:
ln  -s   源文件   快捷方式文件     创建软链接       源文件 使用 绝对路径
ln       源文件    快捷方式文件           创建硬链接


ln -s  /root/a.txt  /a.txt  在根目录创建一个a.txt 连接 root目录下的a.txt  软连接 
软连接 如果源文件不存在了  快捷方式文件 就没有用了 没有对应的文件

ln  /root/b.txt  /b.txt   在目录下创建一个b.txt 连接 root目录下的b.txt   硬连接 
硬连接  b.txt也是一个单独的文件   源文件改变 b.txt也随之改变  源文件被删除 b.txt还可以继续使用

more显示文件内容

命令路径:/bin/more		执行权限:所有用户
作用:分页显示文件内容
语法:more [文件名]
空格或f   显示下一页
Enter键   显示下一行
q或Q  退出

less显示文件内容

lessmore 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
less [参数] 文件 
q 退出查看内容
参数说明:
-N 显示每行的行号
b 向后翻一页
d 向后翻半页
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
g  直达文件首页
G  直接文件末尾
/关键字   搜索关键字(按n找下一个)
[pagedown]: 向下翻动一页
[pageup]:    向上翻动一页

head查看文件前几行

命令路径:/usr/bin/head		执行权限:所有用户
作用:查看文件前几行(默认10行)
语法:head [文件名]
        -n 指定行数 
eg:head -20 /etc/services   services前20行

tail查看文件后几行

命令路径:/usr/bin/tail	执行权限:所有用户
作用:查看文件的后几行       
语法:tail [文件名] 
-n 指定行数 
-f  (follow) 动态显示文件内容
-F   动态显示文件内容  

获取一个大文件的部分文件,可使用head或tail命令
head  100 /etc/services >config.log  将 services中前100行 写入到 config.log文件中


-f  依据inode号跟踪,如果目标文件被重命名,则新创建的同名文件不会被跟踪
-F  依据路径名跟踪,如果目标文件被重名,然后创建了同名的新文件,则会继续跟新文件

find查找

根据文件名、路径、文件类型、修改创建时间等信息搜索文件
命令路径:/bin/find		执行权限:所有用户
作用:查找文件或目录      	
语法:find [搜索路径] [匹配条件]
如果没有指定搜索路径,默认从当前目录查找
find命令选项
 -name 按名称查找  精准查找
eg:find  /etc  -name  “init” 在目录/etc中查找文件init
-name 按名称查找
find查找中的字符匹配:
*:匹配所有
?:匹配单个字符
eg:find  /etc  -name  “init???”    在目录/etc中查找以init开头的,且后面有三位的文件
模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用 单双引号括住查询条件,或者使用\*。
eg: # find . –name *g

grep关键字查找

命令路径:/bin/grep		执行权限:所有用户
作用:在文件中搜寻字串匹配的行并输出 
在命令的输出中搜索内容     
 语法:grep  [-cinv]  '关键词'  filename
 选项与参数:
   -c :输出匹配行的次数(是以行为单位,不是以出现次数为单位)
   -i :忽略大小写,所以大小写视为相同
   -n :显示匹配行及行号
   -v :反向选择,显示不包含匹配文本的所有行。
eg:grep ftp  /etc/services 
    ll  /  | grep dev

gzip压缩

英文:GNU zip 	命令路径:/bin/gzip		执行权限:所有用户
作用:压缩(解压)文件,压缩文件后缀为.gz    
gzip只能压缩文件,不能压缩目录;不保留原文件
语法:gzip 文件
-d将压缩文件解压(decompress)
解压使用gzip –d或者 gunzip

tar 压缩解压

命令路径:/bin/tar		执行权限:所有用户
作用:文件、目录打(解)包
语法:tar [-zcf] 压缩后文件名  文件或目录
-c 建立一个压缩文件的参数指令(create),后缀是.tar
-x 解开一个压缩文件的参数指令(extract)
-z 以gzip命令压缩/解压缩  
-j  以bzip2命令压缩/解压缩 
-v 压缩的过程中显示文件(verbose)
-f  file 指定文件名,必选项

gzip 文件  文件  文件
gunzip 压缩文件 压缩文件
tar -zcvf  my.tar.gz  文件1 文件2  文件3...  打包压缩
tar -zxvf my.tar.gz  解压缩文件
tar -zxvf my.tar.gz -C 文件夹/  解压缩文件到指定目录

VI编辑器

yy 复制光标所在的行内容
dd 剪切光标所在的行内容 [删除]
p在光标所在的行的下面粘贴
nyy   复制n行
ndd   剪切n行
i光标所在的前面
I 行首
a光标的后面
A 行末
o 下一行 
O上一行
:q!  不保存退出
:wq!保存退出 
:set nu 显示文本行号
:set nonu 隐藏行号
n G  跳跃光标到第n行
G  跳跃光标到最后一行   o 文档的末尾插入
u 撤销操作  
/ str 搜索字符串  n下一个 

在linux中安装JDK

1.安装xftp7 从windows上传输一个JDK到Linux中/opt/apps下
2.对/opt/apps下的JDK压缩包进行解压  tar -zxvf jdk-8u191-linux-x64.tar.gz
3.配置 /etc/profile文件  vi /etc/profile 
	在文件最后添加
		 export JAVA_HOME=/opt/apps/jdk1.8.0_191
		 export PATH=$PATH:$JAVA_HOME/bin   
		 注意不要忘记/bin
     保存退出
4.source /etc/profile 
安装成功 

网络命令

查看本机的ip地址

ip  addr  -- 查看本机的IP地址 
inet 192.168.133.33/

服务

systemctl  start|stop|restart|status 服务名

systemctl  status  network   -- 查看网络服务状态
systemctl  stop  network
systemctl  start  network
systemctl  restart  network
systemctl  disable  network   开机禁用
systemctl  enable  network  开机启动

 -- 关闭NetworkManager网络服务 避免和network冲突
systemctl status NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager


防火墙服务

  systemctl  status firewalld   **** 
  Active: active (running) since Fri 2021-10-08 23:02:24 CST; 10h ago   -- 防火墙在运行
  
  systemctl  start   firewalld 
  systemctl  stop   firewalld 
  systemctl  restart   firewalld 
  systemctl  disable   firewalld   配置上自动关闭
  systemctl  enable   firewalld 
  
  如果报错 重新安装防火墙 yum -y install firewalld.service
  我们配置关闭防火墙 systemctl  stop   firewalld 
  配置开启禁用 systemctl  disable   firewalld 

主机名

[root@localhost ~]# hostname   -- 查看当前主机名
localhost.localdomain
[root@localhost ~]# hostname  linux01   -- 临时修改主机名
[root@localhost ~]# hostname
linux01

[root@localhost ~]# vi /etc/hostname   -- 修改主机名  永久
[root@localhost ~]# cat /etc/hostname 
linux01
--reboot  重启生效 
[root@linux01 ~]# 

域名

在网路之间所有通信的机器都会分配唯一的ip地址 ,ip是一个机器的唯一标识 , 通过IP地址定位一个机器

将ip映射成一个字符串 使用字符串(域名)映射你的机器

域名映射 :

C:\Windows\System32\drivers\etc

在windows上配置虚拟机的ip映射 
C:\Windows\System32\drivers\etc\hosts
192.168.133.33    linux01

在linux上配置windows的域名映射
vi  /etc/hosts
192.168.22.2 windows

网络端口查看

netstat
英文:network statistics		命令路径:/bin/netstat		执行权限:所有用户
作用:主要用于检测主机的网络配置和状况
-a  all显示所有连接和监听端口
-t (tcp)仅显示tcp相关连接
-u (udp)仅显示udp相关连接
-n 使用数字方式显示地址和端口号
-l (listening)  显示监控中的服务器的socket
-p  port 


-- 执行命令 
[root@linux01 ~]# netstat -nltp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      1748/mysqld         
[root@linux01 ~]# service  mysqld stop 
Redirecting to /bin/systemctl stop mysqld.service
[root@linux01 ~]# netstat -nltp | grep 3306
[root@linux01 ~]# 

注意:如果netstat命令报错 notfound 下载安装
-- 安装网络工具  
yum -y install  net-tools 

Linux安装mysql

  1. 进入到/opt/apps文件夹

  2. yum -y install wget

  3. wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

  4. yum -y install mysql57-community-release-el7-10.noarch.rpm

  5. yum -y install mysql-community-server --nogpgcheck

  6. systemctl start mysqld

  7. netstat -nltp | grep 3306

  8. grep “password” /var/log/mysqld.log

    2021-11-21T19:13:01.139721Z 1 [Note] A temporary password is generated for root@localhost: hUk5ak36Pn%T
    
  9. mysql -uroot -phUk5ak36Pn%T

  10. 修改密码

登陆mysql后  

#这两个设置后 密码可以简单设置
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
#修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

权限

为了保证系统数据的安全 , 不同的用户对不同的文件具有不同的操作权!

操作权: 读 写 执行

文件

使用root用户根目录创建 a文件夹 在a文件夹中创建1.txt文件

-rw-r--r--. 1 root root 26 Oct  9 19:09 1.txt
              用户  组
-  文件类型
rw-   当前用户拥有的权限  r read w write  x excute 执行权
r--   当前用户所属的组
r--   其他人  其他人对这个文件只有读的权限


[root@linux01 ~]# useradd zss  添加用户  zss
[root@linux01 ~]# su -l zss    切换用户 zss
[zss@linux01 root]$ 

[zss@linux01 a]$ echo "hello"  >> 1.txt      写 
bash: 1.txt: Permission denied   权限被拒绝


需要zss修改这个文件  没有写的权限  给zss分配写权限
o  other
u  user 当前用户 
g  group 组
a  all 
chmod   a+w 1.txt 
chmod   o+w 1.txt 
chmod   u-r  1.txt  
*** 给任何用户分配任意权限
 u   g   o
rwx rwx rwx
111 111 111
 7   7   7     chmod  777 1.txt
r-x rw- --x
101 110 001    chmod  561  1.txt

文件执行权 
在哪linux中脚本文件是可以执行的
vi a.sh  
#!/bin/bash 
echo "我可以执行..."
echo "我在当前目录下创建文件 aaa.doc"
touch  aaa.doc
有了执行权限以后可以直接执行  ./a.sh   /a/a.sh

目录权限

文件夹的权限的前提是具有x权限 , 没有x权限其他的权限没有意义 

w  写   创建文件  创建文件夹  删除内容  复制移动  重命名
r  读     ls   

注意-R递归

ll -R  /a   递归查看文件夹中的内容
chmod -R  777 /a  递归修改文件夹和文件夹内所有内容的权限

系统命令

free -h  查看内存   
echo 1 > /proc/sys/vm/drop_caches 清除缓存

df -h   查看硬盘 
du  查看文件或者是文件夹的大小
	-a 显示子文件的大小
	-b 字节
	-h以易读的方式显示 KB,MB,GB等
du -sh /etc 查看etc下所有文件的总大小 以合适的单位显示
	

top  查看进程 类似任务管理器
	-d 秒数,指定几秒刷新一次,默认3秒(动态显示)
kill -9 PID  强制结束进程
kill -1 pid 重启进程

ps   查看系统中的进程信息
	 	    a:显示所有用户的进程
             u:显示用户名和启动时间
             x:显示没有控制终端的进程
             e:显示所有进程,包括没有控制终端的进程
			l:长格式显示
ps aux      #查看系统中所有进程,使用BSD操作系统格式,unix
ps aux | grep mysql      查看mysql进程

helloword.class  java 0101010

pstree 查看当前进程树 
minimal版本中可能没有安装这个工具,需要手动安装
yum -y install psmisc



ctrl +z   可以把一个前台运行的程序挂起到后台(挂起,就意味着程序被暂停了)
jobs   查看当前在后台挂起的程序
fg  1  将指定id的job放回前台继续运行

暂时用不到
将一个程序放后台运行的标准写法:
nohup  sh back.sh  1>/dev/null 2>&1 &

1>/dev/null : 表示将程序的标准输出重定向到/dev/null 文件
2>&1     :  表示将程序的标准错误输出,重定向到“标准输出通道”
&       :  表示将程序放在后台执行
nohup    : 表示不要挂起


用户命令
	useradd zss 添加用户 
	userdel -r zss 删除用户并删除home文件

时间管理

手动设置时间
	date -s '2021-11-21'

(1)date								 (功能描述:显示当前时间)
(2)date +%Y							 (功能描述:显示当前年份)
(3)date +%m							 (功能描述:显示当前月份)
(4)date +%d							 (功能描述:显示当前是哪一天)
(5)date "+%Y-%m-%d %H:%M:%S"		   (功能描述:显示年月日时分秒)
(6)date  -d' -1 day' +'%Y-%m-%d'		(功能描述:显示前一天时间)
	date -d '1 days ago'			     (功能描述:显示前一天时间)

时间同步
	yum -y install ntp

vi /etc/ntp.conf

server npt1.aliyun.com
server time.windows.com
server time.apple.com

	
启动服务
systemctl  start  ntpd
systemctl  enable  ntpd
查看状态
ntpstat



为了让集群中的所有节点都保持时间同步
可以把所有节点都安装上ntpd,并且配好时间同步服务器

或者,也可以,只让节点1去向public同步服务器同步,其他节点向节点1同步
systemctl start ntpd
systemctl enable ntpd
vi /etc/ntp.conf
server linux01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值