新手指南: Linux 新手应该知道的 26 个命令
如何寻求帮助?
man
$ man ls
$ man -f lsls (1) - list directory contentsls (1p) - list directory contents
$ man 1p ls
info
$ info
$ info program
help
$ man --help ### 获取 man 的帮助$ info --help ### 获取 info 的帮助$ ls --help ### 获取 ls 的帮助
如何简单操作?
光标
-
up(方向键上) 可以调出输入历史执行记录,快速执行命令
-
down(方向键下) 配合 up 选择历史执行记录
-
Home 移动光标到本行开头
-
End 移动光标到本行结尾
-
PgUp 向上翻页
-
PaDN 向下翻页
-
ctrl + c 终止当前程序
Tab 补全
-
未输入状态下连按两次
Tab
列出所有可用命令 -
已输入部分命令名或文件名,按
Tab
进行自动补全,多用你就肯定会喜欢的了。
常用命令
cd
$ cd path ### path 为你要打开的路径。
ls
$ ls ### 仅列出当前目录可见文件$ ls -l ### 列出当前目录可见文件详细信息$ ls -hl ### 列出详细信息并以可读大小显示文件大小$ ls -al ### 列出所有文件(包括隐藏)的详细信息
pwd
$ pwd/home
mkdir
$ mkdir folder$ mkdir -p folder/subfolder ### -p 参数为当父目录存在时忽略,若不存在则建立,用此参数可建立多级文件夹
rm
$ rm filename ### 删除 filename$ rm -i filename ### 删除 filename 前提示,若多个文件则每次提示$ rm -rf folder/subfolder/ ### 递归删除 subfolder 下所有文件及文件夹,包括 subfolder 自身$ rm -d folder ### 删除空文件夹
cp
$ cp source dest ### 将 source 复制到 dest$ cp folder/* dest ### 将 folder 下所有文件(不含子文件夹中的文件)复制到 dest$ cp -r folder dest ### 将 folder 下所有文件(包含子文件夹中的所有文件)复制到 dest
mv
$ mv source folder ### 将 source 移动到 folder 下,完成后则为 folder/source$ mv -i source folder ### 在移动时,若文件已存在则提示 **是否覆盖** $ mv source dest ### 在 dest 不为目录的前提下,重命名 source 为 dest
cat
$ cat /etc/locale.gen ### 输出 locale.gen 的内容 $ cat -n /etc/locale.gen ### 输出 locale.gen 的内容并显示行号
more
$ more /etc/locale.gen$ more +100 /etc/locale.gen ### 从 100 行开始显示
less
$ less /etc/locale.gen$ less +100 /etc/locale.gen
nano
$ nano filename ### 编辑 filename 文件,若文件不存在,则新打开一个文件,若退出时保存,则创建该文件
reboot
# reboot ### '$' 和 '#' 的区别在于 '$' 普通用户即可执行 ### 而 '#' 为 root 用户才可执行,或普通用户使用 'sudo'
poweroff
# poweroff ### 马上关机
ping
$ ping locez.com ### 通过域名 ping,若 DNS 未设置好,可能无法 ping 通$ ping linux.cnPING linux.cn (211.157.2.94) 56(84) bytes of data.64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=1 ttl=53 time=41.5 ms64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=2 ttl=53 time=40.4 ms64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=3 ttl=53 time=41.9 ms^C--- linux.cn ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2002msrtt min/avg/max/mdev = 40.406/41.287/41.931/0.644 ms$ ping 211.157.2.94 ### 通过 IP 地址 ping ,若无法 ping 通可能是网络连接出现问题
grep
$ grep PATTERN filename ### 返回所有含有 PATTERN 的行$ grep zh_CN /etc/locale.gen ### 返回所有含 zh_CN 的行
mount
# mount ### 输出系统目前的挂载信息# mount /dev/sda1 /mnt ### 将 sda1 挂载到 /mnt 中# cd /mnt ### 直接通过 /mnt 访问内容# mount -o remount,rw /mnt ### 重新挂载 sda1 到 /mnt 并设置为 可读写 # mount -a ### 挂载 fstab 文件配置好的文件系统
umount
# umount /mnt ### 卸载 /mnt 这个挂载点的文件系统# umount -a ### 卸载所有已挂载的文件系统
tar
-
-c
创建归档 -
-x
解压归档 -
-v
显示处理过程 -
-f
目标文件,其后必须紧跟 目标文件 -
-j
调用bzip2
进行解压缩 -
-z
调用gzip
进行解压缩 -
-t
列出归档中的文件
$ tar -cvf filename.tar . ### 将当前目录所有文件归档,但不压缩,注意后面有个 ’.‘ ,不可省略,代表当前目录的意思 $ tar -xvf filename.tar ### 解压 filename.tar 到当前文件夹$ tar -cvjf filename.tar.bz2 . ### 使用 bzip2 压缩$ tar -xvjf filename.tar.bz2 ### 解压 filename.tar.bz2 到当前文件夹$ tar -cvzf filename.tar.gz ### 使用 gzip 压缩$ tar -xvzf filename.tar.gz ### 解压 filename.tar.gz 到当前文件夹$ tar -tf filename ### 只查看 filename 归档中的文件,不解压
ln
-
硬链接主要是增加一个文件的链接数,只要该文件的链接数不为
0
,该文件就不会被物理删除,所以删除一个具有多个硬链接数的文件,必须删除所有它的硬链接才可删除。 -
软链接简单来说是为文件创建了一个类似快捷方式的东西,通过该链接可以访问文件,修改文件,但不会增加该文件的链接数,删除一个软链接并不会删除源文件,即使源文件被删除,软链接也存在,当重新创建一个同名的源文件,该软链接则指向新创建的文件。
-
硬链接只可链接两个文件,不可链接目录,而软链接可链接目录,所以软链接是非常灵活的。
$ ln source dest ### 为 source 创建一个名为 dest 的硬链接$ ln -s source dest ### 为 source 创建一个名为 dest 的软链接
chown
# chown user filename ### 改变 filename 的所有者为 user# chown user:group filename ### 改变 filename 的所有者为 user,组为 group# chown -R root folder ### 改变 folder 文件夹及其子文件的所有者为 root
chmod
-rwxr--r-- 1 locez users 154 Aug 30 18:09 filename
# chmod +x filename ### 为 user ,group ,others 添加执行权限# chmod -x filename ### 取消 user , group ,others 的执行权限# chmod +w filename ### 为 user 添加写入权限# chmod ugo=rwx filename ### 设置 user ,group ,others 具有 读取、写入、执行权限# chmod ug=rw filename ### 设置 user ,group 添加 读取、写入权限# chmod ugo=--- filename ### 取消所有权限
useradd
# useradd -m -g users -G audio -s /usr/bin/bash newuser ### -m 创建 home 目录, -g 所属的主组, -G 指定该用户在哪些附加组, -s 设定默认的 shell ,newuser 为新的用户名
passwd
$ passwd ### 不带参数更改当前用户密码# passwd newuser ### 更改上述新建的 newuser 的用户密码
whereis
$ whereis bash bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz$ whereis -b bash ### 仅查找 binarybash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout$ whereis -m bash ### 仅查找 manualbash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
find
$ find . -name PATTERN ### 从当前目录查找符合 PATTERN 的文件$ find /home -name PATTERN -exec ls -l {} \; # 从 /home 文件查找所有符合 PATTERN 的文件,并交由 ls 输出详细信息
wget
$ wget -O newname.md https://github.com/LCTT/TranslateProject/blob/master/README.md ### 下载 README 文件并重命名为 newname.md$ wget -c url ### 下载 url 并开启断点续传
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