linux备忘录-基本命令 基本命令 知识点 其他 参考

将命令分类为获取信息类,文件管理类,目录管理类,文本处理类,系统类,工具类。

获取信息类

  1. uname
# 输出所有信息
# 一行输出,空格分割
uname -a

# 输出内核名称
uname -s  # Linux

# 输出网络节点主机名 nodename
uname -n  # small-pc

# 输出内核发行版本号
uname -r  # 4.10.0-28-generic

# 输出 发行版本信息
uname -v  # .... Ubuntu ....

# 输出硬件平台
uname -i  # x86_64

# 输出系统名称
uname -o  # GNU/Linux

  1. printenv
  2. ls (列出文件和目录信息)

ls- l 显示 权限 - 硬链接数 - 属主 - 属组 - 档案大小 - 档案最后被修改的时间 - 档案名

目录的硬链接数 = 2 + 目录中的其他目录数 (2是指目录自己的引用即 . 及其上一层目录的引用)

  1. date (显示日期时间信息)

格式化输出 date '+%Y-%m-%d %H:%M:%S'
date +"%s" 获得1970年1月1号到今天的秒数
date --date=20001225 +"%s" 对日期20001225进行操作,或得1970-01-01到2000-12-25的秒数

  1. cal (显示日历)
  2. man (获取命令的帮助)

man -f man 查询与man有关的命令
man -k man 根据man关键字查找

  1. whatis (man -f的简略写法)
  2. apropos (man -k的简略写法)
  3. who (查看在线用户)
  4. lsb_release (查看发布版本信息)
  5. which (查看执行程序的完整路径名)

which -a 列出所有路径,不仅列出第一个

  1. whereis (搜寻文件路径)
  2. locate (寻找相关档案,通过/var/lib/mlocate/mlocate.db搜寻)

系统类

  1. fsck (file system check)

fsck /dev/sda7 如果硬盘/dev/sda7出现文件系统错误,可以通过fsck修复

  1. printenv (打印所有或部分环境变量)

  2. startx (启动X window,tty7必须没有其他窗口运行)

  3. exit (注销)

  4. shutdown (关机)

shutdown -h now

  1. reboot (重启)
  2. sync (同步内存和硬盘数据)
  3. init (切换执行等级 run level)

init 0 也可以关机

  1. passwd (修改密码)
  2. chgrp (修改组)

chgrp groupName fileName

  1. chown (修改拥有者)

chown ownerName fileName
chown ownerName:groupName fileName

  1. chmod (修改权限)

chmod 777 ~/bash.rc
chmod u+x ~/bash.rc
chmod 4755 同时修改SUID、SGID、SBIT

  1. umask (查看默认过滤属性,档案默认为666,目录默认为777)

umask -S 以符号形式查看
umask 002 修改umask为002

  1. chattr (修改隐藏属性,只在extx文件系统有效)

chattr [+-=][ASacdistu] fileName or dirName
A 存取时,atime不修改
S 同步写入磁盘
a 只能增加数据,对log有用
c 自动压缩
d 不被dump备份
i 不能被删除、改名、设定链接、也不能写入和新增资料
s 删除时完全移出硬盘
u 删除时仍留在磁盘

  1. lsattr (查看隐藏属性,只在extx文件系统有效)
  2. su (改变用户)

su - username 以登录方式改变用户

  1. updatedb (更新数据库,根据/etc/updatedb.conf配置文件更新/var/lib/mlocate/mlocate.db数据库)
  2. find (通过硬盘搜寻文件)

find / -mtime -n 搜寻n天之内更改过的档案
find / -mtime +n 搜寻n天之前更改过的档案
find / -mtime n 搜村n天之前的那一个修改过的档案
find / -newer file 列出比file还要新的档案
find / -user username 搜寻指定user的档案
find / -nouser 搜寻user不存在/etc/passwd的档案
find / -nogroup 搜寻档案group不存在/etc/group的档案
find / -name filename 根据档案名搜寻,可使用通配符
find / -type s 根据档案类型搜寻
find /bin /sbin -perm +6000 搜寻/bin和/sbin下具有SUID和SGID的档案
find / -perm +7000 - exec ls -l {} ; 找到具有所有特殊权限的档案,并执行ls -l,{}为find找到的内容,; -exec的结束,因为;在bash具有特殊含义,所有利用****转义

