Linux常用shell命令(三)
五、查找及检索相关命令
(1)find查找
① 按名称查找
-name 选项,比如查找所有C文件,可以用 * 适配名称。
② 按类型查找
-type 选项,这里的类型是指 f 普通文件 d 目录 ,可通过man查看。比如查找所有目录文件:
③ 按大小查找
-size 选项,比如查找大于0M,小于3M的文件
④ 指定最深路径
-maxdepth
(2)-exec、-ok选项和xargs
① -exec 选项
exec函数族会在Linux进程编程讲解,这里使用exec是把前面的执行结果传给后面的指令去执行,比如我们执行这样一条命令:
find -maxdepth 1 -size -1M -exec ls -l {} \;
这个命令的意思是,递归一层子目录查找小于1M的文件并显示详细信息 ,exec的作用是把 find -maxdepth 1 -size -1M 指令的结果传递给后面的指令 ls -l 去执行。
② -ok 选项
find -maxdepth 1 -size -1M -ok ls -l {} \;
-ok和 -exec 的作用一样,都是把前面指令的结果传递给后面的指令去执行,只不过 -ok 是一种安全模式,每一条都会询问。这个选项在删除时应优先使用,可以防止误删重要文件。
find -maxdepth 1 -size -1M -ok rm -r {} \;
③ 使用管道 |
管道配合xargs实现查找并显示详细信息
find -maxdepth 1 -size -1M | xargs ls -l
这里注意,exec是把前面的结果一下子全部传给后面去执行,如果前面的结果太多,可能会造成后面指令溢出,使用xargs会把前面的结果分成很多部分,按块传给后面的指令。
(3)grep筛选
① 筛选信息
比如在aa目录及所有子目录中筛选"main",并显示"main"所在的行号
② cat 3.c | grep main 查看3.c文件并筛选出main
② cat 3.c | grep -v main 查看3.c文件并排除出main
可以看到,在查看3.c文件的同时把 int main() 这句话排除掉了。
③ 搭配find使用
比如查找普通文件并且筛选出txt类型的文件
六、压缩文件管理相关命令
(1)zip压缩与unzip解压
zip和unzip命令对应的是 .zip 类型的压缩包。
zip -r 压缩并递归压缩子目录,比如
zip -r 1.zip aa 1111.txt
会把aa以及aa的所有子目录和1111.txt一块压缩为1.zip。
压缩后得到一个 .zip 压缩文件
解压命令
unzip 1.zip
(2)gzip压缩和gunzip解压
gzip和gunzip命令对应的是 .gz 类型的压缩包,它的特点是只能压缩文件,不能压缩目录。
(3)tar命令
这是最常用的压缩解压缩命令,推荐优先使用。
① 首先介绍选项参数:
-c 压缩文件
-x 解压文件
-f 指定压缩文件名
-v 显示信息
-z 压缩为 .gz 格式,默认压缩为 .tar 格式
② 压缩一个文件
③ 压缩为gz格式并解压
因为 -v 的存在,在压缩时会显示压缩信息。
解压gz文件
④ -j 压缩为bzip2 格式
(4)rar压缩包
a 压缩
x 解压缩
rar a -r 1111 1111.txt
把1111.txt压缩为1111并自动添加后缀名。
rar x 1111
解压压缩包。
七、软件安装与卸载命令
(1)apt-get命令
需要连网并直到软件名,用于Ubuntu等
#安装tree软件
apt-get install tree
#卸载tree软件
apt-get remove tree
#更新源,即更新/etc/apt下的sources.list文件
sudo apt-get update
#清理包
sudo apt-get clean
(2)yum命令
如果是CentOS操作系统,要用 yum 命令安装软件,同样需要连网,直接通过软件名下载安装。
如果遇到这个错误,可以通过命令行输入下面的命令解决
sed -i.old -e 's/^mirrorlist/#mirrorlist/g' -e 's/^#baseurl=http:\/\/mirror.centos.org\/centos\/$releasever\//baseurl=http:\/\/vault.centos.org\/centos\/6\//g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
具体请见第二章,(1)tree命令安装及使用,有详细说明。
#安装软件
yum install tree
#卸载软件
yum remove tree
(3)dbkg根据安装包安装
dbkg 命令不需要连网,只要有 deb 安装包即可
#根据安装包安装软件
sudo dbkg -i tree.deb
#移除软件包
sudo dbkg -r tree.deb
(4)源码安装
一般步骤如下:
① 解压源码包;
② cd dir 进入目录;
③ ./configure 执行配置文件,检测文件是否缺少,创建Makefile,检测编译环境;
④ make 编译源码,生成可执行文件和库;
⑤ sudo make install 执行安装;
⑥ sudo make distclean 删除与卸载软件;
八、进程管理与网络命令
1. 进程管理命令
更多进程的信息将会在进程编程篇讲解。
(1)who查看登陆设备
查看登陆设备
(2)ps查看进程信息
ps aux 和 ps ajx
(3)kill杀死进程
#pid表示进程号
kill -9 pid
(4)env环境变量
(5)top查看系统信息
按 q 键退出
2. 网络命令
(1)ifconfig
ifconfig是我们最常用的网络命令之一,可以查看IP等信息,其中 eth0 表示本地第一块网卡。
图中标出的就是本机的IP,如果需要远程登陆本机或者与本机通信就用这个IP。
(2)ping
这也是一个常用的网络命令,可以测试网络是否连通,可以直接加域名测试网络是否连通
下面一直在发东西,说明网络连通了,但是他会一直发,除非手动 ctrl+c 终止,或者通过 -c 选项限制次数,比如只ping4次,4次后他就会自动停止
也可以ping一个IP,来测试两台主机是否连通
ping 192.168.80.0
(3)nslookup
通过域名得到IP
(4)netstat
查看网络连接状态
九、用户管理命令
1、用户管理
这里的命令都要加 sudo 管理员权限
(1)useradd增加用户
选项:
-g :指定组
-d :指定用户家目录
-m :家目录不存在时自动创建
我们现在增加一个用户Q
(2)groupadd增加组
增加一个Q用户组
sudo groupadd Q
(3)passwd设置密码
passwd修改密码
(4)su切换用户
将root用户切换为新建的Q用户,并使用 whoami 查看当前用户,可以看到 @ 前面的root也变成了Q,说明现在是Q用户。
切换到用户Q并带有环境变量
sudo - Q
切换到root用户
sudo su
如果在做这些操作的时候不是在root用户下,那么就要输入密码进行操作。
(5)userdel删除用户
#删除用户Q
sudo userdel Q
#删除用户Q以及它的家目录
sudo userdel -r
2、关机命令
关机开机挺麻烦的,这里的命令就不演示了,直接摆上命令。
(1)shutdown关机
立即关机
shutdown -h now
(2)poweroff关机
poweroff
(3)init 0关机
init 0
(4)reboot重启
reboot
总结
Linux基础命令篇结束,Linux命令要多用多查,学习Linux命令最好的资料就是man,学会如何有效利用man会大大提高Linux的水平,能够快速查找到最权威的一手资料。
- 点赞
- 收藏
- 关注作者
评论(0)