Linux 命令操作从观望到上手

图片来自网络

前言

写给所有的 Linux 小白和我。

tips: 如果哪个命令不会用,直接 command --help 召唤帮助列表就完事了。

文件

查看目录

ls        # 目录内容
ls path # 显示指定路径目录下的内容
ls -a # 显示目录全部内容,包括隐藏文件(a 即 all 的意思)
ls -al # 在显示全部的基础上,以列表的形式显示
ls -R # 递归显示目录内容

ls 命令演示

# ls -li 显示的信息解释

inode | 文件类型和权限 | 链接数 | 所属用户 | 所属用户组 | 文件大小 | 最后访问或修改时间 | 文件名
20039 drwxrwxr-x 2 hadoop hadoop 4096 11月 28 00:26 tmp
20040 -rw-rw-r-- 1 hadoop hadoop 144 11月 28 00:29 tmp.txt
属性 描述
inode 文件信息索引编号(目录是特殊的文件)
文件类型 -代表普通文件、d代表目录、l代表链接(例 java -> /jdk7/bin/java,访问 java 实际是访问链接的地址)即快捷方式
文件权限 rw-rw-r-- 依次代表 所属用户可读,可写,不可执行,所属用户组可读,可写,不可执行,其他用户可读,不可写,不可执行(x表示可执行)
链接数 数值为 1 代表自身(目前不懂还这个概念)
文件所属用户 文件归谁所有,例如上述的 tmp.txt 文件就是归于用户 hadoop(root 用户就会显示 root)
文件所属用户组 同样的道理,tmp.txt 文件归于用户组 hadoop
文件大小 tmp.txt 文件大小 144 byte。-h参数增强可读性 tmp 文件大小 4096 byte 会显示为 4.0k
访问或修改时间 指的是最后的一次访问或修改

打印路径

pwd    # 显示当前所在目录的绝对路径
pwd -P # 目录连接链接时,显示出实际路径,而非使用链接(link)路径

pwd 命令演示

创建目录

mkdir dir          # 在当前路径下创建一个目录
mkdir -p dir1/dir2 # 一次性创建多级目录

删除文件

rm file        # 删除文件
rm -r dir # 删除目录
rm -rf dir # 强制删除目录及目录下的所有内容且忽略提示
sudo rm -rf /* # 自杀式毁灭打击!

拷贝文件

cp file1 file2  # 复制文件1为文件2
cp -r dir1 dir2 # 复制目录1为目录2;如果目录2不存在,自动创建

cp 命令演示

重命名

# 重命名文件或目录
# 若 file2 是目录,则移动 file1 到 file2 下
mv file1 file2
# 其实它是移动文件或目录,重命名是特殊情况下的特殊效果

mv 命令演示

创建文件

touch filename.suffix  # 创建一个空文件(指定文件名和文件后缀名)
cat > file # 键盘输入内容到文件(覆写文件内容),Ctrl + C 终止输入
cat >> file # 追加文件内容
cat file1 >> file2 # file1 内容追加到 file2
cat file # 一次性打印文件全部内容
more file # 打印文件内容,Enter 键翻页

更详细的重定向介绍:Linux 重定向命令

进程管理

查看进程

# ps 一般和 grep 结合使用,查看某个进程的信息
ps -ef # 显示当前的活动进程
ps # 仅仅使用 ps ,只会显示 ps 和 bash(shell 进程)
ps -el # -l: long format, 显示更多进程信息
ps -ef | grep 3306 # 显示含有 3306 的进程信息

ps -e | grep 用法演示

任务管理器

top             # 动态显示当前所有的运行中进程(命令行版的进程管理器)
top -u username # 仅显示某个用户的进程

停止进程

# 一般套路: 通过 ps or nestat | grep 结合使用确定目标进程或服务的 PID,然后 kill 掉。
# 如果有些进程存在子进程,直接 kill -9 的话,强制进程在运行时突然终止,进程在结束后不能自我清理。
# 会导致系统资源无法正常释放,不推荐使用,除非其他办法都无效。

kill pid # 根据进程的 pid, 杀掉进程
kill -9 pid # 根据进程 pid, 强制终止进程
killall proc_name # 杀掉所有进程名含有 ‘proc_name’ 的进程

更多进程管理细节,移步这里:Linux 查看进程和终止进程的技巧

后台运行

# 关于 bg 和 fg 命令
# 情景: 如果运行的一个程序需要很长的时间,但你又想干其他的事~
# 这时就可以 Ctrl+Z, 挂起这个程序(把前台执行的程序放到后台,并且暂停它)
# 根据对应的 job 作业号在后台启动它

jobs # 显示当前所有后台运行的程序
bg job_number # 后台启动一个暂停的程序
fg job_number # 将后台运行的程序切换到前台继续运行

bg and fg 命令演示

# 另一个常用的做法,在执行的命令后加上 &
command & # 后台运行,关掉终端会停止运行
nohup command & # 后台运行,关掉终端也会继续运行

command & 演示

搜索

locate 命令

# 自身体会,查找真是太常用了!

# 先说 locate 命令
# 默认模糊查询,列出查询结果的绝对路径,所以找的是文件还是目录是无所谓的
# 该命令有一个自己的索引库,无参数使用就是从库里搜索结果并列出
# 类似 Win 下的软件:everything,不过 everything 每次启动都会刷新索引库
# 索引库并非实时更新,所以无参数总会搜出已经不存在的文件
# 参数 -e 代表仅列出当前系统中存在的结果,所以我通常都会加上

locate -e filename
sudo updatedb # 手动更新索引库。默认一天一更新

locate 命令演示

find 命令

# 由于 locate 索引库非实时的缘故
# 使用 find 命令就会搜的更准确

sudo find start_path -name file_name
# start_path 通常指定为 '/' 根目录,这样就是全盘查找
# 指定根目录后需要足够的权限,所以加上 sudo 或 root 用户执行
# 精确查找,匹配完整文件名
# find 非常强大,更多玩法建议去搜下专门讲 find 的博客

find 命令演示

系统信息

CPU

# 查看 CPU 型号
cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq

# 查看物理 CPU 个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

# 查看每个物理 CPU 中 core 的个数(核数)
cat /proc/cpuinfo | grep "cpu cores" | uniq

# 查看逻辑 CPU 的个数(物理数 × 核心数)
cat /proc/cpuinfo | grep "processor" | wc -l

Memory

free -h

我机子的内存

从应用程序的角度来看,可用内存 = free + buffers + cached. 图中可用内存即为 13818M = 13G + 325M + 493M


未完待续 ……)

手滑了就鼓励一下吧~