首页 > 代码库 > linux基础(1-10)

linux基础(1-10)

1.帮助命令

man 命令
/【要搜索的内容】

man的级别

1 查看命令的帮助
2 查看可被内核调用的函数的帮助
3 查看函数和函数库的帮助
4 查看特殊文件的帮助(主要是/dev目录下的文件)
5 查看配置文件的帮助
6 查看游戏的帮助
7 查看其他杂项的帮助
8 查看系统管理员可用命令的帮助
9 查看和内核相关文件的帮助

查看命令拥有哪个级别的帮助

man -f 命令等同于whatis 命令
比如man -f passwd会看到passwd命令有个配置文件,所以用man 5 passwd可以看到这个配置文件的帮助,用whereis passwd可以看到文件所在位置

查看所有包含关键字的命令

man -k 关键字等同于apropos 关键字,如apropos passwd

2.别名与快捷键

查看与设定别名

alias 查看系统中所有的命令别名
alias 别名=‘原命令‘ 设定命令的别名
alias rm=‘rm -i‘或者alias ll=‘ls -l‘
相当于设置快捷命令,只不过是临时生效的

别名永久生效与删除别名

vi ~/.bashrc 写入环境变量配置文件
unalias 临时删除别名

常用快捷键

快捷键含义
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 光标所在位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索

3.常用目录作用

/根目录
/bin命令保存目录(普通用户就可以读取命令)
/sbin
/usr系统软件资源目录
/boot启动目录,启动相关文件
/dev设备文件保存目录
/etc配置文件保存目录
/lib系统函数库保存目录
/mnt系统挂载目录
/media挂载目录
/sys /proc保存内存挂载点,不能直接操作
/tmp临时目录,存放临时数据
/var保存系统可变文档目录

/usr下也有/bin/sbin目录,同/下的两个目录一起保存系统命令,/sbin下的命令只有超级用户才能执行
可以在家目录‘/home‘或根目录/,以及/tmp目录下随便放内容,其他都别动,但也不推荐在根目录下操作,只放必要数据

4.挂载命令

相当于win中的分配盘符,只不过linux中叫挂载

查询与自动挂载

mount 查询系统中已经挂载的设备

  • 显示的都是~ on ~ type ~这样的结构
  • /dev/sda5 on / type ext4 (rw)
    其中sda5代表第一块SATA硬盘的第五个分区,/代表这是根分区,ext4代表文件系统是ext4,权限是读写;
  • 类似的,/dev/sda1 on /boot type ext4 (rw)代表第一块SATA硬盘的第一个分区是boot分区,文件系统是ext4,权限是读写

mount -a 依据配置文件/etc/fstab的内容,把这个文件里写的所有设备都挂载一遍,像/,/boot,/home,swap这些分区都在文件里,所以系统才会在每次开机时自动挂载这些分区

挂载命令格式

mount【-t文件系统】【-o特殊选项】设备文件名 挂载点
-t 文件系统 加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统
-o 特殊选项 可以指定挂载的额外选项,有各种参数,可多个一起,用逗号隔开
特别看下这个exec/noexec,代表执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec文件
比如mount -o remount,noexec /home/表示重新挂载/home分区,并且不允许执行可执行文件,此时如果再去./hello.sh会显示权限不够

5.关机和重启命令

关机命令

shutdown 【选项】时间
-c 取消前一个关机命令
-h 关机
-r 重启

  • 使用date命令看系统日期
  • shutdown -r 05:30表示在凌晨5点30分重启,此时进入倒计时状态,无法再操作,通过ctrl+c取消。
  • 在最后加上&,使命令在后台执行,不占用操作界面,两次回车后继续自己的操作。此时如果不想在后台执行这条命令,可以用shutdown -c来取消。
  • shutdown -r now表示现在就重启。
  • 在远程登录服务器时要避免使用这个命令!

其他关机命令

halt
poweroff
init 0
但这三者都不太安全

其他重启命令

reboot 比较安全
init 6 不安全

这里的0和6是什么意思?

代表系统运行的七个级别
0 关机
1 单用户,可以看做win中的安全模式,用来做系统修复
2 不完全多用户,不含NFS服务(文件共享服务)
3 完全多用户,就是黑底白字的字符界面
4 未分配
5 图形界面
6 重启
init表示调用某个级别
使用runlevel来看系统到底运行在哪个级别,Mac OS不支持
通过cat /etc/inittab找到文件中的id:3:initdefault字段,修改数字,改变系统开机默认级别。但绝对不能设为0和6。

退出登录命令

logout

6.管道符

多命令顺序执行

多命令执行符格式作用
; 命令1 ; 命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1 && 命令2 逻辑与,命令1正确执行才会执行命令2,命令1不正确执行,则命令2不会执行
shift+\shift+\ 命令1 shift+\shift+\ 命令2 逻辑或,当命令1执行不正确,则命令2才会执行,当命令1正确执行,则命令2不会执行

*其中,shift+\意味着|
例如:date ; tar -zcvf etc.tar.gz /etc ; date可以计算中间打包压缩命令执行的耗时
再如,ls && echo yes || echo no,第一个命令正确执行,输出yes,错误执行,输出no

管道符

命令格式:命令1 | 命令2,有一定的编程思想在里面 命令1的正确输出作为命令2的操作对象,和逻辑与不一样
例子:

  • ls -l /etc | more代表将ls -l /etc的输出分屏显示
  • netstat -an | grep ESTABLISHED代表搜索netstat -an输出中带有ESTABLISHED的行
    如果再变成netstat -an | grep ESTABLISHED | wc -l,此为多管道符命令,代表到最后统计带有ESTABLISHED的行的数目,即可看出服务器上连接了多少人
  • 如果原本使用cat输出的内容中有很多重复,可在后面加上|uniq去重

