运维开发网

初学Linux (Linux_note)

运维开发网 https://www.qedev.com 2020-06-13 10:40 出处:网络
根目录:/ /root: 存放root用户相关文件 /home: 存放不同用户的相关文件 /bin: 存放常用命令的目录 /sbin: 要具有一定权限才可以使用的命令 /mnt: 默认挂载光驱和软驱的目录 /etc: 存放配置相关文件 /var: 存放经常

根目录:/

/root: 存放root用户相关文件

/home: 存放不同用户的相关文件

/bin: 存放常用命令的目录

/sbin: 要具有一定权限才可以使用的命令

/mnt: 默认挂载光驱和软驱的目录

/etc: 存放配置相关文件

/var: 存放经常变化的文件

/boot: 存放引导相关的文件

换源

software-properties-gtk

查看各个分区挂载容量,那么输入:【df -h】,那么此时即可查看了的

显示当前在哪个目录下: pwd

7个运行级别

0:关机

1:单用户(找回丢失密码)

2:多用户无网络服务

3:多用户有网络服务

4:保留

5:图形界面

6:重启

(系统运行级别的配置文件/etc/inittab)

修改/etc/inittab文件中的

id:3:initdefault , 将3改为5 ,重新启动系统;

命令init[012345]

init 3 多用户有网络服务

init 5 图形化

init 0 关机

忘记密码修改操作:

开机——> 在引导是输入 回车Enter ——> 看到一个界面输入 e ——> 看到一个新界面 选中第二行(编辑内核)再输入e ——> 在这行最后输入 1(空格 1)在输入回车 -> 再次输入b进入到单用户模式 passwd root 修改root密码

添加用户:

useradd Diyo

useradd -d /home/‘目录‘ diyo 创建用户diyo指定目录

useradd -g 组名 用户名

设密码:

passwd Diyo

userdel 删除用户

userdel -r 删除用户及其家目录

usermod -g 组名 用户名 改变用户的用户组

usermod -d 目录名 用户名 改变该用户登录的初始目录

查看用户信息

id 用户

组管理和权限管理

组的创建

groupadd policeman

groupdel

修改文件所在组

chgrp

chgrp 组名 文件名

chgrp -R 组名 文件夹 修改目录下的所有文件和目录所有组

修改用户所在组

usermod -g 组名 用户名 改变用户的用户组

usermod -d 目录名 用户名 改变该用户登录的初始目录

权限管理:(-:普通文件,d:目录,l:软链接,c:字符设备【键盘,鼠标】,b:块文件,硬盘)

权限分为三种:r可读 用4表示,w可写 用2表示,x可执行 用1表示

-rw-r--r--. 1 Diyo works 10 7月 2 00:32 mytest1.java

- 文件类型

rw- 文件所有者Diyo对该文件的权限

r-- 文件所在组works对该文件的权限

r-- 其它组的用户对该文件的权限

修改权限chmod

方式一:+、-、=变更权限

u:拥有者 g:拥有组 o:其他组 a:所有人

chmod u=rwx,g=rx,o=rx 文件

chmod u-r

chmod g+w

chmod a=rwx

方式二:r=4 w=2 x=1 - 数字变更

chmod 755 文件

修改文件所有者:

chown

chown 用户名 文件名

查看所有组信息 cat /etc/group

查看所有用户信息 cat /etc/passwd

口令配置文件(密码) cat /etc/shadow

whoami

用户退出登录的方法有以下三种:

1、在shell提示符下输入 exit 按回车确认

2、在shell提示符下输入 logout 按回车确认

3、按快捷键crtl+d (此方法同logout效果)

vim编写C、C++程序过程(以hello world为例):

1、vim hello.c/hello.cpp。

创建hello.c/hello.cpp文件,并进入vim界面;

2、键入i,进入输入模式。

3、编写hello.c/hello.cpp程序。

4、先按Esc键,退出输入模式;然后,按Shift+:键,进入命令模式。输入wq,保存并退出。

