linux学习笔记(一)

linux中一切皆文件

最近开始学习linux,虽然以前也有用过,但是并不能在linux下只靠键盘存活。该填的坑还是要填的。

我学习的视频链接:这个链接是慕课网上一位培训老师的课程链接,都是免费的,讲得通俗易懂,比较幽默风趣。

一、分区

  • 分区:把大硬盘分为小的逻辑分区

  • 格式化的目的是为了写入文件系统
    而不是清空数据
    但是为了写入文件系统需要重新分块(block)
    因此需要清空数据

  • linux分区需要起名

  • "/"表示根目录
    /dev表示设备
    每个设备都有设备文件名

  • 必须有的分区
    /(根分区)
    swap分区(交换分区,虚拟内存,4g以内内存2倍, 8g以上和内存一样)

  • 推荐分区
    /boot 启动分区 启动分区在最前面

  • 分区在硬件上有独立存储空间,但在文件系统上看都在根目录之下

  • 挂载:给每个分区分配挂载点

  • 目录:挂载点

  • ~home目录
    [用户名@主机名:当前目录]提示符
    # 超级用户
    $ 普通用户

二、常用命令

1、查询目录中内容

ls [选项][文件或目录]
- 选项:
  	-a	显示所有文件,包括隐藏文件(以.开头 系统文件)
  	-l	显示详细信息  别名:ll
  	-d	查看目录属性
  	-h	人性化显示文件大小
  	-i	显示inode  文件id号
arururururu@ubuntu:~$ ls -l
total 71584
drwxr-xr-x 7 arururururu arururururu     4096 Sep  9 18:33 Desktop

0、total的意思为 所列出内容的磁盘占用空间总和值 单位为kbytes

1、权限 默认十位 -rw-r–r--

  • r读4 w写2 x执行1

  • 第一位表示文件类型 -文件(l软链接 d目录等 共7种)

  • 后面每三位为一组 所有者 所属组 其他人

2、引用计数

3、所有者 4、所属组 表示

5、文件大小(字节) 目录的文件大小只是目录本身的大小

  • -h 就使用M、K等表示,所有统计大小的都支持-h选项
arururururu@ubuntu:~$ ls -lh
total 70M
drwxr-xr-x 7 arururururu arururururu 4.0K Sep  9 18:33 Desktop

6、最后一次修改时间

7、文件名/目录名

2、创建目录

mkdir [待创建目录]

 	-p	递归创建  没有的父目录都会被创建

3、切换目录

cd [目录]
	cd .  切换到当前目录
	cd .. 上一级目录
 	cd    根目录
 	cd -(减号)  上一次目录

4、打印当前工作目录

pwd(print working directory)

5、删除空目录

rmdir(remove empty directory)

6、删除文件