文件类

  1. touch (新建文件,修改档案时间)

touch -a 修改atime
touch -c 修改ctime
touch -m 修改mtime

  1. cp (复制、建立软链接、硬链接)

cp -a 一模一样地复制
cp -u 新的才会被复制

  1. rm (删除)
  2. mv (移动或重命名)
  3. basename (取得文件名)
  4. dirname (得去目录名)
  5. file (查看文件类型)

目录类

  1. mkdir (新建目录)

mkdir -m 755 newdir 指定权限
mkdir -p test1/test2/newdir 递归建立目录

  1. cd (切换目录)

. 当前目录
.. 上一层目录
- 前一个工作目录
~ 家目录
~account account的家目录

  1. pwd (打印当前目录)

pwd -P 打印软链接指向的真实位置

  1. rmdir (删除目录)

rmdir -p 连同空目录一起删除

  1. file (查看目录类型)

工具类

  1. bc (计算器)

scale=3 设置小数点位数为3
quit 离开

  1. lp (打印指令)
  2. nano (简单的文本编辑器)
  3. cat (查看所有文本内容,不可翻页)
  4. tac (从最后一行开始显示文本内容,不可翻页)
  5. nl (cat同时显示行号,不可翻页)
  6. more (查看文本,可翻页)
  7. less (与more类似,能往前翻页)
  8. head (读取文本前面部分)

head -n 100 指定行数

  1. tail (读取文本后面部分)
  2. od (二进制形式读取文本)

od -t c fileName 使用ascii字符输出

知识点

常用热键

  1. tab

一下tab能进行命令补全和档案补全
两下tab能列表可能的待选项

  1. [Ctrl] + c (中断目前程序)
  2. [Ctrl] + d (代表输入结束,类似于exit)

硬件对应文件名

  1. /dev/hd[a-d] IDE接口硬盘
  2. /dev/sd[a-p] SCSI/SATA/USB对应硬盘.u盘
  3. /dev/fd[0-1] 软盘
  4. /dev/lp[0-2] 25针打印机
  5. /dev/usb/lp[0-15] usb打印机
  6. /dev/usb/mouse[0-15] usb鼠标
  7. /dev/cdrom 当前CDROM/DVDROM
  8. /dev/mouse 当前鼠标
  9. /dev/eth[0-n] 网络卡

第一个扇区(sector)的512bytes分成446bytes的MBR开机管理程序和64bytes的分区表。

主要分割(primary partition)和延伸分割(extended partition)最多有4个。延伸分割(extended partition)最多有一个,这是操作系统限制的。延伸分割不能进行格式化。

开机管理程序可以安装在MBR或Boot Sector。通过spfdisk处理MBR,或通过linux救援模式处理MBR。使用spfdisk时,要把grub安装在boot sector。

光驱可以挂载到 /media/cdrom点 或 /mnt点

NAT是私有IP转公有IP。DHCP自动获取IP。

启动流程 BIOS -> MBR -> boot loader -> 操作系统

grub是一种开机管理程序(boot loader),安装在MBR或boot sector。

RAIDLVM 是硬盘特殊的应用。

grub 安装在hda 即为安装在MBR上

笔记本安装有问题时可以在安装开始时提供核心参数 boot: linux nofb apm=off acpi=false pci=noacpi

linux核心档案 /vmlinuz-2.6.18-128.el5

SELinux工具 是linux的系统访问控制设定,用于权限控制

kdump 将内存错误写入档案

启动时进入 grub 输入single进入单人模式,输入passwd修改root密码

文件可以分为 纯文本二进制数据格式文件

分号 ; 连续指令下达

环境变量

  1. LANG (系统语系,英文为en_US.UTF-8,繁体中文为zh_TW.UTF-8)
  2. PATH (命令搜寻路径)

PATH = "$PATH":/root 将:/root添加值PATH

man中数字含义

通过 man 7 man 可以查看相关说明

1 -> shell指定或可执行文件
2 -> 系统呼叫或工具
3 -> 函数和函数库,大部分为c函数
4 -> 硬件档案,/dev下的档案
5 -> 配置文件
6 -> 游戏
7 -> 协议
8 -> 管理指令
9 -> 内核文件

