命令笔记

/bin:
bin是binary的缩写,这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动linux时使用的一些核心文件,包括一些链接文件以及镜像文件。
/dev
dev是device的缩写,该目录下方的是linux的外部设备,在linux中访问设备的方式和访问文件的方式是相同的。
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录
/home:
用户的主目录,在linux中,每个用户都有一个自己的目录,一般该目录是以用户的账号命名的。
/lib:
这个目录里存放着系统最基本的动态链接共享库,其作用类似于windows里面dll文件,几乎所有的应用程序都需要用到这些共享库
opt:
这是给主机额外安装软件所摆放的目录,比如你安装一个orcale数据库则就可以放到这个目录下,默认是空的。
/root:
该目录为系统管理员,也成为超级权限者的用户主目录
/tmp:
这个目录是用来存放一些临时文件的。
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/var:
这是一个非常重要的目录,系统上跑了很多程序,
那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

命令ll:
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Desktop
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Documents
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Downloads
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Music
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Pictures
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Public
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Templates
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Videos

useradd :该命令是添加用户
userdel:删除用户 (参数-r 连带用户的主目录一起删除)

drwxr-xr-x:字母解释
d:代表该文件是一个目录文件,linux中第一个字母代表这个文件是目录还是文件还是链接文件
当为-时是文件
当为l则表示为链接文档
r:可读,w:可写 x:可执行 这三个权限的位置不会改变,如果没有权限就是-号
drwx:属主权限
r-x:属组权限
r-x:其他用户权限

ls -a :列出全部的文件,连同隐藏档(开头为.的文件)一起列出来(常用)
ls -al:列出全部的文件,连同隐藏档(开头为.的文件)一起列出来(常用)
ls -d :仅列出目录本身,而不是列出目录内的文件数据
ls -l:长数据列出,包括文件的属性与权限等数据
cd ~ 回到自己家目录既是root目录

二:
yum软件仓库
yum list all :列出仓库中所有软件包
yum install 软件包名称 :安装软件包
yum reinstall 软件包名称:重新安装软件包
yum update 软件包名称:升级软件包
yun remove 软件包名称:移除软件包

命令名称 命令参数 命令对象:这三个之间用空格分隔

free -m:查看内存使用情况
who 查看当前登入主机的用户情况

linux中以.开头的文件均代表隐藏文件,一般会是系统文件

cat 文件名
参数 作用
-n 显示行号
-b 显示行号(不包括空行)
-A 显示不可见的符号,如空格 tab键等等

more -10 文件名 :显示10行
more -d 文件名 :显示提示语句与报错信息

head -n 10 文件名 : 显示10行
head -n -10 文件名: 正常输出,但不显示后面10行

tail -n 10 文件名 : 显示后10行
tail -f 文件名:持续刷新显示的内容

cat 文件名 | tr [a-z] [A-Z] 把文件中的小写全部替换成大写(tr [原始字符] [目标字符])

wc -l 文件名:统计文件的行数
wc -w 文件名:统计文件的单词数
wc -c 文件名:统计文件的字节数

cut [参数] 文本
参数 作用
-d 分隔符 指定分隔符,默认为tab
-f 指定显示的列数
-c 单位改为字符

diff [参数] 文件1 文件2 :比较两个文件的差异
参数
-b 忽略空格引起的差异
-B 忽略空行引起的差异
-q 仅报告是否存在差异
-c 使用上下文输出格式

mkdir -p /a/b/c 连续创建多层目录

rm 参数 文件名
参数 作用
-f 忽略警告信息
-r 删除文件夹
-i 删除前先询问

rmdir 命令:仅删除空目录

passwd :修改当前用户的密码
passwd [选项] 用户:修改其他用户的密码
选项
-l 锁定用户禁止其登录
-u 解除锁定允许用户登录
-d 使用户无密码
--stdin 允许从标准输入修改用户密码
-e 强制用户下次登录是修改密码
-S 显示用户的密码状态

tar :对文件压缩和解压
tar -czvf 文件名 打包并压缩文件
tar -xcvf 文件名 解开并解开压缩包
tar -zxvf 文件名 解压tar.gz文件

[root@master mysql]# rpm2cpio mysql-community-server-8.0.16-2.el7.x86_64.rpm | cpio -div:解压rpm文件

参数 作用
-c 创建压缩文件
-x 解开压缩文件
-z 用Gzip压缩或解压
-v 显示解压或压缩的过程
-f 目标文件名

1.操作系统:内核,库,应用程序,
库也是一个应用程序,是一个没有入口的应用程序,是为可提高软件的运行和开发效率的
应用程序是有执行入口的

2.linux的基本原则:一切皆文件
命令格式:
命令 选项 参数 参数
选项:
段选项:
多个选项可以组合:-a -b = -ab
长选项:--
参数:命令的作用对象

ps axu | grep bash:查看用户登录接口是否启动

