初学Linux (Linux_note)
根目录:/
/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----------------------------
初学Linux (Linux_note)的更多相关文章
- linux初学 :linux 常用命令(二)
压缩和解压命令 gzip/guzip zip/unzip tar gzip和gunzip一般可用参数是-r,例: gzip test.txt 压缩文件 gzip -r test 压缩所有tes ...
- 初学Linux
一直觉得Linux敲命令很蛋疼,今天开始学习一下吧,主要以练习(想到啥就查啥)命令和练习在Linux中编程(Python)为主吧. 不记得什么时候安装的Ubuntu 12.04.3 LTS虚拟机,连密 ...
- linux初学 :linux 常用命令(一)
首先,是关机/重启命令,仅在虚拟机时使用,实际工作中用不到 reboot 一般不跟参数使用,输入指令即可重启 shutdown 一般需要跟参数,例: shutdown -r 延时多少分钟重启,一般使用 ...
- 初学linux命令
linux系统的精髓在于它的命令行 早就听说要学习linux系统,就要学习它的命令行(Command Line Interface).说来惭愧,已经使用了linuxmint快两个月了,虽然能够使用一些 ...
- 初学Linux要掌握的命令
echo:打印,或者直接输出指定的字符串 语法:echo (选项) (参数) 选项:/a: 发出警告声 /b: 删除前一个字符 /c: 最后不加上换行符号 /f: 换行但光标仍旧停留在原来的位置 /n ...
- 初学Linux系统最应该做对的4件事情[长文]
“闲来无事,逛逛贴吧”已经是本人无事消磨时间的最佳选择了.五花八门的问题,各式各样的回答,总能给自己带来无限的欢乐.当然也有些问题值得自己去思考或者回答.之前就有人在贴吧里问到“Linux好难啊!该怎 ...
- 初学LINUX版本的选择
1.用于企业环境:建议使用商业版本,例如Red Hat的RHEL或者是Novell的SuSE都是很不错的选择!毕竟企业的环境强调的是永续的经营,你可不希望网管人员走了之后整个机房的主机都没有人管理吧! ...
- 初学Linux应该注意的事项
相比于windows linux严格区分大小写 linux所有内容都是以文件形式保存 linux不靠扩展名区分文件类型(靠权限),linux下文件扩展名主要是方便管理员分类 linux所有的存储设备都 ...
- linu学习记录--初学linux中的几个基本命令以及比较关键的man指令
import chardet chardet.detect() #传入参数可以输出查看参数的对应编码 首先是用decode将对象编码转换成unicode,然后用encode将对象编码转换成输出所需,u ...
随机推荐
- Google免费新书-《构建安全&可靠的系统》
前段时间riusksk在公众号分享的Google安全团队的新书,好书,全英原版,开源免费. 免费下载地址:https://static.googleusercontent.com/media/land ...
- Object#wait()与Object#wait(long)的区别
例子 例1 最基础的等待-通知 下面一个例子,一个线程"waiting"在同步代码块调用了Object#wait()方法,另一个线程"timedWaiting" ...
- java并发包提供的三种常用并发队列实现
java并发包中提供了三个常用的并发队列实现,分别是:ConcurrentLinkedQueue.LinkedBlockingQueue和ArrayBlockingQueue. ConcurrentL ...
- PHP usleep() 函数
实例 延迟执行当前脚本 5 秒(5000000 微秒):高佣联盟 www.cgewang.com <?php echo date('h:i:s') . "<br>" ...
- JWT到底是个什么鬼?
前面一篇我们了解了微服务安全认证架构是如何演进而来的,但是发现v2.5架构仍然较重,有没有轻量级一点的方法呢?其实业界早已有了实践,它就是基于JWT的安全认证架构.JWT到底是个什么鬼呢?本篇为你解答 ...
- 新手程序员求职简历缺少这 3 点!别说8k薪资,4K你可能都拿不到!
制作一份简历可能需要八百到千字,但HR看简历的时间只不过短短十秒,甚至可以说是一目十行. 我想针对想做程序员的刚毕业的学生分享着一点自己在求职招聘方面的感悟,不针对工作了多年的老同志了.快毕业那会儿, ...
- luogu P4515 [COCI2009-2010#6] XOR 容斥
LINK:XOR 一个不常见的容斥套路题. 以往是只求三角形面积的交 现在需要求被奇数次覆盖的区域的面积. 打住 求三角形面积的交我也不会写 不过这道题的三角形非常特殊 等腰直角 且直角点都在左下方 ...
- Core下简易WebApi
代码很粗糙~ 粘贴github地址 https://github.com/htrlq/MiniAspNetCoreMini demo public class Startup { public Sta ...
- 【NOIP2015】斗地主 题解(DFS+贪心)
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的AAA到KKK加上大小王的共545454张牌来进行的扑克牌游戏.在斗地主中,牌的大小关 系根据牌的数码表示如下: ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(13.A)- LPSPI NOR启动时间(RT1170)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 1bit SPI NOR恢复启动时间. 本篇是i.MXRT1170启动时间评测第三弹了,前两篇分别给大家评 ...