Linux命令行学习笔记
摘要
前段时间看了几章《Linux命令行与Shell脚本编程大全》一书,针对自己不太了解的地方记录笔记如下,方便以后自己查阅。
1、两个环境变量
- PS1:控制默认命令行提示符格式
- PS2:控制后续命令行提示符格式
- 就是这个:
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命令的三种风格
- Unix风格参数,常用:
ps -ef
- BSD风格参数,常用:
ps l
- 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命令
列举几个例子:
- 创建一个归档文件
tar -cvf test.tar test1/ test2/
- 列出归档文件中的内容
tar -tf test.tar
- 解开归档文件
tar -xvf test.tar
- 解压gz文件(非常常用)
tar -zxvf test.tar.gz
14、printenv命令
查看全局变量,系统环境变量一律使用大写字母。
15、bash命令
- 启动一个新的shell。
16、set命令
- set 显示某个特定进程设置的所有环境变量
- printenv 显示的环境变量均包含在了set显示中
17、创建全局变量方法
- 首先创建一个局部环境变量
- 用export命令申明变量
18、删除环境变量
- 删除局部环境变量
unset
- 删除全局环境变量
- 如果在子进程中删除了一个全局环境变量,只对子进程有效。
19、启动bash shell有3种方式
- 登陆是当作默认的登陆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
显示使用该端口的应用程序idnetstat -tcp
显示所有的TCP连接netstat -udp
显示所有的UDP连接netstat -a
显示所有的连接