在我们学习Linux的过程中,都会使用Linux命令行,如果能熟练地使用Linux命令行,将会使我们在开发的过程中事半功倍,现在就介绍一下我在学习Linux的过程中经常使用的命令行,希望能对初学Linux的同学有一些帮助。
1. cd
eg. cd /usr
eg. cd /usr
cd /usr/
cd usr
/
cd -
说明:cd /usr和cd /usr/的功能相同,都是进入到根目录下的usr文件夹中
cd usr/是进入到当前目录下的usr文件夹中,当前目录是指执行这条命令所在的目录
cd - 是返回上一次进入的目录,例如当前目录为/usr/lib,然后执行cd /dev进入/dev/目录,当我们执行cd - 后会返回到/usr/lib
2. ls
eg. ls / usr
ls /usr/
eg. ls / usr
ls /usr/
ls usr/
ls -l
说明:cd /usr和cd /usr/的功能相同,都是列举根目录下的usr文件夹中中的内容
cd usr/是列举当前目录下的usr文件夹中,当前目录是指执行这条命令所在的目录
ls -l 列举当前目录下的文件的详细信息,会显示文件的权限
3. pwd
eg. pwd
说明:打印当前目录的路径,例如现在
/usr/lib目录下,执行这条命令会打印
/usr/lib,在shell脚本中应用很多
4. mkdir
eg. mkdir tmp
mkdir -P /work/nfs_root/first_fs //一次创建
eg. mkdir tmp
mkdir -P /work/nfs_root/first_fs //一次创建
说明:
mkdir tmp是在当前目录下创建tmp文件夹
mkdir -P /work/nfs_root/first_fs 加上-P选项会一次性创建,例如在执行这条命令前,只有/work目录,且/work目录下没有
nfs_root文件夹,如果我们像创建/work/nfs_root/first_fs目录的话,不加-P选项,我们需要执行两条命令才能达到目的:mkdir /work/nfs_root/和mkdir /work/nfs_root/first_fs
5. rm
eg. rm 1.txt
rm -rf tmp
说明:
rm 1.txt是删除当前目录下的
1.txt文件
rm -rf tmp是删除当前目录下的tmp文件夹
6. mv
eg.mv -rf tmp /work
说明:将当前目录下的tmp目录移动到
/work目录下
7. cp
eg. cp 1.txt tmp
cp -rf tmp/*so* /work
sudo cp * -rfd /mnt //-d:在拷贝so文件时经常用到,表示以前是链接文件,拷贝过去后还是链接文件
eg. cp 1.txt tmp
cp -rf tmp/*so* /work
sudo cp * -rfd /mnt //-d:在拷贝so文件时经常用到,表示以前是链接文件,拷贝过去后还是链接文件
说明:cp 1.txt tmp是将当前目录下的
1.txt文件复制到当前目录下的tmp文件夹
cp -rf tmp/*so* /work是将当前目录下的 tmp文件夹下的所有文件名包含so的文件复制到根目录下的work目录下
sudo cp * -rfd /mnt //-d选项:在拷贝so文件时经常用到,表示如果以前是链接文件,拷贝过去后还是链接文件
cp -rf tmp/*so* /work是将当前目录下的 tmp文件夹下的所有文件名包含so的文件复制到根目录下的work目录下
sudo cp * -rfd /mnt //-d选项:在拷贝so文件时经常用到,表示如果以前是链接文件,拷贝过去后还是链接文件
8. chmod
eg. chmod 777 1.txt
chmod 777 * -R
eg. chmod 777 1.txt
chmod 777 * -R
说明:
chmod 777 1.txt是将当前目录下的1.txt文件的访问权限改为可读可写可执行
chmod 777 * -R是将当前目录下的所有文件(对于当前目录下的文件夹中的文件),会递归地改变文件的属性为
可读可写可执行
9. diff
eg. diff ./linux-4.9 /work/OrangePi/OrangePi-Kernel/linux-4.9
说明:比较当前目录下的
linux-4.9目录下的所有文件和/work/OrangePi/OrangePi-Kernel/linux-4.9目录下的文件的请区别
10. ps
eg. ps -A
eg. ps -A
说明:列举出当前所有进程
11. kill
eg. kill -9 ***
killall hello
eg. kill -9 ***
killall hello
说明:
kill -9 ***是杀掉
pid为***的进程(进程的pid可以使用ps -A命令查询)
killall hello是杀掉所有进程名为hello的进程
12. cat
eg. cat 1.txt
说明:打印当前目录下的
1.txt文件的内容
13. echo
eg. echo 123 > 1.txt
echo $PATH
eg. echo 123 > 1.txt
echo $PATH
说明:
echo 123 > 1.txt是将字符串123写入当前目录下的1.txt文件
echo $PATH是打印环境变量
14. export
eg. a. export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
b. export PATH="$PWD/brandy/gcc-linaro/bin":"$PATH"
cross_comp="arm-linux-gnueabi"
eg. a. export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
b. export PATH="$PWD/brandy/gcc-linaro/bin":"$PATH"
cross_comp="arm-linux-gnueabi"
说明:对于a,修改环境变量
对于b,在shell脚本中经常看到,
export PATH="$PWD/brandy/gcc-linaro/bin":"$PATH"为设置环境变量为;原环境变量加上当前目录下的brandy/gcc-linaro/bin
cross_comp="arm-linux-gnueabi"为设置编译工具为
arm-linux-gnueabi-gcc
15. vi
eg. sudo vi /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/FriendlyARM/toolschain/4.4.3/bin"
参考:http://blog.163.com/shaoyu_lin/blog/static/3802459920123694812178/
eg. sudo vi /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/FriendlyARM/toolschain/4.4.3/bin"
参考:http://blog.163.com/shaoyu_lin/blog/static/3802459920123694812178/
16. ifconfig
eg. sudo ifconfig eth0 up
sudo ifconfig eth0 192.168.2.4
eg. sudo ifconfig eth0 up
sudo ifconfig eth0 192.168.2.4
说明:
sudo ifconfig eth0 up是启动eth0网卡
sudo ifconfig eth0 192.168.2.4是设置eth0网卡的ip为192.168.2.4
17. mount
eg. mount -t nfs -o nolock,vers=2 192.168.2.3:/work/nfs_root/first_fs /mnt
sudo umount /mnt
eg. mount -t nfs -o nolock,vers=2 192.168.2.3:/work/nfs_root/first_fs /mnt
sudo umount /mnt
说明:
mount -t nfs -o nolock,vers=2 192.168.2.3:/work/nfs_root/first_fs /mnt是挂载IP为192.168.2.3的Linux的/work/nfs_root/first_fs目录到本Linux系统的/mnt目录,如果挂载成功,那么:其他Linux系统的/work/nfs_root/first_fs目录和正在使用的Linux目录下的文件内容相同
sudo umount /mnt是解除挂载
18. dmesg
eg. dmesg | grep ***
eg. dmesg | grep ***
说明:dmesg是打印内核的打印信息,
dmesg | grep ***是载内核的打印信息中只打印包含字符串*** 的内容
19. find
eg. find -name "hello.c"
eg. find -name "hello.c"
说明:查找当前目录下所有名为
hello.c的文件
20. grep
eg. grep "error!" * -nR
eg. grep "error!" * -nR
说明:查找当前目录下说有文件内容中含有error!的文件,并打印文件名
21. tar
eg. tar xzf linux-2.6.22.6.tar.bz2
tar cjf linux-2.6.22.6.tar.bz2 linux-2.6.22.6
eg. tar xzf linux-2.6.22.6.tar.bz2
tar cjf linux-2.6.22.6.tar.bz2 linux-2.6.22.6
说明:
tar xzf linux-2.6.22.6.tar.bz2是加压linux-2.6.22.6.tar.bz2文件
tar cjf linux-2.6.22.6.tar.bz2 linux-2.6.22.6是将当前目录下的linux-2.6.22.6文件夹压缩为linux-2.6.22.6.tar.bz2文件,并保存在当前目录中
22. fdisk
eg. sudo fdisk -l //查看磁盘
sudo fdisk /dev/loop0 //分区
eg. sudo fdisk -l //查看磁盘
sudo fdisk /dev/loop0 //分区
说明:
sudo fdisk -l是查看磁盘的分区
sudo fdisk ***是给磁盘***分区
23. file
eg. file hello
eg. file hello
24. date
eg. date
eg. date
说明:打印日期,在shell脚本中使用很多
25. patch
eg. cd linux-2.6.22.6
eg. cd linux-2.6.22.6
patch -p1 < ../linux-2.6.22.6_jz2440.patch
说明:将补丁文件 linux-2.6.22.6_jz2440.patch放到linux-2.6.22.6目录的同级目录下,进入linux-2.6.22.6目录,打补丁
说明:将补丁文件 linux-2.6.22.6_jz2440.patch放到linux-2.6.22.6目录的同级目录下,进入linux-2.6.22.6目录,打补丁
26. uname
eg. uname -a
说明:
查看linux版本