7.脚本的执行方法

echo输出命令

echo【选项】【输出内容】
echo "cangls he bols ni xi huan na yi ge?"只要输出的内容里有空格就需要加双引号
选项-e ,表示支持反义字符

echo所能支持的反义字符(也可以用在Python里)

反义字符作用
\a 输出警告音
\b 退格键,也就是向左删除键
\n 换行符
\r 回车键
\t 制表符,也就是Tab键
\v 垂直制表符
\0nnn 按照八进制ASCⅡ码表输出字符。其中0为数字零,nnn是三位八进制数
\xhh 按照十六进制ASCⅡ码表输出字符。其中hh是两位十六进制数

举个例子:echo -e "\x68\x65\x6c\x6c\x6f",手动输入字符的十六进制ASCⅡ码值,输出就是hello
Linux本机的纯字符界面是不支持中文的!
另外,在XShell这样的远程工具界面上是可以支持颜色显示的,如echo -e "\e[1;31m 嫁人就要嫁凤姐 \e[0m",其中的\e[1;31m是开启颜色,\e[0m是关闭颜色,31m表示红色,可以支持的颜色从30到37

第一个脚本

vim hello.sh
#!/bin/bash
#注释
echo -e "\e[1;34m 天上掉下个林妹妹 \e[0m"

脚本执行

  • 赋予执行权限,调用脚本
    chmod 755 hello.sh
    ./hello/sh #相对路径
  • 通过Bash直接执行脚本
    bash hello.sh

8.历史命令

历史命令

history 【选项】【历史命令保存文件】
选项:
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件~/.bash_history
历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改HISTSIZE=1000

历史命令的调用

  • 使用上下箭头调用以前的历史命令
  • 使用!n重复执行第n条命令
  • 使用!!重复执行上一条命令
  • 使用!字串重复执行最后一条以该字串开头的命令

命令与文件补全

在Bash中,命令与文件补全是非常方便与常用的功能我们只要在输入命令或文件时,按Tab键就会自动进行补全

9.链接命令

链接命令

ln -s 【原文件】【目标目录】
功能是生成链接文件
-s 创建软链接

硬链接的特征

  1. 硬链接拥有相同的i节点和存储block块,可看做是同一个文件
  2. 可通过i节点识别
  3. 不能跨分区
  4. 不能针对目录使用
ln desktop/Learning_Python/hello_world.py documents/hello_world.hard

ls -l desktop/Learning_Python/hello_world.py
-rw-r--r--  2 Jeff  staff  3379  3 14 10:30 desktop/Learning_Python/hello_world.py

ls -l documents/hello_world.hard
-rw-r--r--  2 Jeff  staff  3379  3 14 10:30 documents/hello_world.hard

ls -i desktop/Learning_Python/hello_world.py documents/hello_world.hard
2231081 desktop/Learning_Python/hello_world.py
2231081 documents/hello_world.hard

软链接的特征

  1. 类似于win下的快捷方式
  2. 软链接拥有自己的i节点和block块,但数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
  3. Irwxrwxrwx I软链接 软链接文件的权限都是rwxrwxrwx
  4. 修改任意文件,另一个都改变
  5. 删除原文件,软链接不能使用

10.命令格式

[root@localhost ~]#

root段代表当前用户,localhost是主机名
如果是超级用户,当前目录为/root根目录,如果是普通用户user1,则为/home/user1
#表示当前用户位超级用户,$则为普通用户

格式:命令 【选项】【参数】

查询目录内容命令

ls 【选项】【目录/文件】

ls -l ~/desktop
drwxr-xr-x@  3 Jeff  staff    102  3  8 11:08 $RECYCLE.BIN
drwxr-xr-x   6 Jeff  staff    204  4  9 16:13 A*算法
drwxr-xr-x  10 Jeff  staff    340  4  9 16:14 Learning_Python
-rw-r--r--   1 Jeff  staff   1441  3 30 11:43 SSH设置
-rw-r--r--@  1 Jeff  staff  48640  3  8 11:08 Thumbs.db
drwxr-xr-x  10 Jeff  staff    340  4  9 18:07 myBooks
drwxr-xr-x  10 Jeff  staff    340  4 10 11:02 毕业规范
-rw-r--r--@  1 Jeff  staff   6313  4  8 21:36 实习小结.md

-l 显示详细信息
权限10位 -rw-r—r—
第1位代表文件类型: -文件 d目录 l软链接文件
rw- u所有者 班级
r-- g所属组 美眉
r-- o其他人 大老爷们傻和尚
rwx执行
3,6,10这些数字代表引用计数
102,204,340这些数字代表字节大小,改用ls -lh就变成kB,易于阅读

ls -a ~/desktop
$RECYCLE.BIN	.DS_Store	Learning_Python	myBooks
.		.localized	SSH设置		毕业规范
..		A*算法		Thumbs.db	实习小结.md

-a 显示所有文件,包括隐藏文件
-la 详细显示所有文件

ls -ld ~/desktop
drwx------+ 12 Jeff  staff  408  4 10 17:07 /Users/Jeff/desktop

-d 显示目录属性
-ld 详细显示目录属性

对目录如果没有w权限,即使里面的文件有写权限,也不能对文件进行移动,重命名操作,此时,需要给目录加上w权限:chmod +w(注意此时cwd是此目录)

linux基础(1-10)