重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
当你进入了Linux的世界,在下载、安装了某个Linux发行版,体验了Linux桌面并安装了一些你喜爱和需要的软件之后,应该去了解下Linux真正的魅力所在:命令行。每一个Linux命令其实就是一个程序,借助这些命令,我们可以办到非常多的事情。下面将会为大家介绍一下几个常用的命令。
如何寻求帮助?
在Linux下遇到问题,最重要的是要自己寻求帮助,下面是三种寻求帮助的方法。
man
man是Linux的帮助手册,即manual。因为大多数程序都会自带手册,所以可以通过man命令获取帮助。执行以后,在man page页面中按q退出。
获取ls的帮助
$ man ls
查看有多少(针对不同方面的)同名的手册
$ man -f ls
ls (1) - list directory contents
ls (1p) - list directory contents
查看特定的手册
$ man 1p ls
info
与man不同的是,可以像浏览网页一样在各个节点中跳转。
从文档首页开始浏览
$ info
获取特定程序的帮助
$ info program
help
除了上面的两种方法外,还有一种简单使用的方法,那就是–help参数,一般程序都会有这个参数,会输出最简单有用的介绍。
$ man --help ###获取man的帮助
$ info --help ###获取info的帮助
$ ls --help ###获取ls的帮助
如何简单操作?
在Terminal(终端) 中,有许多操作技巧,这里就介绍几个简单的。
光标
. up(方向键上)可以调出输入历史执行记录,快速执行命令
. down(方向键下)配合up选择历史执行记录
. Home移动光标到本行开头
. End移动光标到本行结尾
. PgUp向上翻页
. PaDN向下翻页
. ctrl + c终止当前程序
Tab补全
Tab补全是非常有用的一个功能,可以用来自动补全命令或文件名,省时准确。
.未输入状态下连按两次Tab列出所有可用命令
.已输入部分命令名或文件名,按Tab进行自动补全,多用你就肯定会喜欢的了。
常用命令
以下命令按照通常的使用频度排列。
cd
cd是打开某个路径的命令,也就是打开某个文件夹,并跳转到该处。
$ cd path ### path为你要打开的路径。
其中path有绝对路径和相对路径之分,绝对路径强调从/起,一直到所在路径。相对路径则相对于当前路径来说,假设当前家目录有etc文件夹(绝对路径应为/home/username/etc),如果直接cd etc则进入此文件夹,但若是cd /etc/则是进入系统etc,多琢磨一下就可以理解了。另外在Linux中,.代表当前目录,..代表上级目录,因此返回上级目录可以cd ..。
ls
ls即list,列出文件。
$ ls ###仅列出当前目录可见文件
$ ls -l ###列出当前目录可见文件详细信息
$ ls -hl ###列出详细信息并以可读大小显示文件大小
$ ls -al ###列出所有文件(包括隐藏)的详细信息
注意:Linux中 以.开头的文件或文件夹均为隐藏文件或隐藏文件夹。
pwd
pwd用于返回当前工作目录的名字,为绝对路径名。
$ pwd
/home
mkdir
mkdir用于新建文件夹。
$ mkdir folder
$ mkdir -p folder/subfolder ### -p参数为当父目录存在时忽略,若不存在则建立,用此参数可建立多级文件夹
rm
rm即remove,删除文件。
$ rm filename ###删除filename
$ rm -i filename ###删除filename前提示,若多个文件则每次提示
$ rm -rf folder/subfolder/ ###递归删除subfolder下所有文件及文件夹,包括subfolder自身
$ rm -d folder ###删除空文件夹
cp
cp即copy,复制文件。
$ cp source dest ###将source复制到dest
$ cp folder/* dest ###将folder下所有文件(不含子文件夹中的文件)复制到dest
$ cp -r folder dest ###将folder下所有文件(包含子文件夹中的所有文件)复制到dest
mv
mv即move,移动文件。
$ mv source folder ###将source移动到folder下,完成后则为folder/source
$ mv -i source folder ###在移动时,若文件已存在则提示**是否覆盖**
$ mv source dest ###在dest不为目录的前提下,重命名source为dest
cat
cat用于输出文件内容到Terminal。
$ cat /etc/locale.gen ###输出locale.gen的内容
$ cat -n /etc/locale.gen ###输出locale.gen的内容并显示行号
more
more与cat相似,都可以查看文件内容,所不同的是,当一个文档太长时,cat只能展示最后布满屏幕的内容,前面的内容是不可见的。这时候可用more逐行显示内容。
$ more /etc/locale.gen
$ more +100 /etc/locale.gen ###从100行开始显示
less
less与more相似,不过less支持上下滚动查看内容,而more只支持逐行显示。
$ less /etc/locale.gen
$ less +100 /etc/locale.gen
nano
nano是一个简单实用的文本编辑器,使用简单。
$ nano filename ###编辑filename文件,若文件不存在,则新打开一个文件,若退出时保存,则创建该文件
编辑完后,ctrl + X提示是否保存,按y确定保存即可。
注意:在使用过程中可用ctrl + G获取帮助。
reboot
reboot为重启命令。
# reboot ### \'$\'和\'#\'的区别在于\'$\'普通用户即可执行
###而\'#\'为root用户才可执行,或普通用户使用\'sudo\'
poweroff
poweroff为关机命令。
# poweroff ###马上关机
ping
ping主要用于测试网络连通,通过对目标机器发送数据包来测试两台主机是否连通,及延时情况。
$ ping locez.com ###通过域名ping,若DNS未设置好,可能无法ping通
$ ping linux.cn
PING 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 ms
64 bytes from 211.157.2.94.static.in-addr.arpa (211.157.2.94): icmp_seq=2 ttl=53 time=40.4 ms
64 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 2002ms
rtt min/avg/max/mdev = 40.406/41.287/41.931/0.644 ms
$ ping 211.157.2.94 ###通过IP地址ping,若无法ping通可能是网络连接出现问题
grep
grep主要用于返回匹配的项目,支持正则表达式。
$ grep PATTERN filename ###返回所有含有PATTERN的行
$ grep zh_CN /etc/locale.gen ###返回所有含zh_CN的行
mount
mount用于挂载一个文件系统,需要root用户执行。一个磁盘可分为若干个分区,在分区上面可以创建文件系统,而挂载点则是提供一个访问的入口,将一个分区的文件系统挂载到某个目录中,称这个目录为挂载点,并且可以通过这个挂载点访问该文件系统中的内容。
例如一块硬盘在Linux中表示为/dev/sda那么它上面的分区应该表示为/dev/sda1、/dev/sda2。
# mount ###输出系统目前的挂载信息
# mount /dev/sda1 /mnt ###将sda1挂载到/mnt中
# cd /mnt ###直接通过/mnt访问内容
# mount -o remount,rw /mnt ###重新挂载sda1到/mnt并设置为 可读写
# mount -a ###挂载fstab文件配置好的文件系统
umount
umount与moung相反,是卸载一个挂载点,即取消该入口。
# umount /mnt ###卸载/mnt这个挂载点的文件系统
# umount -a ###卸载所有已挂载的文件系统
tar
tar主要用于创建归档文件,和解压归档文件,其本身是没有压缩功能的,但可以调用gzip、bzip2进行压缩处理。 参数解释:
. -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
ln主要用于在两个文件中创建链接,链接又分为Hard Links (硬链接)和Symbolic Links (符号链接或软链接),其中默认为创建硬链接,使用-s参数指定创建软链接。
.硬链接主要是增加一个文件的链接数,只要该文件的链接数不为0,该文件就不会被物理删除,所以删除一个具有多个硬链接数的文件,必须删除所有它的硬链接才可删除。
.软链接简单来说是为文件创建了一个类似快捷方式的东西,通过该链接可以访问文件,修改文件,但不会增加该文件的链接数,删除一个软链接并不会删除源文件,即使源文件被删除,软链接也存在,当重新创建一个同名的源文件,该软链接则指向新创建的文件。
.硬链接只可链接两个文件,不可链接目录,而软链接可链接目录,所以软链接是非常灵活的。
$ ln source dest ###为source创建一个名为dest的硬链接
$ ln -s source dest ###为source创建一个名为dest的软链接
chown
chown用于改变一个文件的所有者及所在的组。
# chown user filename ###改变filename的所有者为user
# chown user:group filename ###改变filename的所有者为user,组为group
# chown -R root folder ###改变folder文件夹及其子文件的所有者为root
chmod
chmod永远更改一个文件的权限,主要有读取、写入、执行,三种权限,其中所有者、用户组、其他各占三个,因此ls -l可以看到如下的信息
-rwxr--r-- 1 locez users 154 Aug 30 18:09 filename
其中r=read,w=write,x=execute
# 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用于添加一个普通用户。
# useradd -m -g users -G audio -s /usr/bin/bash newuser
### -m创建home目录,-g所属的主组,-G指定该用户在哪些附加组,-s设定默认的shell,newuser为新的用户名
passwd
passwd用于改变用户登录密码。
$ passwd ###不带参数更改当前用户密码
# passwd newuser ###更改上述新建的newuser的用户密码
whereis
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 ###仅查找binary
bash: /usr/bin/bash /etc/bash.bashrc /etc/bash.bash_logout
$ whereis -m bash ###仅查找manual
bash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
find
find也用于查找文件,但更为强大,支持正则,并且可将查找结果传递到其他命令。
$ find . -name PATTERN ###从当前目录查找符合PATTERN的文件
$ find /home -name PATTERN -exec ls -l {} /; #从/home文件查找所有符合PATTERN的文件,并交由ls输出详细信息
wget
wget是一个下载工具,简单强大。
$ wget -O newname.mdhttps://github.com/LCTT/TranslateProject/blob/master/README.md###下载README文件并重命名为newname.md
$ wget -c url ###下载url并开启断点续传
恭喜你,你已经学习了完了26个基础的Linux命令。虽然这里只是一些最基础的命令,但是熟练使用这些命令就踏出了你从一位Linux新手成为Linux玩家的第一步!
文章来源:极客头条