不常用的不用记,用到再查就完事了

man:查询, man -k 带正则表达式的查询(man是manual的缩写)
date:获取时间信息
bc:计算器(也可以设置变量,执行循环计算等)输入quit可以离开
who:列出当前已登录入系统的用户(类似的有whoami)
tty:打印出当前终端的设备文件名
uptime:当前时间+up+启动到现在运行时间+用户数+近期1分钟、5分钟、15分钟内CPU负载,即平均调度队列长度
top:列出资源占用排名靠前的进程
ps:列出当前进程属性
free:了解内存使用情况(attention:Linux会运用程序暂时不用的内存来缓冲读写过的磁盘信息,可以提高系统效率)
vmstat:了解系统负载

当我们启动一个Linux的终端,它会判断当前是哪个用户登录的
ls(ls -h):显示当前路径下所有文件 (ls:list,罗列(当前路径所有文件))
ls -l:以列表格式显示
ls -a:显示包括隐藏文件
ls -lha:包括隐藏文件以列表形式显示
ls -i:显示文件id
ls -la == ll

关于ls的通配符(星号,问好?,中括号[]):
ls 1
.odt:罗列以1开头的所有文件
ls 1?.odt:罗列以1开头、仅有两位的所有文件,?仅代表一个字符
ls [1234]23.odt:罗列所有开头从[1234]中四个元素中取得的且以23结尾的odt文件

