这里汇总了下Linux环境下常用的Linux命令,多数命令几乎每天都会用到, 本文汇总的所有命令是基于 Ubuntu
发行版, 但是多数命令在大多数Linux上皆可使用, 包括Unix, 甚至Mac OSX.
目录浏览
命令 | 描述 |
ls | 查看当前目录下的所有文件和目录 |
ls -al | 类似 ls , 以列表形式显示当前目录下的所有文件和目录, 包括隐藏文件 |
ls -al & grep string | 查询匹配string的文件和目录 |
cd directory_path | 切换到 directory_path |
cd | 切换到用户根目录 $HOME |
cd .. | 切换到上级目录 |
pwd | 查看当前所在目录路径 |
上述命令多数都支持根上目录路径或者文件路径, 比如 ls /usr/local/bin
, 其他更多命令参数,参看下 man page
, 比如 man ls
.
文件和目录操作
命令 | 描述 |
touch filename | 创建新的filename文件,或者如果文件存在更新filename的时间戳 |
rm filename | 删除一个文件 |
rm -r dirname | 递归的删除目录及目录下的内容 |
cp filename new_filename | 拷贝一个文件 |
cp -r dirname new_name | 拷贝一个目录 |
mkdir new_dir_name | 创建一个目录 |
rmdir dirname | 删除一个目录, 目录下内容必须为空 |
mv filename new_name | 重命名一个文件 或者 移动文件到一个新的路径 |
du -sh dirname | 查看目录空间大小 |
查看文件内容
命令 | 描述 |
cat filename | 查看文件内容 |
cat filename & more | 分页显示文件内容, Ctrl + d 下一页, Ctrl + b 上一页 |
vi filename | 查看文件内容, Ctrl + d 下一页, Ctrl + b 上一页 |
head filename | 查看文件头几行, 默认是开始10行 |
tail filename | 查看文件最后几行, 默认是最后10行 |
tail -f filename | 查看文件最后几行, 默认是最后10行, 区别是对于实时变动的文件,实时更新最新内容 |
file filename | 查看文件类型 |
查找命令
命令 | 描述 |
type cmd | 显示命令是内置程序/独立程序还是命令别名,比如 type kill , 显示kill命令是shell内置命令 |
which cmd | 显示命令的完整路径, |
man cmd | 查看命令帮助文档 |
apropos string | 搜索帮助文档 |
locate filename | 根据文件名定位文件, 该命令类似 find dir_path --name "*filename*" , 但locate更快 |
updatedb | 更新locate使用的索引数据库 |
shell通过搜索 $PATH
变量来查找可执行文件, 执行 echo $PATH
可以看到当前的搜索的所有路径,搜索顺序也是按照 $PATH
变量中的路径顺序.当然要作为可执行程序搜索, 对应的目标文件必须要有可执行权限 x
, ls -l /usr/bin
可以看到对应常规命令的权限信息.
安装新的软件程序和包管理
下述命令是基于Ubuntu整理, 其他发行版都有独立的包管理工具,比如 CentOS
的 yum, Gentoo
的 merge
, FreeBSD
的 port.
命令 | 描述 |
apt-cache search name | 按名称搜索软件包 |
apt-cache show name | 查看软件包的详细信息 |
apt-get install name | 安装软件包 |
apt-get remove name | 删除/卸载软件包 |
apt-get purge name | 删除/卸载软件包,保罗其配置文件 |
dpkg -l | 查看所有已经安装的软件包 |
apt-get update | 从镜像源同步软件包的索引信息 |
apt-get upgrade | 更新所有以安装的软件包到最新版本 |
apt-get dist-upgrade | 更新整个发行版, Ubuntu的跨版本升级 |
上述命令是操作的预编译的软件包, 某些软件包是以源码形式发布,需要手动编译安装, 常规步骤如下:
gzip -d filename.tar.gz
tar xvf filename.tar
cd dirname
./configure
make
sudo make install
存档和压缩(tar/gzip)
命令 | 描述 |
tar cvf new_filename.tar dirpath | 归档一个目录 |
tar xvf filename.tar | 将tar文件展开到当前目录 |
zip -r new_filename.zip dirname | 归档并压缩目录到一个文件 |
unzip filename | 解压并扩展到当前目录 |
进程管理
命令 | 描述 |
ps -ef | 查看运行中的进程 |
ps -ef & grep name | 根据关键字搜索进程 |
kill pid | 发送给进程一个退出信号,以便进程退出 |
kill -s 9 pid | 强制关闭进程 |
top | 实时查看进程监控信息, 按q退出 |
pstree | 展示主子进程关系 |
系统管理员常用命令
命令 | 描述 |
sudo command_string | 以系统管理员(root)身份执行 command_string 命令 |
su | 切换到系统管理员(root) |
sudo su root | 切换到系统管理员(root) |
su
和 sudo su root
区别是 su
需要知道root用户密码, 而 sudo su root
仅需要当前用户密码, 当前用户有 sudo
权限即可.
命令 | 描述 |
chmod 664 filename | 改变文件权限, 644 = rw-rw-r-- , 一般文件权限即为644 |
chown user_name filename | 切换文件的拥有者 |
chgrp group_name filename | 改变文件所属用户组信息 |
ln -s new_path existing_path | 构建一个软件链接 |
ln new_path existing_path | 构建一个硬链接,硬链接使2两个文件同时指向文件系统的相同索引 |
shutdown -r 0 or shutdown -P 0 | 重启系统 或者 关闭系统 |
用户和用户组:
命令 | 描述 |
useradd user_name | 创建一个新用户 |
passwd user_name | 更新用户密码 |
id user_name | 查看用户 ID, 以及该用户从属的所有用户组 |
cat /ect/passwd | 查看所有用户 |
getent group | 查看所有用户组 |
命令 | 描述 |
date | 查看系统日期和时间 |
date --rfc-3339=seconds | 以yyyy-mm-dd hh:mm:ss-07:00 格式查看UTC时间 |
w | 查看所有已登录的用户 |
who -a | 查看最近登录的用户 |
uptime | 查看系统运行时长 |
wc | 查看字符/单词/行数统计信息, 一般配合 cat grep 使用 |
命令 | 描述 |
source fname | 执行 fname , 等价于 . fname |
bash | 开启一个新的bash进程, Ctrl + d 退出该bash |
echo $PATH | 查看 $PATH 环境变量 |
env | 查看所有环境变量 |
alias str="cmd"; | 给命令添加一个别名, 例如 `alias l="ls -la --color" |