Linux基础操作

创建目录或文件(mkdir touch)

cd /opt/ #切换到opt目录下
mkdir 123 #在opt下新建一个123的文件夹
touch 1.txt #新建一个1.txt文本

删除目录或文件(rm -rf)

cd /opt/ #切换到opt目录下

rm -rf 123 #删除123目录

移动复制目录或文件(mv cp)

cd /opt/ #切换到opt目录下
    
mkdir 666  #新建一个666文件夹
    
touch 1.txt #新建1文件
    
mkdir 123 #新建123文件夹


mv  1.txt /opt/123 #把1.txt 移动到opt下的123文件夹里面


cp 1.txt /opt/123 #复制1.txt 到opt下的123文件夹里面
    

cp -p 1.txt /opt/123 #复制并替换文件

查看目录或文件(ls cat)

ls #查看所有目录或文件
   
ls -l  #列表显示所有目录或文件

ls -a #查看隐藏文件
    

touch /opt/123.txt #在opt目录下新建一个123.txt

cat /opt/123.txt #查看123.txt里面的内容
    
more /opt/123.txt #翻页查看123.txt里面的内容

查找命令(which find)

#查找固定的文件 比如cd ls pwd
which cd 
which pwd 
which ls
    
    
#find 路径 -name "查找的名字"
find /opt/ -name "test"
    
#匹配任何已test开头的内容
find /opt/ -name "test*"
    
#匹配任何已test结尾的内容
find /opt/ -name "*test"
    
#表示匹配任何包含test的内容
find /opt/ -name "*test*"
    
#按文件大小查找文件
find 起始路径 -size +| -n[kmg]
    
#查找小于10kb的文件
find /opt -size -10k
    
#查找大于100m的文件
find /opt -size +100m
    
#查找大于1g的文件
find /opt/ -size +1G

过滤和统计 (grep wc date)

touch /opt/1.txt
    
Hello world 
Hello Java
Hello Linux
Hello Python
Hello PHP
Hello Lua
Hello iapp
Hello Tomcat
Hello Jsp
Hello Andlua
Hello Android
    
#在文件中过滤Hello
grep "Hello" 1.txt
    
#在文件中过滤Hello并显示行号
grep -n "Hello" 1.txt
    
#过滤 /etc/passwd/下的root 将有root的行重定向到 /opt/1.txt中
grep root /etc/passwd > /opt/1.txt 
cat /opt/1.txt 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
    

#数量统计
-c 统计字节
-m 统计字符数量
-l 统计行数
-w 统计单词数量
ls -l 可查看字节
    
wc -c /opt/1.txt 
    
#查看时间
date
#修改时间
date -s '2010-1-1 10:10:10'

管道和重定向(| >)

touch /opt/Hello.txt
#将Hello覆盖写入Hello.txt文件中
echo "Hello" > /opt/Hello.txt
    
#将123追加到Hello.txt文件中
echo 123 >> /opt/Hello.txt
    
#在echo中用``会作为命令去执行
echo `pwd`  
    
#任何输出性质的信息都可以用管道连接起来
ls -l /opt/ | wc -c Hello.txt 
    
#tail 查看文件尾部信息 例如:查看Hello.txt的倒数第一行
tail -1 Hello.txt 

编辑器(vim)

命令模式说明
dd删除光标所在行的内容
nddn是数字,3dd 表示删除光标下3行内容
yy复制当前行
nyyn是数字,3yy 复制当前行和下面的3行
p粘贴复制的内容
u撤销修改
ctrl + r反向撤销修改
gg跳到首行
G跳到行尾
dG从当前行开始 向下全部删除
dgg从当前行开始 向上全部删除
d$从当前光标开始 删除到本行的末尾
d0从当前光标开始 删除到本行的开头
底线命令模式说明
:wq保存并退出
:q仅退出
:q!强制退出
:w仅保存
:set nu显示行号
:set paste设置粘贴模式

打包和解压(tar unzip)