rm  [目录][选项]

	 -r 删除目录
	 -f force 强制
	 rm -rf /tmp/*  *表示删除目录下的内容 没有*表示删除这个目录

7、复制命令

cp [选项][原文件或目录][目标目录]
	 -r 复制目录
	 -p 连带文件属性复制
	 -d 若原文件是链接文件,则复制链接属性
	 -a 相当于-pdr 所有属性都会一样(包括时间)

8、剪切或改名

mv [原文件或目录][目标目录]
	- mv文件和目录都 **不需要**加-r
	- 若原文件和目标文件在同一目录下则为改名
	- 若不在同一目录下则为剪切

9、常用目录的作用
/ 根目录

  • 根目录下的 bin sbin,
    和/usr目录下的 bin sbin都是用来保存系统命令的
    sbin目录下的命令只有超级用户才能执行

/boot 启动目录
/etc 配置目录
/lib linux下保存函数库的目录
/mnt 系统挂载目录
/usr 系统软件资源目录
/tmp 存放临时文件

可以在 根目录(必要文件)、home目录和/tmp目录下随便放内容

10、链接

ln -s [原文件][目标文件]
	
	-s  创建软链接
  • 硬链接特征

    • 拥有相同的i节点和存储block块,可以看做是同一个文件
    • 可通过i节点识别
    • 不能跨分区
    • 不能针对目录使用
    • 修改哪个文件都会改变原文件和目标文件
    • 删除原文件 目标文件也不会被删除 只是引用计数-1
  • 软链接

    • 类似windows快捷方式
    • 拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,
      并没有实际的文件数据
    • 软链接文件权限都为lrwxrwxrwx 但是实际权限要看原文件的权限
    • 存储的是它链接的原文件的目录
    • 修改哪个文件都会改变原文件和目标文件
    • 删除原文件 软链接不能使用
    • 软链接原文件一定要写绝对路径 否则如果不在同一目录下可能找不到原文件

11、文件搜索命令

locate [文件名]
  • 在后台数据库中按文件名搜索,搜索速度更快
    /var/lib/mlocate
  • locate命令所搜索的后台数据库 一天更新一次
    需要用 updatedb更新数据库
  • 只能按文件名搜索
  • 搜索配置在 /etc/updatedb.conf内配置
    • PRUNE_BIND_MOUNTS = “yes” yes表示下面的配置都生效
      #开启搜索限制
    • PRUNEFS =
      #搜索时,不搜索的文件系统
    • PRUNENAMES =
      #搜索时,不搜索的文件类型
    • PRUNEPATHS =
      #搜索时,不搜索的路径

12、命令搜索命令

whereis  [命令名]
搜索系统命令所在路径及帮助文档所在位置
	-b 只查找可执行文件(二进制文件)
	-m 只查找帮助文件(manual路径下的说明文件)
	-s 只查找原文件

例:

arururururu@ubuntu:~/Desktop/笔试题$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

其他类似命令

whoami
当前用户

whatis [命令名]
命令的作用

which [命令名]
搜索命令所在路径及别名

【注:】cd命令是shell自带的命令,无法找到可执行文件路径

13、环境变量
PATH:系统搜索命令的路径,以冒号:隔开,执行命令时会在这些目录下搜索命令所在路径

arururururu@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

14、文件搜索命令

find [搜索范围][搜索条件]
find是在系统当中搜索符合条件的文件名
- -name 按名字搜索
- -iname 不区分大小写
- -user 按照所有者搜索
- -nouser 查找没有所有者的文件(垃圾文件,除内核产生的和外来文件,比如/sys和/proc以及U盘等)
- -atime 文件访问时间(access)
- -ctime 修改文件属性时间(change)
- -mtime 修改文件内容时间(modify)
- -size 根据文件大小搜索(k小写  M大写 不写单位默认为扇区数据块512kB)
- -inum 根据i节点查找文件
- -a and 逻辑与,两个条件都满足
- -o or  逻辑或,两个条件满足一个即可
  • 如果需要匹配,使用通配符匹配,通配符是完全匹配
    * 匹配任意内容
    ? 匹配任意一个字符
    [] 匹配任意一个中括号内的字符
  • 避免大范围搜索,会非常耗费系统资源

例:

1、当前目录下文件名为abc的文件
arururururu@ubuntu:~/Desktop/linuxCommand/testFind$ find . -name abc
./abc
2、当前目录下文件名以ab开头,以c或d结尾的文件
arururururu@ubuntu:~/Desktop/linuxCommand/testFind$ find . -name "ab[cd]"
./abd
./abc
3、当前目录下以c或d结尾的文件
arururururu@ubuntu:~/Desktop/linuxCommand/testFind$ find . -name "*[cd]"
./abcd
./abd
./abc
4、当前目录下所有文件
arururururu@ubuntu:~/Desktop/linuxCommand/testFind$ find . -name "*"
.
./abcd
./abd
./abc
./efg
5、当前目录下以e开头,g结尾的三个字符构成的文件名
arururururu@ubuntu:~/Desktop/linuxCommand/testFind$ find . -name "e?g"
./efg


arururururu@ubuntu:~/Desktop/linuxCommand/testFind/testLink$ ls -l
total 12
-rw-rw-r-- 2 arururururu arururururu 25 Mar  9 00:06 test1
-rw-rw-r-- 1 arururururu arururururu 17 Mar  4 11:42 test1~
lrwxrwxrwx 1 arururururu arururururu  5 Mar  4 11:41 test1-so -> test1
-rw-rw-r-- 2 arururururu arururururu 25 Mar  9 00:06 test-hard
-rw-rw-r-- 1 arururururu arururururu  0 Mar 12 21:00 today

1、3天内修改的文件
arururururu@ubuntu:~/Desktop/linuxCommand/testFind/testLink$ find . -mtime -3
.
./today
2、前3天当天修改的文件
arururururu@ubuntu:~/Desktop/linuxCommand/testFind/testLink$ find . -mtime 3
./test-hard
./test1
3、3天前修改的文件
arururururu@ubuntu:~/Desktop/linuxCommand/testFind/testLink$ find . -mtime +3
./test1-so
./test1~

1、文件大小小于25kB的文件
find . -size -25k
2、文件大小等于25kB的文件
find . -size 25k
3、文件大小大于25kB的文件
find . -size +25k

1、查找inum为223344的文件
find . -inum 223344

1、查找当前目录下,大于20kB且小于50kB的文件
find . -size +20k -a -size -50k
2、查找当前目录下,大于20kB或3天内修改的文件
find . -size +20k -o -mtime -3

【另】对执行结果再执行第二条命令
-exec [命令][选项] {} \

1、查找当前目录下,大于20kB或3天内修改的文件,并显示这些文件的详细信息
find . -size +20k -o -mtime -3 -exec ls -l {} \;
2、查找当前目录下,没有所有者的文件,并删除这些文件
find . -nouser -exec rm -rf {} \;

15、字符串搜索命令

grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串,包含匹配(即不需要完全匹配),使用正则表达式进行匹配
-i	忽略大小写
-v	排除指定字符串

例:

arururururu@ubuntu:~/Desktop/linuxCommand$ cat test1
aaa
bbb
ccc
ddd
eee
abc
de
fgh

1、查找test1文件中包含“a”的行
arururururu@ubuntu:~/Desktop/linuxCommand$ grep "a" test1
aaa
abc
2、查找test1文件中不包含“a”的行
arururururu@ubuntu:~/Desktop/linuxCommand$ grep -v "a" test1
bbb
ccc
ddd
eee
de
fgh
3、查找test1文件中包含“A”的行,不区分大小写
arururururu@ubuntu:~/Desktop/linuxCommand$ grep -i "A" test1
aaa
abc

find与grep区别:
1、find在系统当中搜索符合条件的文件名,grep在文件当中搜索符合条件的字符串
2、find使用通配符匹配,是完全匹配;而grep使用正则表达式进行匹配,是包含匹配

【后面更新的命令请移步linux学习笔记(二)吧~】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值