5、编译hello.c/hello.cpp。

5.1、对于C程序:用gcc hello.c便可编译;

5.2、对于C++程序:用g++ hello.cpp可编译。编译后,均生成a.out的可执行文件;

6、键入指令"./a.out",运行程序。

7、在Terminal上显示"hello world"即成功。

pwd 显示当前工作目录

cd 改变目录

ls 列出文件和目录

ls -a 显示隐藏文件

ls -l 显示长列表格式

ls -al

ls -lh 按人查看

mkdir 建立目录

mkdir -p test/t11/t1 递归创建目录

rmdir 删除空目录

rmdir -p 递归删除

touch 建立空文件

cp 复制命令

\cp 强制复制

cp -r dir1 dir2 递归复制命令(复制子目录信息)

mv 移动文件和改动文件文件名

rm 删除文件和目录

rm -rf * 删除文件所有内容(包括目录和文件)r递归 f强制

ln 建立符号连接

ln -s 源 目录

ln -s /etc/inittab inittab (inittab指向实际文件/etc/inittab)

cat -n显示行数

more 显示文件内容,带分页

less 显示文件内容带分页(看大文件建议)

ctrl+f

ctrl+b

=

空格space:向下翻一页

回车Enter:

重定向命令:

> 输出重定向 覆盖

>> 追加

ls -l > a.txt 列表的内容写入文件a.txt中(覆盖写)

ls -al >> a.txt 列表的内容追加到文件a.txt的末尾

从文件中输入信息database_program < database_data

cat 文件1 > 文件2

echo "内容" >> 文件

echo 输出内容到控制台

echo $PATH 输出变量

echo "hello" 输出文本

head 指令 显示文件的前面部分(默认显示前十行)

head -n 5 查看前5行

tail 指令 显示文件的后面部分(默认显示后十行)

tail -n 5 查看后5行

tail -f 实时追踪文档的所有更新,工作经常使用

history 显示多有历史指令

history 10 显示最近10个指令

!数字 执行第多少指令

date 日期类指令

date 显示当前时间

date "+%Y-%m-%d"

date "+%Y年%m月%d日"

date "+%Y年%m月%d日 %H:%M:%S"

date -s 设置时间

date -s "2019-07-10 18:34:56"

cal 日历指令

cal 显示当前日历

cal 2019 显示一整年日历

搜索查找类:

find:查找文件

find /home -name 文件名 搜索范围/home 按文件名-name 文件名 查找文件

find /opt -user 文件名 按文件的拥有者查找

find / -size +20M 查找目录下大于20M的文件

find / -size -20k 查找目录下小于20K的文件

find / -size 20M 查找目录下等于20M的文件

find / -name *.txt 按文件名通配符查找

locate:快速定位文件路径

locate 搜索文件

locate 特别说明:第一次运行前必须使用updatedb指令创建locate数据库

updatedb 创建locate数据库

grep指令和 管道符号|

grep 匹配(查找)字符串

在文本中查询内容(-n显示行数) grep -n "abc" aaa.txt 在aaa.txt中查询abc

grep -n 显示行号

grep -i 忽略大小写

| 管道命令:表示将前一个命令的处理结果传递给后面的命令处理

压缩和解压缩

gzip/gunzip gzip用于压缩/gunzip用于解压缩

gzip 文件 (压缩文件,只能将文件压缩为*.gz文件)(压缩后原来文件不保留)

gunzip 文件.gz 文件进行解压缩

zip/unzip zip用于压缩/unzip用于解压的,在项目打包发布中很有用

zip 可以是文件和文件夹

zip -r a.zip /home 递归压缩/home成a.zip

unzip

unzip -d 解压后存放的目录

tar 打包指令 最后打包的文件是 .tar.gz的文件

-c 产生.tar文件

-x 解压.tar文件

-z 打包同时压缩

-v 显示详细信息

-f 指定压缩后的文件名

