Linux命令行学习笔记

摘要

前段时间看了几章《Linux命令行与Shell脚本编程大全》一书,针对自己不太了解的地方记录笔记如下,方便以后自己查阅。

1、两个环境变量

  • PS1:控制默认命令行提示符格式
  • PS2:控制后续命令行提示符格式
  • 就是这个:PS

2、查看bash shell相关信息

  • 通过man bash命令可以查看

3、cp命令

  • -p 保留源文件的访问时间和修改时间
  • -R 递归复制

4、链接文件

  • 软连接
  • 硬连接

软链接可以通过cp -s来创建,也可以使用ln -s来创建;而硬连接就是创建一个独立的文件,通过cp -l或是默认的ln命令来创建。

5、stat,file命令

  • stat 查看文件的统计信息
  • file 查看文件的类型

6、tail,head命令

  • 两者均是无需加载全部文件,适合查看大文件的首尾部分
  • tail -f 保持活动状态查看,通常应用于查看log信息

7、PS命令的三种风格

  1. Unix风格参数,常用:ps -ef
  2. BSD风格参数,常用:ps l
  3. GNU全字参数,最好用的功能是--forest(层级)

8、kill命令

  • kill PID,例如,kill 3940
  • killall http*,杀掉所有http进程

9、mount命令

  • mount -t type(类型) device(设备名) directory(目录)

例如:mount -t vfat /dev/sdb1 /media/a,其中vfat(windows的文件格式),也可以替换成ntfs(windows的文件格式)、iso9660(CD-ROM)

  • -o参数

ro:read-only
rw:read-write
user:允许普通用户挂载文件系统
cheak=name:挂载文件系统时不进行完整性检验
loop:挂载一个文件

例如:mount -t iso9660 -o loop KDE4-LIVE-DVD_32.iso mnt,把文件挂载到mnt目录下。

10、du 命令

  • -c:显示所有已列出的文件总大小
  • -h:按人类可读格式
  • -s:显示每个输出参数的总计

11、sort排序命令

  • -n:将数字识别成数字而不是字符
  • -M:按月排序
  • -k:排序从pos1位置开始,如果指定了pos2的话,到pos2位置结束。(–key=pos1[,pos2])
  • -t:指定一个用来区分键位置的字符

eg1. 对/etc/passwd文件根据用户ID进行数值排序
sort -t ':' -k 3 -n /etc/passwd
eg2.查看目录下哪些文件占用空间最多
du -sh * | sort -nr

12、bzip2工具

  • bzip2:用来压缩文件
  • bzcat:用来显示压缩的文本文件内容
  • bunzip2:用来解压
  • bzip2recover:用来尝试恢复损毁文件

13、tar命令

列举几个例子:

  1. 创建一个归档文件
    tar -cvf test.tar test1/ test2/
  2. 列出归档文件中的内容
    tar -tf test.tar
  3. 解开归档文件
    tar -xvf test.tar
  4. 解压gz文件(非常常用)
    tar -zxvf test.tar.gz

14、printenv命令

查看全局变量,系统环境变量一律使用大写字母。

15、bash命令

  • 启动一个新的shell。

16、set命令

  • set 显示某个特定进程设置的所有环境变量
  • printenv 显示的环境变量均包含在了set显示中

17、创建全局变量方法

  1. 首先创建一个局部环境变量
  2. 用export命令申明变量

18、删除环境变量

  • 删除局部环境变量 unset
  • 删除全局环境变量
    • 如果在子进程中删除了一个全局环境变量,只对子进程有效。

19、启动bash shell有3种方式

  1. 登陆是当作默认的登陆shell
    • 依次会处理以下文件
      • /etc/profile
      • $HOME/.bash_profile
      • $HOME/.bash_login
      • $HOME/.profile
  • 作为非登录shell的交互式shell
    • 不是登陆时启动的,而是手动启动的shell称作交互式shell
  • 作为运行脚本的非交互shell

20、useradd命令

useradd命令用于添加新用户,当然不是讲这个功能。
useradd -D 查看你的Linux系统中系统默认值。

信息中有一项内容为:SKEL=/etc/skel
允许管理员创建一份默认的HOME目录配置,然后把它作为创建新用户HOME目录的模版。
默认情况下,useradd不会创建HOME目录,useradd -m创建HOME目录,并将/etc/skel复制过来。

21、userdel命令

  • userdel -r test 同时删除test用户的HOME目录

22、修改用户账户信息

  • passwd 修改密码
  • chpasswd 从文件中读取登陆名密码
  • chage 修改密码的过期日期
  • chfn 修改用户账户的备注信息
  • chsh 修改用户账户的默认登陆shell
  • usermod -l 用来修改用户账户的登陆名
  • usermod -L 锁定用户名
  • usermod -p 修改账户密码
  • usermod -U 解除锁定
  • “注意大小写哦”

23、umask命令

用于设置默认文件权限,设置用户创建文件和目录的默认权限。
umask 022表示从对象的全权限值中减去022权限,则表示新创建的文件的默认权限为666-022=644(-rw-r-r),新创建的目录权限为777-022=755(drwx-rx-rx)。

24、设置组ID

  • 设置组ID(SGID)实现文件共享,将共享目录设置SGID位,这样目录中的文件将均用目录的所属组。

25、减少grub默认的引导时间

  • sudo vim /etc/default/grub修改TIMEOUT值,然后sudo update-grub生效

26、加速应用程序加载时间

  • sudo apt-get install preload装完重启电脑,完成。

27、加速更新

#用官方apt-fast代替apt-get加速更新
sudo add-apt-repository ppa:apt-fast/stable
sudo apt-get update
sudo apt-get install apt-fast

28、网络相关

  • hostname
    • hostname -d显示所属域名;
    • hostname -f显示完整的主机名和域名;
    • hostname -i显示IP地址
  • ping命令不作介绍了
  • iwconfig 一般用于无线网卡
  • nslookup 在有IP地址时,可以用这个命令来显示主机名,可以找到给定域内所有的IP地址。
  • traceroute 查看数据包在提交到远程系统或是网站的时候所经过的路由器IP地址、跳数和响应时间。
  • finger 查看用户信息
  • telnet 连接目标主机
  • ethtool 显示网卡信息
    • ethtool -i 显示一个特定网卡的驱动信息(在检查软件兼容性时尤其有用)
    • ethtool -p 启动一个适配器指定行为
    • ethtool -s 显示网络统计信息
  • netstat 发现主机连接
    • netstat -g 查询该主机订阅的所有多播组(网络)
    • netstat -nap | grep port 显示使用该端口的应用程序id
    • netstat -tcp 显示所有的TCP连接
    • netstat -udp 显示所有的UDP连接
    • netstat -a 显示所有的连接