文件系统

  1. ext2/ext3 ext3比ext2多了日志系统
  2. LVM
  3. software RAID 利用软件仿真出磁盘阵列
  4. swap 内存置换空间
  5. vfat 同时被linux和windows支持的文件系统

目录文件

/root
    /root/install.log   //安装过程的完整记录
    /root/anaconda-ks.cfg   //安装过程选择的安装选项
/etc
    /etc/inittab    //设置开机参数,如默认的run level
    /etc/issue  //命令提示符的前两项提示,用户账号和主机名,欢迎页面信息
    /etc/man.config //man的配置,如man搜寻路径
    /etc/passwd //记录用户信息
    /etc/shadow //记录用户密码
    /etc/group  //记录组名
    /etc/sysconfig
    /etc/bashrc //bash启动预设值,如umask
    /etc/profile    //开机启动预设环境变量
        /etc/sysconfig/i18n //可修改系统默认语系和字体
    /etc/init.d //所有服务的预设启动脚本
    /etc/xinetd.d   //守护进程配置目录
/usr    //与软件执行有关,unix software resource
    /usr/share
        /usr/share/man  //存放man文档
        /usr/share/doc  //存放说明文档
    /usr/bin    //用户指令
    /usr/include    //c和c++的一些头文件
    /usr/include    //c和c++的一些库文件
    /usr/src    //软件的源代码
/home
    ~/.bashrc   //用户个人的bash启动预设值
/var    //系统默认的数据暂存和缓存的地方,与系统运作有关
/bin    //可执行程序,单人模式下也能操作
/boot   //开机使用的档案,linux kernel常用档名为vmlinuz
/dev    //硬件设备
/lib    //系统的函数库
/media  //媒体硬件
/mnt    //用于暂时挂载额外设备
/opt    //第三方软件
/root   //root用户的家
/sbin   //管理员程序
/tmp    //临时文件
/proc   //虚拟文件系统,在内存当中
/sys    //虚拟文件系统,在内存当中

/etc/bin/dev/lib/sbin 不能和根目录放在不同的分割槽中。

网络相关

192.168.1.100 一般是本地局域网中路由器自己的IP地址。

系统相关

  1. run level (共有7个run level 可以通过/etc/inittab更改)

run level 0 -> 关机状态
run level 3 -> 只有tty1-tty6,即只有命令窗口
run level 5 -> 具有tty1-tty7,既有命令窗口又有图形窗口。一般initdefault为5

文件相关

文件有三种时间:

  1. mtime 文件内容被修改的时间。
  2. ctime 文件元数据被修改的时间。
  3. atime 文件访问时间。

SUID、SGID、SBIT

  1. s出现在拥有者的x权限上,称为Set UID。
    1.1 仅对二进制文件有效,执行者需要x可执行权限,只在执行程序过程中有效,执行过程中将具有owner权限。
    1.2 例如passwd程序对于/etc/passwd文件,执行passwd时就set uid
  2. s出现在群组的x权限上时,称为 Set GID。
    2.1 对于档案来说,对二进制文件有效,执行者需要x可执行权限,执行者在执行程序时将具有group的权限。
    2.2 对于目录来说,执行者具有r和x权限时,可以进入该目录,在该目录下时将具有group的权限,若执行者具有w权限,创建新档案时的群组与该群组相同
    2.3 在该目录新建档案,档案的群组为目录的群组,(共同开发时具有较大用处)
  3. SBIT Sticky Bit
    3.1 t出现在其他者的x权限上时,称为SBIT Sticky bit
    3.2 仅对目录有效,当执行者具有w和x权限时,可以进入此目录,在该目录下新建的档案,只有执行者和root可以删除。

其他

linux备忘录-文件系统管理
linux备忘录-档案与文件系统的压缩与打包
linux备忘录-vi和vim
linux备忘录-bash
linux备忘录-正则表达式与文件格式化处理
linux备忘录-shell脚本
linux备忘录-账号管理与ACL权限设定
liniux备忘录-磁盘配额与进阶文件系统管理
linux备忘录-例行性工作排程 (crontab)
linux备忘录-程序管理与SELinux
linux备忘录-系统服务daemon
linux备忘录-日志档案

参考

鸟哥的linux私房菜 第三版