指令常用:ls -alth
关于用户组权限
drwxr-xr-x
第一个字母:文件类型
后九个字母:以三个字母为一组,表示用户组权限(所有者u、所属组g、其他人o)
.开头的文件都是隐藏文件,隐藏文件是配置文件,是为了防止修改
ls的通配符:补充:Linux之通配符
符号 | 作用 |
---|---|
* | 代表0或者任意多个字符 |
? | 代表一个字符 |
[abcd] | abcd中的一个字符 |
[a-z] | a到z的一个字符 |
多个文件的编辑:echo
linux中文件的后缀可以加可不加,加上方便识别,在linux中很多文本是没有任何后缀的
指令 | 作用 |
---|---|
echo xxx > xxx.txt | 写入(覆盖) |
echo xxx >> xxx.txt | 追加(末尾) |
ls > xx.txt | 查询结果覆盖xx文件中 |
ls >> xx.txt | 查询结果追加在xx文件中 |
ls -lh > xx.txt | 格式化的查询结果覆盖在xx文件中 |
例如
若需要把结果都存放在一个文件
./a.out >> test.txt &
//&表示在后台运行
管道
例如
grep -v ^'#' /etc/services | more //分页显示
ls -lh | grep 125 //在模糊搜索结果中查找文件内容包含125的文件
df -h /opt
拷贝文件夹到指定目录:
cp -r myfolder/ ../testcpp/
移动文件/文件夹:
mv myfolder ../testcpp/
重命名文件:
mv myfile myfile01
查看文件内容:cat和more
指令 | 作用 |
---|---|
cat xx.txt | 显示所有文件内容 |
cat -b xx.txt | 显示行号 去除空行 |
cat -n xx.txt | 显示行号 包含空行 |
more xx.txt | 分页显示文件内容 下一页(空格) 上一页(b) 下一行(Enter) |
分页查看文件:less
操作:
命令选项 | 说明 |
---|---|
-i | 交互式提示 |
-r | 递归删除目录及其内容 |
-f | 强制删除,忽略不存在的文件,无需提示 |
-d | 删除空目录 |
删除目录(文件夹)需要带 -r
复制目录(文件夹)需要带 -r
移动目录(文件夹)不需要带 -r
很少使用rmdir
find -name
示例一:find /home -name 123 //精确搜索
示例二:find /home -name 123* //模糊搜索 通配符,其他用法:*123* 123??
示例三:find /home -iname abc //选项-i 不区分大小写
示例四:find / -size +204800 //根据文件大小搜索,1数据块=512字节Byte=0.5KB
//-204800 204800 // 100MB 100*1024KB 100*1024*2*数据块
示例五:find /home -user siki//根据用户名查询
示例六:find /home -mmin -5 //文件内容上次被修改时间在5分钟以内
//mmin上次文件内容被修改时间
//amin 上次文件被访问时间
//cmin 上次文件属性(文件的权限)被修改时间
//-5 5分钟以内 +5超过5分钟
示例七:find /home -type f //-type文件类型 f文件d目录(文件夹)l软链接文件(Link)
示例八:find /home -name 123 -a -size +5 //-a and同时满足 -o or或者,满足其中一个即可
示例九:ls -i //先展示用户id,
find /home -inum 343//然后根据用户id查询
示例十:find /home ! -name "*.txt" //找出/home下不是以.txt结尾的文件
按照文件大小查找:find
按照文件类型查找:find
额外选项
-a:两个条件都满足
-o:两个条件满足一个即可
对搜索结果执行操作:-exec
;
$ find /etc -name init* -exec ls -l {} \;
需要手动更新索引库
sudo updatedb //命令前面加sudo表示通过管理员方式运行
grep [option]
指令 | 作用 |
---|---|
grep -n xx xx.txt | 显示包含内容行的行号 |
grep -w xx xx.txt | 整词查找xx内容 |
grep -v xx xx.txt | 去掉包含xx内容的行,显示其他所有内容 |
grep -v # xx.txt | 去掉带#的行(去掉带注释的行) |
grep -v ^# xx.txt | 去掉只有注释的行 |
grep #$ xx.txt | 去掉以#结尾的行, ^x开头的行 x$以x结尾的行 |
grep -i xx xx.txt | 忽略大小写搜索 |
$ grep -in helloworld main.cpp
6: cout << "HelloWorld!" << endl;
一般使用命令:grep abc * -nwr
参考博文:Linux压缩与解压【tar】
压缩文件为.gz格式:gzip
解压.gz格式的压缩文件:gnzip
tar选项:
压缩文件为.tar.gz格式:tar -zcf
解压.tar.gz格式的压缩文件:tar -zxf
rar testcpp/ testcpp.rar
#rar格式的压缩,需要先下载rar for linux
zip testcpp.zip testcpp/
#zip格式的压缩,需要先下载zip for linux
unrar e testcpp.rar
#rar格式的解压缩,需要先下载rar for linux
unzip testcpp.zip
#zip格式的解压缩,需要先下载zip for linux
03:36:33 up 3 min, 1 user, load average: 0.99, 0.81, 0.35
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
book :0 :0 03:35 ?xdm? 25.17s 0.00s /usr/lib/gdm3/g
参数解释:
语法:ifconfig <网卡名称>
last命令 列出所有登入系统的用户信息
类似于ping,但是提供更详细的输出
需要安装:sudo apt install traceroute
查询网络链路通畅
$ traceroute www.baidu.com
traceroute to www.baidu.com (110.242.68.3), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 2.220 ms 2.335 ms 2.509 ms
2 192.168.10.1 (192.168.10.1) 4.864 ms * 9.310 ms
类似的工具还有:网络测试工具——tcping
语法:netstat [options]
options:
通过查看开启端口进而查看本机开启的服务:netstat -tlun
查询已连接的服务:netstat -an
查询网关:netstat -rn
语法:ps aux
查看系统中所有进程,使用BSD操作系统格式
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 166764 11756 ? Ss 15:17 0:01 /sbin/init sp
dyx 4599 0.0 0.0 33575880 3448 ? Sl 15:22 0:00 /opt/google/c
dyx 7953 0.0 0.0 19928 5308 pts/0 Ss 16:00 0:00 bash
dyx 7971 0.0 0.0 21340 3472 pts/0 R+ 16:01 0:00 ps aux
参数解释:
语法:top [options]
options:
在top命令的交互模式下,按:
load average:系统在之前1分钟、5分钟、15分钟的平均负载
87.5 id:空闲CPU所占百分比
语法:kill [信号] [进程号]
常用命令:
重启进程:kill -1 [进程号]
强制杀死进程:kill -9 [进程号]
按照终端号踢出用户步骤:
查询本机已登录的用户:w
强制终止从终端号登录的进程:pkill -t -9 [终端号]
语法:shutdown [options] [time]
options:
time:
1. cmd -help
2. man cmd (manual手册)
3. help cd (有些指令在不会放在man)
man 1是普通的shell命令比如ls,
man 2是系统调用比如open,write说明,
man 3是函数说明,
which cmd
如果which cmd为空则表示该命令式shell内置的命令
什么是内置命令:
内置命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。而外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。大部分内置命令都是内置在shell中的,也有一些内置命令有自己单独的文件。系统启动,会把shell中的内置命令,其他其他不在shell中的内置命令加载到内存中用户输入命令会首先提交给shell,判断是否为内置命令
查看所有shell
cat /etc/shells #查看所有shell
shell存放的位置结果:
1./bin/bash
2./usr/sbin/nologin
3./bin/sh (我们创建用户的时候的shell)
修改shell:
chsh命令 #修改shell
查看当前系统的命令是否为内置命令和外部命令。
type 指令
添加用户名
sudo useradd 用户名 (-m:创建家目录 和 -g:指定所在的组 选项)
设置密码(不设置用户名的用户是不能使用的)(注意是passwd不是password)
sudo passwd 用户名
查看用户是否添加成功:
cat /etc/passwd #etc是配置文件,存储当前系统有哪些用户,以及用户密码(passwd在影子文件里面)
查询结果包含:
1,用户名
2,密码标志
3,UID
4,GID
5,用户全名
6,家目录
7,使用的shell
影子文件包括:用户影子文件和用户组影子文件
cat /etc/shadow #!表示还没有密码
cat /etc/gshadow
查看文件信息或用户信息:
ls -i #查看当前路径下所有文件id
id 用户名 #查看该用户名的uid和gid
id 无用户名 #查看当前用户uid和gid
whoami #当前登录用户
who #当前所有登录用户罗列出来
修改当前用户密码:
passwd
用户组
用户切换
su 用户名 #用户切换但回到root目录,cd ..可以返回到根目录下
su - 用户名 #用户切换并回到家目录
exit #退出当前用户,返回上一个用户(从哪个用户切换过来的)如果没有上一个用户,直接退出终端
ctrl+d #等效于exit
用户删除
userdel 用户名 #删除用户
userdel -r 用户名 #删除家目录
userdel -f 用户名 #强制删除,即使用户正在登陆系统
用户组管理
groupadd 用户名 #添加
groupmod -n 新用户名 用户名 #改名
groupdel 用户名 #删除
确认组是否被添加成功
cat /etc/group #确认组是否被添加成功
查询结果包含:
1,组名
2,组密码标志
3,GID
4,组中附加用户
修改用户信息(usermod)(某些需要重新登录生效)
usermod -g xxgroup xxuser 修改初始组(基本不去修改)
usermod -G xxgroup,xxgroup xxuser 修改附加组,是覆盖
usermod -s /bin/bash xxuser 修改shell
用户权限(文件对用户来说的权限,用户操作文件或者文件夹的权限)
输入ls -l
u g o
- --- --- ---
第一列:
1. a表示文件类型
2.-二进制文件(包括不限于文本文件)
3.d目录(文件夹)
4.l(软连接文件)
第二三四列:(九个字符分三组)
1.u(user)所有者
2.g(group)所属组
3.o(other)其他用户
r读写 w写 x执行
权限修改(只有文件所有者和超管可以修改文件的权限)
格式一
chmod [ugoa][+-=][rwx] 文件或者目录
chmod u+w,g+x xx.txt #augo分别表示all(所有人),user(用户),group(组),other(其他用户)
格式二
用数字表示权限 r=4 w=2 x=1
比如:r--rw-rwx 467
chmod 651 xxfile
chmod -R 777 xxfile #-R 递归修改所有子文件
chmod -x xxfile #删除可执行权限
chmod -x xxfile #添加可执行权限
chown(change owner)修改拥有者(所属者)
chgrp(change group)修改拥有组(所属组)
文件的所属者和所属组发生改变,用户对文件的权限也发生改变
chown newuser 文件/文件夹 #修改文件或者文件夹的拥有者
chgrp newgroupname 文件/文件夹 #修改文件或者文件夹的所属组
注意:一个文件(文件夹)改名、删除的权限是由它所在目录的权限控制的,而不是自身的权限控制。因为它自身的权限只控制它自身的内容(是否可读可写可执行)。
权限 | 文件 | 文件夹(目录) | |
---|---|---|---|
r | 读read | 查看文件内容 | 可以列出目录中的内容(仅限于名字) |
w | 写write | 修改文件内容 | 可以在目录中创建、删除文件(包括修改文件名字) |
x | 执行execute | 可以执行运行文件 | 可以进入目录(不能查看目录内容) |
文件软链接
ln 文件/文件夹 软链接
软连接:在当前目录下重命名该文件/文件夹
补充:
10分钟让你掌握Linux常用命令(+1.4万+++收藏)
linux常用命令