#解压//在opt下新建一个test文件夹
mkdir /opt/test

touch /opt/test/1
touch /opt/test/2
touch /opt/test/3


#使用tar打包 把test文件下的所有打包为tar
tar -cf test.tar /test/


#解包
rm -rf test
tar -xf test.tar
#将test.tar 解压到指定目录里面去
tat -xvf test.tar -C /var/

#打包gz
tar -zcf tar.test.gz test

#解包gz
tar -zxf tar.test.gz
#解压到指定目录
tar -zxf demo.tar.gz -C /opt/123
    
    
#zip [选项] 压缩包名 源文件或源目录列表
cd /opt/
    
#将opt下的所有都压缩到123.zip里面
zip -r 123.zip /opt/

#解压    
unzip -d /opt/ 123.zip

RPM包管理

#查看zip包是否已安装
rpm - q zip
zip-3.0-11.el7.x86_64

rpm -q sdad
未安装软件包 sdad

#a:列出已安装所有软件包
#-i:查看指定软件的详细信息
#-l:查看指定软件的文件安装清单

[root@localhost ~]rpm -q firefox    #查询当前系统是否安装软件 

[root@localhost ~]rpm -q zip 

[root@localhost ~]rpm -qi firefox  #查询指定软件包的详细信息 

[root@localhost ~]rpm -ql firefox  #查看指定软件的文件安装清单 

[root@localhost ~]rpm -qa    #列出已安装所有软件包 

[root@localhost ~]rpm -qa | wc -l  #统计当前安装了多少RPM包 

[root@localhost ~]rpm -qa | grep vim  #查看安装的与VIM相关的包 

RPM包的安装和卸载

#安装
rpm  -i  rpm包文件

#v:显示安装细节
#-h:以#号显示安装进度 
[root@localhost ~]# rpm -q vsftpd   #查看,未安装vsftpd 
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm  

#安装vsftpd软件包,会有警告,忽略即可 
[root@localhost ~]# rpm -q vsftpd   #再次查看已经安装 
[root@localhost ~]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7   #导入签名信息 
#卸载vsftpd软件包
[root@localhost ~]# rpm -e vsftpd       

[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm        

用户和组

命令说明
useradd -g -dg组d、home路径(创建一个用户为他指定组和home目录 不指定默认存在home下)
userdel -r删除用户名和home下的目录 不用-r直接删除用户名 目录存在
id 用户名查看用户名的详细信息
usermod -aG 组名 用户名将指定的用户添加到某一个组织当中
groupadd添加组
groupdel删除组
getent passwd查看全部用户信息
getent group查看全部组信息
#创建一个开发组
groupadd kaifa
#创建一个用户张三并让让他加入开发组 指定home路径
useradd zhangsan -g kaifa -d /home/zhangsan

#删除用户顺便把家干掉
userdel -r zhangsan

#创建一个lisi用户 将lisi加入到开发组
[root@localhost home]# useradd lisi
[root@localhost home]# id lisi
uid=1001(lisi) gid=1005(lisi) 组=1005(lisi)
[root@localhost home]# groupadd kaifa
[root@localhost home]# usermod -aG kaifa lisi 
[root@localhost home]# id lisi
uid=1001(lisi) gid=1005(lisi) 组=1005(lisi),1006(kaifa)

#查看系统中有哪些用户
getent passwd

权限控制

cd /opt | touch 1.txt

#给1增加可读可写可执行权限
chmod -R 777 1.txt

#将1.txt的所属用户修改为root
chown root 1.txt

#将1的组修改为root
chown :root 1.txt

#将1的组修改为kaifa 用户修改为root
chown root :kaifa 1.txt

#将test目录的所有修改为root用户
chown -R root test

计划任务

说明
308***每天8.30
018**5每周五的18.00
018**1-5周一到周五的18.00
3019**1,2,3,4,5,6周一到周六的19.30
30*/2***每两个小时
3081*2每月1号和每周二的8.30执行
crontab [-u <用户名称>][配置文件] 或 crontab { -l | -r | -e }
-u   #<用户名称> 是指设定指定<用户名称>的定时任务,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的定时任务。
-l  #列出该用户的定时任务设置。
-r  #删除该用户的定时任务设置。
-e  #编辑该用户的定时任务设置


#创建计划任务
crontab -e #每分钟向time.txt 追加打印时间
* * * * *  date >> /opt/time.txt 

#查看计划任务
crontab - l
* * * * *  date >> /opt/time.txt 

程序与进程

1、查看进程树 pstree

[root@localhost ~]# pstree              #查看整个进程树信息 
[root@localhost ~]# pstree -u llikedx   #查看用户likedx的进程信息

2、查看进程快照 ps aux

[root@localhost opt]# ps aux            #查看当前所有进程
[root@localhost opt]# ps aux | head -2  #查看前两行详细信息
[root@localhost opt]# ps aux | wc -l    #显示总的进程数量
root@localhost opt]# ps aux |head -1    #查看头部信息
#用户         进程id cpu 内存     虚拟内存 固定内存 终端  状态 起始时间 cpu时间 程序指令
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