tar -zcvf 压缩(打包)a.tar.gz tar -zcvf a.tar.gz a.txt

tar -zcvf a.tar.gz /home/

tar -zxvf 解压到当前目录 tar -zxvf a.tar.gz

解压到指定目录 tar -zxvf a.tar.gz -C /home

man命令相当于dos下的help

man grep 查询grep命令帮助

Linux 磁盘分区、挂载

crond任务调度

crontab定时任务调度

-e 编辑crontab定时任务

-l 查询crontab任务

-r 删除当前用户所有的crontab任务

service crond restart 重启任务调度

crontab 可以用来定时调度 某个程序或者某个脚本

---------crontab-----------------crontab---------------crontab----------

crontab默认情况下是不执行开启日子的,所以一开始写完后,不能执行,想查看日志,却找不到。所以先开启定时任务的日志来查看

  修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf 文件中的 #cron.* 前的 # 删掉;用以下命令重启rsyslog服务:

service rsyslog restart;

  然后再重启crontab服务:

service cron restart;

  网上很多人说开启,停止或者重启contab服务用命令 service crond restart,执行这个命令会报出 unrecognised service ,这里吧 crond 改成 cron 就可以了。

  之后,在这个位置 /var/log/cron.log 就可以查看定时任务的文件日志文件了;

  下面这个命令还可以查看crontab的状态

service cron status;

1 编写脚本 放入家目录

vi pi.sh

内容为

#!/bin/bash

. /home/briup/.bashrc

. /etc/profile

JAR_FILE="/Users/zhaojing/Documents/hadoop-3.0.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar"

echo "starting......"

date

yarn jar $JAR_FILE pi 10 1000

echo "==============================="

------------------------

#!/bin/bash

HADOOP_USER_NAME=hj_dengzhiyong

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/briup/software/jdk/bin:/home/briup/software/hadoop/bin/:/home/briup/software/hadoop/sbin

JAR_FILE="/home/briup/software/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar"

echo "starting......"

date

yarn jar $JAR_FILE pi 10 1000

echo "==============================="

 

解释:行6 shell脚本必须写的内容

行7 行8 crontab任务中不会引用环境变量故有些命令会失效,此处意思为引入环境变量

行9 定义变量JAR_FILE内容为某个jar包,例如 pi的jar包

行10 运行时输出start....

行11 输出时间

行12 提交pi任务 因为默认情况下cron 输出结果会通过邮件方式发送 我们没有邮件系统故结果直接重定向到某个文件中

2 脚本编写好后新建crontab任务(命令)

crontab -e

输入命令后进入 vi 编辑器 意为部署某个任务

该编辑器中每行内容结构如下 代表在某年某月某日某分执行某个命令

* * * * * command path (~/.bashrc)

*/1 * * * * /bin/bash /home/briup/pi.sh >> /home/briup/log.txt

写完后保存退出

-e:编辑该用户的计时器设置;

-l:列出该用户的计时器设置;

-r:删除该用户的计时器设置

解释:

字段名称 说明 取值范围

分钟 每小时的第几分钟执行 0-59

小时   每日的第几个小时执行 0-23

日期 每月的第几天执行 1-31

月历 每年的第几月执行 1-12

星期 每周的第几天执行 0-6

命令名称 欲执行的命令及参数

符号  说明

* 表示任何时刻

, 表示分割

- 表示一个段,如第二段里: 1-5,就表示1到5点

/n 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

以下是常用的一些时间间隔写法

15 05 * * *    每天的05:15 执行

0 17 * * 1 每周一的 17:00 执行

0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行

0 21 * * 1-6   周一到周六 21:00 执行

*/10 * * * *        每隔10分 执行

* 1 * * *         从1:0到1:59 每隔1分钟 执行

0 */1 * * *        毎时0分 每隔1小时 执行

2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 执行

3 查看服务状态 service cron status-------------------crontab-end----------------------------

0

精彩评论

暂无评论...
验证码 换一张
取 消