linux初学笔记

部分文件夹作用

/   #根目录
/home #普通用户的家目录
/root #超级用户的家目录
/etc #存放各种配置文件的目录
/opt #一般安装第三方软件
/var/log   #存放系统弄人的各种自知,记录软件运行的各种日志
/usr/local #一般自己编译安装程序就可以放这里
/mnt #此目录作为挂载点使用
/usr/bin #自己安装的一些软件的运行脚本,主要放置一些应用软体工具的必备执行档

/etc/sysconfig/network-scripts
#网络配置

/etc/resolv.conf
#DNS客户机配置文件

/etc/hostname
#存放主机名

/etc/hosts
#存放域名与IP对应关系

 

ls

  • 查看当前目录下有哪些文件夹/文件

-ld -- 仅显示当前所在文件夹本身的信息
[root@zhizhi dev]# ls -ld
drwxr-xr-x. 20 root root 3240 Mar 13 16:16 .

-l -- 查看该目录下所有文件夹/文件的详细信息
[root@zhizhi dev]# ls -l
total 0
crw-rw----. 1 root video   10, 175 Mar 13 16:16 agpgart
crw-------. 1 root root     10, 235 Mar 13 16:16 autofs

-lh -- 在显示详细信息的前提下显示文件的容量单位(kb/mb/gb)

-a -- 显示该目录下包括隐藏文件在内的所有文件夹/文件

 

stat

  • 查看文件详细信息

[root@zhiwei ~]# stat /歌星/内地歌手/男歌手/许巍/蓝莲花.mp4 
  File: ‘/歌星/内地歌手/男歌手/许巍/蓝莲花.mp4’
  Size: 25         Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d Inode: 16807672    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2022-03-05 14:33:12.265373126 +0800
Modify: 2022-03-05 14:32:58.396372193 +0800
Change: 2022-03-05 14:32:58.396372193 +0800
 Birth: -
[root@zhiwei ~]#

 

cat

  • 查看文件内容

-n -- 显示行数,支持一次性查看多个文件
cat -n 文件1 文件2 文件3
-b -- 只会显示有内用的行
-E -- 显示每一行结尾的$

cat结合重定向符
>   重定向覆盖输出符  ,数据从左边,覆盖写入到右边 
<   重定向覆盖输入符,数据从右边,覆盖写入到左边
>>  重定向追加输出符, ,数据从左边,追加写入到右边 
<<  重定向覆盖输入符,数据从右边,追加写入到左边

cat >> 文件名 <<EOF
数据1
数据2
...
EOF
*(EOF -- end of file)

 

more

  • more同cat一样,会一次性读取所有内容,占内存资源,但是不会一次性显示完,可以翻页查看 -- 空格翻页 回车下一行

less

  • less命令,如果文本内容超过终端显示界面的话,不会一读取完,显示界面有多大就先显示多少 -- 空格翻页 回车下一行

head

  • 默认查看文件前十行

head -5 文件名 -- 显示前五行

tail

  • 默认显示文件后十行

tail -5 文件名 -- 显示文件后五行
  • tail 实时刷新功能 -- 重点

-f -- 更重文件内容变化,但是需要文件正常退出后可见,最常见的也就是小写的f检查程序的日志变化(程序代码,追加新内容到文本中)

-F -- 能够对文件进行刷新读取,即使监测文件不存在也是可以的

 

wc

  • 统计文件的行

-l -- 统计一共有多少行
-w -- 统计文件内的单词数
-c -- 字节数
-m -- 统计字符数

 

du

  • 查看文件或目录(递归显示子目录)占用磁盘空间大小

-s -- summaries  只显示汇总大小,统计文件夹大小,默认以kb形式显示
-h -- 表示高可读性的形式进行显示

linux文件系统,对文件最小管理单位是4kb

 

which

  • 去PATH路径中,找到命令的绝对命令,且输出

[root@zhizhi ~]# which pwd
/bin/pwd
[root@zhizhi ~]# which ls
alias ls='ls --color=auto'
 /bin/ls

 

cd

  • 切换至制定文件夹

pwd

  • 查看当前所在目录绝对路径