pwd:显示出当前路径 (print work directory打印当前工作的路径)
cd:打开某个文件(必须区分大小写
cd .. :打开上一层路径
cd /...:开头带/表示从根目录开始,代表绝对路径,否则不加/就是相对路径

Tab键:cd xxx可以自动补全

关于文件的指令:
touch 创建文件 touch test.txt(只能创建文件)
mkdir (可以创建目录)
rm 移除文件
移除目录:rm -d xx(目录名)

mv移动(剪切)文件或文件夹,即“move”
mv xx.xx 目录名

cp 复制文件或文件夹copy
cp xx(文件名) . .代表当前目录
当复制的是目录时:要加上-r 例:cp -r a/b . 将a文件夹下的b文件夹移动到当前文件夹
例:cp 125.txt 126.txt 在当前目录复制125.txt并改名为126

which xx 查看命令所在位置 例外:which cd 无法查到,为空,因为cd是shell内置的命令
其他命令查到了也没啥用,文件都是二进制编码

/bin binary, 二进制文件,普通命令
/sbin 系统二进制文件,要有系统权
/usr/bin 用户安装的应用程序 touch就在usr/bin下面,因为创建文件与用户相关大部分命令都存放与此
/usr/sbin 超管安装的应用程序(带s的对权限要求更高)

find /home -name xx 搜索文件
find /home -name '12?????' 模糊搜索:搜索文件名后有五个或五个以内的文件
find /home -iname xx 带i可以忽略大小写来搜索

计算机基本单位:字节B 1B=8bit(一字节=8位)
1KB=1024B 1MB=1024KB 1GB=1024MB

按照大小查找:一个数据块=512字节,所以1KB=2数据块
find /home -size +1 :搜索大小大于一个数据块(512B=0.5KB)
find /home -size -6:搜索小于3KB的文件

按照用户查找:
输入ls -l会显示文件信息,其中也包括创建人信息
查找: find /home/xxx -user xxx

按照时间查找(例如查找五分钟之内创建的文件,找出会被黑客更改的文件)
find /home/xxx -mmin -5 (mmin:上次文件内容被修改的时间)(+5:超过五分钟的;5:刚好五分钟前被修改的)
除此之外: amin:上次文件被访问的时间;
cmin:上次文件属性(文件权限)被修改的时间 (不常用)

按照文件类型搜索 find /home -type f(文件)
find /home -type d(目录)
find /home -type l(软链接文件,link)

除此之外,查找条件可以组合
find /home -name 'a*' -a -type f 查找以a开头的文件(-a就是and,-o是or)

find /home -inum xxxxxxx(以id名查找)

全局搜索:
locate xxx.xxx 不仅显示文件还会显示包含文件的目录,速度更快,缺点是更新不及时
当locate找不到时,可能是locate的搜索库没更新,输入 sudo updatedb即可

两种查看文件内容的指令:
cat xxx.xxx (按空格下一页,b上一页
more xxx.xxx (内容多的时候适合用,因为可以分页展示,ctrl+c退出查看

cat -b xxx:连行号显示,但不计算空行
cat -n xxx:连行号显示,计算空行

查找文件内容:
(要在用户权限下)1.grep user 126.txt(搜索包含user的所有行并打印
2.grep -v user126.txt(搜索不包含user的所有行,可以用来在命令行中去掉注释查看
注意:如果要搜#这种特殊字符,要加上引号‘#’
3. grep ^'#' 126.txt (搜索以#开头的
4. grep '#'$ 126.txt (搜索以#结尾的
5. grep -n xx xxx.xxx 显示行号
6. grep -i xx xxx.xxx 忽略大小写

2.25
使用尖括号进行命令文本输出到文本文件:
echo hello 在控制台上打印出hello
echo hello >126.txt 覆盖126.txt原有内容并在内容里打印hello
echo hello >>126.txt 不覆盖126.txt原有内容并在内容里接着打印出hello
ls > 126.txt (覆盖原有内容,打印当前目录下文件列表
ll > 126.txt
ll >> 126.txt
grep siki 126.txt 检索126里面所有包含siki的行
grep siki 126.txt >> res.txt 检索出以后输入到res.txt,如果res.txt不存在也没关系,会自动创建
(通常用于保存一些日志文件)

在linux文件中,文件名后缀不像win那么重要,很多自带的默认文本文件是没有后缀的

2.25** 管道**:
把一个命令的输出,通过管道连接,作为另一个命令的输入
输出的是命令的结果,输入一般是一个命令的参数(cat xxx.txt,这个txt就是cat的输入;ls ,当前目录就是ls的输入)

通常情况管道会和more结合使用:
第一种用法:
ls -lh | grep 125.txt
将ls -lh的输出作为 grep 125.txt的输入,也就是从输入中抓取包含125.txt的行并打印展示

第二种用法:
grep ^'#' xxx 抓取注释
grep ^'#' xxx | more :分页查看结果
(一般来说要用到管道时,都是因为抓取的输出结果不方便查看,所以需要more指令的帮助)

grep -v ^'#' xxx | grep update 只对抓取到的信息中带update的感兴趣
(抓取时,-v 将单纯的注释行去掉)

软链接:ln aa/abc abc_softlink(在当前目录创建一个名为abc_softlink的软链接,直接连接(ln意思是link的缩写)到aa文件夹下的abc文件)
相当于快捷方式

2.27用户管理、用户组管理和权限
linux是一个多用户的系统,服务器是多人运维管理

用户添加 useradd xxx (要在sudo权限下)
给用户xxx设置密码sudo passwd xxx
创建用户user3时加个叫user3的目录 sudo useradd -m user3

3.3
linux中文件、用户都是有id的
uid:用户id
gid:组id

cat etc/passwd :配置当前系统有哪些用户以及用户密码
大部分是系统创建的用户,并不能登录,像是npc,用来做权限控制
用户名、密码标志(x)、UID、GID、用户全名、家目录、使用的shell

Q:啥是shell?
A:shell是用来解析命令的,接收用户命令并调用相应程序执行
有三种shell
第一种: /bin/bash
第二种:/usr/sbin/nologin
第三种:/bin/sh (创建用户时用的shell)

查看所有shell: cat /etc/shells
修改shell chsh

用户组的配置文件:
cat /etc/group
组名,组密码标志(x),GID,组中附加用户

影子文件(用于存放密码)
cat /etc/shadow
cat /etc/gshadow

shell工作流程:
用户输入命令、提交给shell、判断是否为内置命令
如果是外部命令或实用程序,在系统中查找该命令的文件并调入内存执行
如果是内置命令,内核直接执行

Q:啥是内置命令与外置命令
当登入系统,shell上线,加载进内存的常用命令也就是内置命令
比如cd就是内置命令 which cd不返回任何路径,因为cd就在内存中,没有文件位置,所以执行效率高
ls就是外置命令

关于表示文件权限的字符:r w x
r(可读的文件)
w(可写的文件)
x (可执行的文件)

3.6:
后台进程中:应用程序与服务程序(没有操作界面的)

如何修改权限:
格式一:
chmod(changemod的含义)
例 chmod u+x 126.txt 添加一个可执行的权限
chmod u-x 126.txt 减权限
chmod u-rw,g-r 126.txt 同时也可以修改组权限
chmod u=rwx 126.txt 等于号就是直接修改为rwx

格式二:
用数字表示 r=4 w=2 x=1
r--rw-rwx:所述文件可读,所属组可读可写,其他人可读可写可执行
chmod 444 126.txt:修改为都是只读

651 rw-r-x--x
chmod -R 777 xxfile:修改文件包括文件的所有子文件
-R是对于文件夹而言的递归修改所有子文件

chown(含义是change owner)修改所属人
chgrp (含义是change group)修改所属组