3、ps -elf 查看进程快照ps -elf

[root@localhost opt]# ps -elf | head -1
# ppid 父进程pid  PRI/NI 进程优先级 数字越小优先级越高
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD

4、进程动态排名top

[root@localhost ~]# top           #查看进程,默认每隔3秒刷新一次 
[root@localhost ~]# top -d 1      #每隔1秒刷新一次 

5、检索进程信息pgrep

[root@localhost ~]# pgrep -l a    #查看所有包含a的所有进程 用来模糊查询进程
[root@localhost ~]# kill -9 进程id #杀死进程 

6、进程的前后台调度

[root@localhost opt]# sleep 100 &                # 后台睡眠100秒
[1] 7934
[root@localhost opt]# sleep 1000 &               # 后台睡眠1000秒
[2] 7941

# 查看后台运行任务
[root@localhost opt]# jobs -l                    
[1]-  7934 运行中               sleep 100 &       
[2]+  7941 运行中               sleep 1000 &

 # 将编号1 也就是100秒的 放在前台运行 ctrl+z会停止运行
[root@localhost opt]# fg 1                      
sleep 100
^Z
[1]+  已停止               sleep 100

# 停止编号2
[root@localhost opt]# fg 2                       
sleep 1000
^Z
[2]+  已停止               sleep 1000

# 查看后台运行任务
[root@localhost opt]# jobs -l                    
[1]-  7934 停止                  sleep 100
[2]+  7941 停止                  sleep 1000

# 恢复编号1和编号2
[root@localhost opt]# bg 1                       
[1]- sleep 100 &
[root@localhost opt]# bg 2
[2]+ sleep 1000 &

#查看后台任务状态
[root@localhost opt]# jobs -l
[1]-  7934 运行中               sleep 100 &
[2]+  7941 运行中               sleep 1000 &
[root@localhost opt]# 

7、杀死进程

#kill -9 pid 干掉pid的进程
[root@localhost opt]# sleep 100 &
[1] 8304
[root@localhost opt]# sleep 200 &
[2] 8311
[root@localhost opt]# jobs -l
[1]-  8304 运行中               sleep 100 &
[2]+  8311 运行中               sleep 200 &
[root@localhost opt]# kill -9 8304
[1]-  已杀死               sleep 100
[root@localhost opt]# kill -9 8311
[2]+  已杀死               sleep 200

服务管理

#重启
systemctl restart 服务名

#启动
systemctl start 服务名

#关闭
systemctl stop 服务名 

#开机自启
systemctl enable 服务名 

#不开机自启
systemctl disable 服务名

#查看是否开机自启
systemctl is-enabled 服务名 
最后修改:2023 年 11 月 02 日
如果觉得我的文章对你有用,请随意赞赏