man

  • linux系统内置命令帮助手册

clear

  • 清空当前终端界面

logout

  • 退回登录状态

exit

  • 退出当前用户

history

  • 显示历史命令,默认最近的1000条

mkdir

  • 创建文件夹

全称 -- make directories-制作目录
mkdir 文件夹名 -- 创建单个文件夹(当前目录不能出现同名,否则报错,无法创建)

同一目录下课一次性创建多个文件夹
mkdir aaa bbb ccc ddd
mkdir /aaa /bbb /ccc /ddd

-p -- 递归创建文件夹
mkdir -p /aaa/bbb/ccc/ddd
自行判断,一层一层创建,假如在根目录下存在文件夹aaa,则会继续接着 往下创建

 

touch

  • 创建文件

当前目录创建文件 -- touch 文件名
指定路径创建文件 -- touch /aaa/bbb/ccc/xxx.txt
  • 修改时间戳

    再次去进行同上命令的话就不再创建文件,而是改变查看xxx.txt的时间戳

 

echo

  • 输出一段字符串

[root@zhizhi ~]# echo "好好学习,天天向上"
好好学习,天天向上
[root@zhizhi ~]#
  • 使用单引号''将特殊符号括起来,系统不在对其进行解析,当普通字符串解析

[root@zhizhi ~]# echo '/*-+?<>'
/*-+?<>
  • 双引号下也表示定义字符串,但是能识别其中的特殊符号

[root@zhizhi ~]# echo "阿西吧?/>+-!"
bash: !": event not found
[root@zhizhi ~]#
  • echo ${PATH}

[root@zhizhi ~]# echo ${PATH}
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

 

uname

  • 查看系统

[root@zhizhi opt]# uname
Linux
  • -a -- 查看系统内核

[root@zhizhi opt]# uname
Linux

 

hostname

  • 查看主机名

[root@zhizhi ~]# hostname
zhizhi

 

hostnamectl

  • 查看主机信息

[root@zhizhi ~]# hostnamectl
  Static hostname: zhizhi
        Icon name: computer-vm
          Chassis: vm
      Machine ID: 999100cf896d491ba69d686ecb484dcc
          Boot ID: ff27ed8ca7854866ada0b2b0ad724335
  Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
      CPE OS Name: cpe:/o:centos:centos:7
          Kernel: Linux 3.10.0-862.el7.x86_64
    Architecture: x86-64
  • 修改主机名

hostnamectl set-hostname 主机名
永久修改主机名,是修改了系统内部文件,所以系统每次开机读取文件的时候都会读取到修改过后的主机名
  • 补充 -- 主机名存放地址--cat /etc/hostname

su

  • 切换用户

su - 用户名
切换用户,并加载该用户的所有个人配置
  • 注:普通用户切换至root或其他用户都需重新填写密码,root用户切换至普通用户则不需要密码,同useradd案例

id

  • 查看当前用户信息

[root@zhizhi ~]# id
uid=0(root) gid=0(root) groups=0(root)
  • id 用户名 -- 验证用户是否存在

[root@zhizhi ~]# id zhihui01
uid=1001(zhihui01) gid=1002(zhihui01) groups=1002(zhihui01)
[root@zhizhi ~]# id dingding
id: dingding: no such user

 

bash

  • 再一次加载用户环境变量,更新用户机器信息(刷新功能)

tree

vim

  • 命令模式

移动
gg -- 回到文档开头
G -- 到文档最后一行
0 -- 移动到光标所在行开头
$ -- 移动到光标所在行尾
行号+G -- 移动到指定行

复制粘贴~`
yy -- 复制单行
n+yy -- 复制包括光标所在行向下的三行
p -- 小写 在光标下一行粘贴
P -- 大写 在光标上一行粘贴
n+p/n+P -- 粘贴指定次数

dd -- 删除光标所在行
数字+dd -- 删除光标所在行在内向下的n行内容

 

  • 底线命令模式

:set nu -- 行号显示命令
:set nonu -- 取消行号显示
:行数 -- 移动到指定行
vim另存文件 -- :w 另存文件路径(注:必须是文件)
搜索功能 -- 输入 /关键字
取消搜索高亮 -- :noh
vim颜色高亮开关 -- :syntax no/off
单行替换 -- 单行首个 -- :/原内容/替换内容(确保为光标所在行)
单行所有 -- :/原内容/替换内容/g
多行替换 -- 全文每行首个 -- :%/原内容/替换内容
全文每行所有 -- :%/原内容/替换内容/g

输入:set paste 进入粘贴模式 -- 常用于粘贴代码

 

rm

  • 删除

-r -- 递归删除,主要用于删除目录,可删除制定,Ulike以及包含的所有内容,包括所有子目录和文件,一个一个提示
-f -- 强势删除,不提示任何信息*小心使用*
-i -- 删除前需要提示

-rf -- 递归,强制删除,无提示

rm -- 不加参数只能在当前目录下之后一个文件的时候可以使用,只能删除一个文件

 

cp

  • 全称 -- copy

用法 -- cp  源文件路径  目标路径
-r -- 递归拷贝
cp 源文件路径 目标路径
[root@zhizhi ~]# mkdir /Eason_songs
[root@zhizhi ~]# cp -r /网易云音乐/华语/男歌手/陈奕迅/* /Eason_songs
[root@zhizhi ~]# ls /Eason_songs/
不要说话.mp4  十年.mp4  孤勇者.mp4  浮夸.mp4
[root@zhizhi ~]#

 

mv

  • 全称 -- move

  • 剪切/重命名

用法 -- mv  剪切对象  目的地路径/如需重命名在路径后写上新名

1.将单个文件从A目录移动到B目录
[root@zhizhi /]# mv wula.mp4 /music
[root@zhizhi /]# ls /music
wula.mp4
[root@zhizhi /]#

2.将单个文件从A目录移动到B目录,且重命名
[root@zhizhi /]# mv /music/wula.mp4 /wulala.mp4
[root@zhizhi /]# ls
all_test000  etc    music  srv       var           wulala.mp4
[root@zhizhi /]#

 

tar

  • 打包,压缩,解压缩都使用tar命令

用法
tar 参数 打包之后的文件名 要打包文件或目录1 目录2 目录3

参数:
-c -- 创建的意思 -- 打包
-v -- 显示打包过程
-f -- 指定打包的文件名,次参数必须加,且必须在最后一位*(重点)
-z -- 压缩操作
-x -- 解压

-t -- 查看打包的文件内容(只看)
-u -- 更新原打包文件中的文件

打包 -- tar -cvf 打包后目录名 打包对象
压缩 -- tar   -czvf 打包压缩后目录名 打包压缩对象
解压缩 -- tar   -xvf   解压缩对象 -C 指定解压缩路径

 

|

  • 管道符 -- 前一个命令输出作为下一个命令的输入

  • 检查进程

1.检查系统进程信息的命令
ps -ef # -e -- 显示所有的进程信息 -f -- 格式化显示出进程的id等信息
结合 | 使用语法
ps -ef | grep '要搜索的进程关键字'
  • 检查端口

命令 -- netstat -tunlp
1.类似ps -rf 查看系统的某资源信息
netstat -tunlp -- 查看系统上所有端口信息
2.netstat -tunlp | group 'nginx'
 过滤出关于nginx的端口信息

ssh远程连接端口信息 -- sshd 或者端口号是22
  • 统计文件数量

统计系统中/var/log目录下有多少个log文件
1.首先找出/var/log下的所有log文件 -- find可以递归查询
find /var/log -name '*.log' | wc -l
  • 统计用户数量

cat /etc/passwd | wc -l
用户已名都被存储在 /etc/passwd中

 

find

  • 递归查询 常与管道符一起使用

用法 -- find 范围 -type f -name '关键字'

-type f -- 只查找文件
-type d -- 只查找文件夹

find / -type y -name '*.txt' -o -name '*.log' -size +1M / -- 路径
-type y/d -- 文件/文件夹
-name '关键字' -- 要查询的内容
-o -- 或者的意思,用于一次性搜索多个关键字
-size +1M -- 大于1M的文件

find结合管道符使用方法

  • 例 -- 找出系统中的所有txt文件,然后再找出含有apple信息的txt文件

    find / -name '*.txt' | grep 'apple'

  • 例 -- 找出/var/log目录下,哪些文件中有passwd这样的字符信息

    find /var/log -name '*' | xargs -i grep 'passwd' {}

     

grep

  • 全称 -- global search regular expression and print out the line

    全局搜索正则表达式并打印出行

  • 作用 -- 输入关键字,对数据进行过滤查找

-n -- 显示存在该关键字的行号
grep -n 'root' /etc/passwd

-i -- 忽略大小写进行查找
grep -i 'root' /etc/passwd

-in -- 忽略大小写搜索且显示行号

-e -- 一次性搜索多个内容
grep -e '关键字' -e '关键字' -e '关键字' 路径

 

xargs 结合管道符

  • 作用 -- 将其他命令执行后获取的结果-数据,作为参数传递给后边的命令

    要知道任何命令执行后我们所看到的其实就相当于文本

  • xargs批量备份

find 路径 -name '关键字' | xargs -i cp {} 路径
find /tmp -name '*.log' | xargs -i cp {} {}
find /var/log -name '*.log' | xargs -i cp {} /var/log/bak_log/
  • 全系统中搜索,包含某数据的文件名

find /etc/passwd -name '*' | xargs -i grep '/bin/bash' {}

 

rename

  • 批量修改名称

rename   .txt    .log    *.txt
rename 原有名   要改成的   原文件

 

 

usearadd

  • 创建新用户

  • 参数
    -D 改变新建用户的预设值
    -c 添加备注文字
    -d 新用户每次登陆时所使用的家目录
    -e 用户终止日期,日期的格式为YYYY-MM-DD
    -f 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
    -g 指定用户对应的用户组
    -G 定义此用户为多个不同组的成员
    -m 用户目录不存在时则自动创建
    -M 不建立用户家目录,优先于/etc/login.defs文件设定
    -n 取消建立以用户名称为名的群组
    -r 建立系统帐号
    -u 指定用户id

     

useradd  参数 选项值  用户名
useradd -G 附属组 -u 用户ID -s 解释器 -c "注释" 用户名

 

usearmod

  • 修改用户

  • 参数
    -c<备注> 修改用户账号的备注文字
    -d<登入目录> 修改用户登入时的目录
    -e<有效期限> 修改账号的有效期限
    -f<缓冲天数> 修改在密码过期后多少天即关闭该账号
    -g<群组> 修改用户所属的群组
    -G<群组> 修改用户所属的附加群组
    -l<账号名称> 修改用户账号名称
    -L 锁定用户密码,使密码无效
    -s<shell> 修改用户登入后所使用的shell
    -u<uid> 修改用户ID
    -U 解除密码锁定

     

usermod  参数 选项值  用户名
参数同useradd相同

 

useardel

  • 删除用户

  • 参数
    -f 强制删除用户账号
    -r 删除用户主目录及其中的任何文件
    -h 显示命令的帮助信息

     

userdel 用户名  --  删除用户
userdel -r 用户名 -- 删除用户以及该用户的家目录

 

 

groupadd

  • 添加新组

  • 参数
    -g 指定新建工作组的id
    -r 创建系统工作组,系统工作组的组ID小于500
    -K 覆盖配置文件“/ect/login.defs”
    -o 允许添加组ID号不唯一的工作组

     

groupadd    组名  (参数 组号)
-g 设施组id号,默认从1000开始,1~999为系统预留的组

 

 

tiger  :  x  :  6666   :  zhizhi01 ; dingding01
组名 组密码   组ID     附属用户1   附属用户2  

 

groupmod

  • 修改组信息

  • 参数
    -g 设置欲使用的群组识别码
    -o 重复使用群组识别码
    -n 设置欲使用的群组名称
  •  

groupmod  参数  组名
-g (gid) -- 设置组ID
-n (name) -- 设置组名

 

groupdel

  • 删除组

groupdel  组名

 

 

posted @ 2022-03-14 21:33  爱看风景的瞎子  阅读(176)  评论(0)    收藏  举报