ls -l
-普通文件
d:目录文件
l:链接文件
c:字符文件
ls -a :显示隐藏文件
ls -R 递归显示,显示当前文件夹的文件和下面的文件夹的文件

shell:就是用户接口

[root@ jiapf]# type ls
ls is aliased to `ls --color=auto' 外部命令
[root@ jiapf]# type cd
cd is a shell builtin 内部命令
[root@ jiapf]#

printenv;查看环境变量

内部命令查看文档用 help 命令
外部命令查看文档用 man 命令

文件有三种时间:1.最后一次访问时间 2:最后一次修改时间(内容的改动为修改) 3:最后一次改变时间(文件的改动是改变)
一个文件有两种数据:1.内容数据:文件内容本省 2.元数据:除了内容数据之外的数据(大小,名字,拥有者等)

--grep 命令
grep 参数 "查找内容" 文件名

参数
-c 仅显示找到的次数
-i 忽略大小写
-n 显示行号
-v 反向查询,仅列出没有关键词的行
-r 递归查询
eg: grep -irn "jiaxiansheng" /home/jiapf(目录)>>/root/lines --查找内容并输出到/root/lines里面

--find 命令
find /etc -name "host*" -print --找出etc目录下面的所有以host开头的文件
参数 -exec {} \ --后面可接对搜索的结果进行进一步处理

| :管道命令
wc -l 统计单词的数量
grep "/sbin/nologin" /etc/passwd : 查找不允许登录系统的用户
grep "/sbin/nologin" /etc/passwd | wc -l :统计不允许登录系统的用户个数

输出输入定向:
命令>文件 将标准输出重定向到一个文件中(清空原有数据)
命令>>文件 将标准输出重定向到一个文件中(追加到原有数据内容后面)

命令2>文件 将错误输出重定向到一个文件中(清空原有数据)
命令2>>文件 将错误输出重定向到一个文件中(追加到原有数据内容后面)

命令>>文件 2>$1 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

命令<文件1>文件2 :将文件1作为命令的标准输入并将标准输出到文件2
命令<文件 :将文件作为命令的标准输入

通配符:

  •                   匹配零个或多个字符
    

? 匹配任意一个字符
[0-9] 匹配范围内的数字
[abc] 匹配已出的任意字符

\ 转义后面单个字符
'' 转义所有字符
"" 变量依然生效
`` (反引号) 执行命令语句

--命令别名:
alias 别名=命令
unalias 别名 --取消变量别名

vim:命令:命令模式:
dd 删除(剪切光标所在行)
5dd 删除剪切从光标处开始的5行
yy 复制光标所在行
5yy 复制从光标处开始的5行
p 将之前删除过或复制的数据粘贴到光标后
/字符串 在文本中从上至下搜索该字符串
?字符串 在文本中从下至上搜索该字符串
n 显示搜索命令定位到下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步的命令

末行模式
:w 保存
:q 推出
:q! 强制退出
:wq! 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行

shell脚本:

!/bin/bash 开头

执行shell脚本: ./test.sh (会提示权限不足) chomd u+x test.sh 设置权限即可执行
sh test.sh
source test.sh

shell脚本的变量
1-9,{11}... --参数的位置变量
* --所有位置变量的值
$? --判断上一条命令是否执行成功,0为成功,非0为失败

eg:

/bin/bash

echo "当前脚本名称是#个参数,分别是1,第五个参数是$5"

条件表达式:
文件测试:[操作符,文件或目录名] (注意:[] 两边都应该有一个空格!!!!!!!!!!!!!)
操作符: 作用
-d 测试是否为目录
-e 测试文件或目录是否存在
-f 判断是否为文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行

逻辑测试:[表达式1] 操作符 [表达式2]
操作符
&& 与,而且的意思
|| 或,或者的意思
! 逻辑的否

整数值比较:[整数1 操作符 整数2]
操作符
-eq 判断是否等于
-ne 判断是否不等于
-gt 判断是否大于
-lt 判断是否小于
-le 判断是否等于或小于
-ge 判断是否大于或等于

字符串比较:[字符串1 操作符 字符串2]
操作符 作用
= 比较字符串是否相同
!= 比较字符串是否不同
-z 判断字符串内容是否为空

if语句:
但分支语句:
if
then
fi

双分支语句
if
then
else
fi

多分支语句
if
then
elif
else
fi

判断是否存在某个目录,不存在创建该目录

!/bin/bash

dir="/media/cdrom"
if [ ! -e dir
fi

判断用户输入的分数在哪个区间内,然后判定为优秀,合格或不合格
read命令用于将用户的输入参数赋值给指定变量,格式为: read -p [提示语句] 变量名

!/bin/bash

read -p "请输入成绩" grade
if [ grade -le 100 ]
then echo "优秀"
elif [ grade -le 84 ]
then echo "通过"
else echo "失败"

for条件语句:
for 变量名 in 取值列表
do
命令序列
done

--shell脚本提示用户输入想要设置的密码并赋值给PASSWD变量,从user.txt文件中读入用户名并赋值给UNAME 变量,
而查看用户的信息都重定向到/dev/null文件,不显示到屏幕

!/bin/bash

read -p "请输入这用户的密码:" PASSWD
for UNAME in cat user.txt
do
id ? -eq 0 ]
then
echo "已经存在"
else
useradd PASSWD"|passwd --stdin ? -eq 0 ]
then
echo "成功"
else echo "失败"
fi
fi
done

while条件会重复测试某个条件,当条件成立时则继续重复执行
while 条件测试操作
do
命令序列
done

while条件语句:随机生成一个0-900的整数,判断并提示用户输入的值过高或过低,只有当用户猜中才结束程序
脚本中的$RANDOM是一个随机变量,用于%1000后会得到一个介于0-999的整数赋值给price变量,while后面的true代表
该循环会永久执行 (expr 计算整数变量值)

!/bin/bash

PRICE=RANDOM % 1000)
TIMES=0
echo "商品的实际价格是0-999之间,你猜猜多少"
while true
do
read -p "请输入你猜的价格数目:" INT
let TIMES++
if [ PRICE ]
then
echo "恭喜你答对啦,实际价格是INT -gt $PRICE ]
then
echo "你猜的价格太高啦"
else
echo “你猜的价格太低啦”
fi
done

--case条件语句
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
esac

提示用户输入一个字符给变量key,并判断key为何种字符后分别输出是字母,数字还是其他字符

!/bin/bash

read -p "请输入一个字符,并按enter键确认:" KEY
case "$KEY" in [a-z]|[A_Z])
echo "您输入的是字母"
;;
[0-9])
echo "您输入的是数字"
;;
*)
echo "您输入的是空格,功能键或其他制字符"
esac

--计划任务服务(一次性计划任务,长期性计划任务)

参数 作用
at<时间> 安排一次性任务
atq或at -1 查看任务列表
at -c 序号 预览任务与设置环境
atrm 序号 删除任务

一般用at创建计划任务有交互式和非交互式两种
echo "systemctl start httpd" | at 14:25 --创建一个14:25的定时任务

对于长期可循环的计划任务,则要用到cron服务
创建,编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]

字段 说明

分钟 取值从0到59之间的整数
小时 取值从0到23之间的整数
日期 取值1到31之间的整数
月份 取值1到12之间的整数
星期 取值为0到7之间的任意整数,其中0与7均为星期日
命令 要执行的命令或程序脚本

--文件权限:
chomd命令用于修改文件或目录的权限,格式为chomd[参数] 权限 文件或目录名称
chown命令用于修改文件或目录的所属组与所属主,格式为:chown[参数] 所属主:所属组 文件或文件目录

chomd和chown的命令参数简单----对于文件不加参数,遇到目录加大写的-R(递归,修改目录下面的所有文件的属性)

chattr命令用于设置文件的隐藏权限,格式为:chattr [参数] 文件
参数 作用
i 将无法对文件进行修改,若对目录设置后则仅能修改子文件而不能创建新文件
a 仅允许补充内容,无法覆盖
S 文件内容变更后立即同步到硬盘
s 彻底从硬盘中删除,不可恢复
A 不再修改这个文件的最后访问时间
b 不再修改文件或目录的存取时间

lsattr命令用于显示文件的隐藏属性,格式为:lsattr [参数] 文件
参数 作用
a 显示所有文件和目录
l 显示隐藏属性的全称(默认简写成一个字母)
R 递归处理,将指定目录下的所有文件及子目录一并处理
d 若目标文件为目录,请加此参数

sudo命令
参数 作用
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或uid值 以指定的用户身份执行命令
-k 清空安全时间,下次执行sudo时需要再次验证密码
-b 在后台执行指定的命令

nohup ./start.sh 的意思是在后台运行,意思是当你执行./start.sh $的时候,即使你使用ctrl C, 那么start.sh照样运行(因为对SIGINT信号免疫但是要注意,
如果你直接关掉shell后, 那么,start.sh进程同样消失。 可见, &的后台并不硬(因为对SIGHUP信号不免疫)
nohup 的意思是忽略sighup信号,所以当你运行nohup ./start.sh的时候,
关闭shell, 那么start.sh进程还是存在的(对SIGHUP信号免疫)。
但是, 要注意, 如果你直接在shell中用Ctrl C, 那么start.sh进程也是会消失的(因为对SIGINT信号不免疫)
所以, &和nohup没有半毛钱的关系, 要让进程真正不受shell中Ctrl C和shell关闭的影响, 那该怎么办呢? 那就用nohup ./start.sh &吧, 两全其美

如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中

你可能感兴趣的:(命令笔记)