Linux基本命令
一,查看目录和文件命令
- cd 改变目录
(1) cd /usr/bin
(2) Cd .. (.:当前目录,..:上一级目录)
(3) cd /
(4) Cd ~ (用户主目录)
2.ls 列出目录内容
目录:蓝色,普通文件:黑色,可执行文件:草绿色,链接文件:淡蓝色
(l) ls -a 显示所有文件,包括隐含文件
(2) ls -l 查看文件的各种属性
(3) Ls /etc/init.d/ 查看某一个目录中的内容
3.dir和 vdir 列出目录内容
(1) dir 除了比ls 的功能少,其他都是一样的
dir /etc/init.d/
(2) vdir 相当于 ls -l
4.cat 和 more 查看文本文件
(1) cat -n stack.h -n 显示行号
(2) more : 可以一页一页地显示内容,按空格向下翻动一页,按Enter向下滚动一页,Q退出
eg: More fstab
5.head 和 tail 阅读文件的开头和结尾
(1) head -n 2 day weather -n:显示行号
(2) Tail -n 2 day weather
6.less 更好的文本阅读工具
(1) less /boot/grub/grub.cfg
空格:向下翻一页 B:向上翻一页
/查找的内容 :查找 继续查找相同内容:只要再次输入/,并按下回车键就可以了
Q:退出
7.grep 查找文件内容
(1) grep un day 在文件day中查找un的行
- find 在指定范围内查找到文件
(1) find /usr/bin -name zip -print 在/usr/bin目录中查找zip命令
(2) Find /etc -name init.d -type d -print 在/etc目录中查找名叫init.d的目录
find命令的-type选项可供使用的参数:
b:块设备文件 c:字符设备文件 d:目录文件 f:普通文件 p:命名管道 l:符号链接
8.locate 更快速的定位文件
(1) locate *.doc
9.firefox 从终端运行程序(firefox)
10.whereis 查找特定程序
(1) whereis find
Find: /usr/bin/find /usr/share/man/manl/find.l.gz
(2) whereis -b find 只查找这个程序的二进制可执行文件
Find: /usr/bin/find
11.who,whomi,uname -a,uname -r 用户版本信息查看
12.man 寻求帮助
(1) . man find
man命令显示手册页时调用的是less程序。J:向下,K:向上 空格:向下翻动一页 Q:退出
13.pwd 显示当前目录
14.通配符
Tab(一个补全,两个列出所有)
* :用于在文件名中匹配任意长度的字符串
?:只匹配一个字符
[]:用于匹配所有出现在方括号内的字符,也可以用-指定一个字符集范围
二:文件目录管理
Linux系统主要目录及其内容
/bin 构建最小系统所需要的命令(最常用的命令)
/boot 内核与启动文件
/dev 各种设备文件
/etc 系统软件的启动和配置文件
/home 用户的主目录
/lib C编译器的库
/media 可移动介质的安装点
/opt 可选的应用软件包(很少使用)
/proc 进程的影像
/root 超级用户root的主目录
/sbin 和系统操作有关的命令
/tmp 临时文件存放点
/usr 非系统的程序和命令
/var 系统专用的数据和配置文件
linux文件类型
普通文件:- 目录:d 字符设备文件:c 块设备文件: b 本地域套接口:s
有名管道:p 符号链接:l
1. sudo groupadd workgroup 新建一个名为workgroup的用户组
sudo useradd -G workgroup lucy 新建Lucy成员加入workgroup
sudo passwd lucy 为用户Lucy设置登陆密码
sudo useradd -G workgroup lewis
sudo passwd lewis
首先在/home目录下建立一个名为work的目录,作为这个小组的工作目录
cd /home
sudo mkdir work
现在任何人都可以访问这个新建的目录,而只有root用户才拥有该目录的写权限。现在希望让workgroup组的成员拥有这个目录的读写权限,并禁止其他无关的用户查看这个目录
sudo chgrp workgroup work/ 将work目录的所有权交给workgroup组
sudo chmod g+rwx work/ 增加workgroup组对work目录的读,写,执行权限
sudo chmod o-rwx work/ 撤销其他用户对work目录的读,写,执行权限
接下来需要将这个目录交给一个组长Lewis(现在work目录的所有者还是root用户)
sudo chown lewis work/
现在所有属于这个组的成员都可以访问并修改这个目录中的内容,而其他未经授权的用户(除了root)则无法看到其中的内容。例如,lewis在/home/work目录下新建了一个名为test的空文件,那么同属一个组的用户Peter如果认为这个文件没有必要,可以有权删除它。
su lewis
cd /home/work
touch test
su peter
cd /home/work
rm test
- mkdir 建立目录
(1) cd ~
mkdir doucument picture
(2) mkdir ~/picture/temp
(3) mkdir -p ~/tempx/job mkdir会首先创建tempx目录,然后创建job。在需要创建一个目录结构的时候,这个选项是非常有用的
2.touch 建立一个空文件
(1) touch hello
3.touch 命令还可以更新一个文件的建立日期和时间
4.mv 移动和重命名(mv可以在移动文件和目录的同时对其重命名)
(1) mv hello /bin/ 将文件hello移动到bin目录下
(2) mv Photos /桌面/ 将Photos目录移动到桌面
(3) mv -i hello test/ 在覆盖前询问
(4) mv -b hello test/
cd test/
ls
hello hello~
(5) mv hello~ hello_bak 重命名
5. cp 复制文件和目录
(1) cp test.php test/
和mv命令一样,cp默认情况下会覆盖目标目录中的同名文件。可以使用-i选项对这种情况进行提示,也可以使用-b选项对同名文件改名后再复制,这两个选项的使用和mv中的命令一样。
(2) cp -i test.php test/
(3) cp -b test.php test/
(4) cp命令在执行复制的时候会自动跳过目录。例如:
cp -r test/ 桌面/
cp:略过目录“test/”
(5) cp -r test/ 桌面/
6.rmdir和rm 删除目录和文件
rmdir命令用于删除目录,rmdir只能删除空目录,因此,在使用rmdir之前首先将这个目录下的文件和子目录删除
(1) mkdir remove
rmdir remove
rm命令可以一次删除一个或几个文件
(1) rm test/*.php
(2) rm -i test/hello 提示
(3) 对于只读文件,即便不加-i选项,rm命令也会对此进行提示
可以使用-f选项来避免这样的交互式操作
rm -f hello_bak
(4) rm -r Photos/ 递归地删除目录下的所有文件和子目录
5.文件和目录权限
3种权限包括:属主,属组,其他人
需要设置的权限:r(读),w(写),x(执行)
(1) 查看文件和目录的属性
ls -l /bin/login 文件属性
ls -ld /etc/ 目录属性
(2) 改变文件所有权:chown和chgrp
sudo chown lewis:root days 将文件days的属主更改为lewis,属组改为root组
(3) sudo chown guest days 只改变属主
(4) sudo chown :nogroup days 更改属组为nogroup,而保留属主设置
(5) sudo chown -R lewis iso/ 将iso/和其下所有的文件交给用户lewis
(6) linux单独提供了一个命令chgrp用于设置文件的属组
sudo chgrp nogroup days 将days的属组设置为nogroup组
sudo chgrp -R root iso/
更改文件权限:chmod
(1) chmod u+x days
(2) chmod a-x days
(3) chmod ug=rw,o=r days
(4) chmod o=u days
(5) 文件权限的八进制表示
rwx=4+2+1=7 r-x=4+0+1=5
rwxr-x--x=751
chmod 711 prog
- 文件类型
(1) 查看文件类型
ls -l
(2) 建立连接:ln
ln -s TARGET LINK_NAME 符号连接(软连接)给目标文件TARGET取了个别名LINK_NAME
ln days hard_days 硬连接
2.输入输出重定向和管道
(1) 输出重定向
ls > ~/ls_out
uname -r > ls_out
uname -r >> date_out 不覆盖
(2) 输入重定向
cat < days 从文件中获取输入
(3) 管道 |
ls | grep ay 在文件列表中查找文件名中包含某个特定字符串的文件