`

Linux下的基本操作

阅读更多
1. 终端的最基本操作
ls          # 显示当前文件夹下的内容
-a -l -R -d #所有文件 /详细信息/递归的显示所有目录和文件/不递归
cd .. / -  # 进入上/上一次 文件夹
mkdir cp rm rmdir rm -r  vim chmod pwd mv #  创建文件夹  复制/删除/删除空文件夹/删除文件夹  编辑/改变权限/查看当前目录/移动文件
mv 文件名 新文件名  #重命名

其中的一些介绍
ls -l  #显示的内容意思
这是第一列的意义: -l连接文件
-d目录文件
-普通文件 文本文件和二进制文件
[bcp]特殊文件(即b或c或p)
这是第二列到第十列的意思: 读写执行权限
- rwx rwx rwx 2 root root 1234 Jun 26 11:21 test.txt
1  2   3   4  5  6    7    8       9          10
1. 文件的类型
2. 拥有者对该文件的权限(read write execute)
3. 群组对该文件的权限
4. 其他人对该文件的权限
5. 与该文件[夹]的连接数目
6. 拥有者的用户名
7. 群组的名称
8. 文件大小
9. 创建日期
10. 文件[夹]名称

2. 改变权限的命令:
1. chmod [-R] 750  filename/filelist 则是 111 101 000 改变各个用户的权限。如: chmod 755 /usr/local/*  将该文件夹下的文件赋予755权限
2. chmod [-R] [ugoa] [+-=] [rwx] filename/filelist

3.进入root用户,如果遇到问题,那么重置其密码就ok拉。
$ su - root
Password:
su: Authentication failure
Sorry.
这时候输入
$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

4.关机 重启机器
-h 关机
-r 重启
-t 过几秒后关机
shutdown -h now     #关机
shutdown -h +10     #10分钟后关机
shutdown -h 10:12   #在10:12关机

5.压缩和解压缩
tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包

tar -cvf benet.tar            #
tar -xvf benet.tar
tar -zcvf benet.tar.gz        #
tar -zxvf benet.tar.gz        #

如 tar -zcvf desktop.tar.gz Desktop/ #当前在Desktop目录下,在这里使用了相对路径

(更多的参数查看man 或者 info)

6. 一些文件目录的介绍
/dev  目录下存放的是系统的设备文件
/etc  配置文件的目录
/etc/profile    配置环境变量的文件
/etc/inittab 是系统启动时需要加载的文件  #这是RedHat或者Debian中的配置文件
             0停止系统
             6重启系统
             3文字界面启动
             5图形界面启动
             1单用户模式启动
/lib 系统库文件          /lib/modules/2.6.24-24-generic/kernel/drivers驱动模块
/usr/lib 应用程序使用的库

7.Linux下一些重要的命令
在Linux下,有which, whereis,locate,find查找文件的命令。

(1) which #which是基于PATH环境变量来查询的,可以用于查询可执行文件

[root@NetFPGA11 Desktop]# which passwd
/usr/bin/passwd
[root@NetFPGA11 Desktop]#

(2) whereis [-bmsu]
-b 只查找二进制文件
-m 只找在说明文件manual路径下的文件
-s 只找source源文件
-u 没有说明文档的文件

[root@NetFPGA11 Desktop]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1.gz
[root@NetFPGA11 Desktop]# whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd
[root@NetFPGA11 Desktop]#

(3)locate [目录名称]
locate查找速度要远快于find命令,因为locate是基于数据库的查询。这个命令会将目录或者名称中包含要查找名称的所有文件全部列出。但是这要根据系统数据库的更新有关。如果希望数据库马上更新,则执行updatedb来进行。需要注意的是locate不支持正则表达式。
如:
[root@NetFPGA11 Desktop]# locate bing.h
/root/Desktop/new files/bing.h
/root/ns-allinone-2.34/NS_234/ns-2.34/apps/bing.h
/root/ns-allinone-2.34/ns-2.34/apps/bing.h
[root@NetFPGA11 Desktop]# locate root
。。。。(非常多的内容)

(4)find
通过man命令查看find来找到find的参数,格式为:
find [路径] [参数]。列举几个比较常用的如下:
-atime n #将n*24小时内被访问(access)的文件[夹]列出
-ctime n #将n*24小时内被创建、改变(create)的文件[夹]列出
-mtime n #将n*24小时内被修改(modify)的文件[夹]列出
-newer file #将比file文件还要新的文件列出

-gid n #将gid为n的文件[夹]列出
-uid n #将uid为n的文件[夹]列出
-group name #将群组为name的文件[夹]列出
-user name #将g用户名为name的文件[夹]列出
-name file #根据名字来查找(支持正则表达式)
-type type(其中常用的有 b二进制 d目录 l链接)

8.管道问题
管道命令是用 | 来作为标志符。下面介绍几个常用的管道配合命令
(1)wc
wc [-lmw]
-l 多少行
-m 多少字符
-w 多少字

cat /etc/passwd | wc -l

(2)grep

(3)

(4)

(5)
(6)
(7)

9.常识
(1)tar  unix打包
rpm  RedHat公司
dpkg Debian提供

(2)man [command] #用来查看命令说明
info [command] #用来查看命令说明

(3)ps -A        #查看当前进程
kill 进程号   #杀掉进程

(4)用户组类型 : u创建者 g组用户 o其他用户 a所有用户
(5)scp命令(如果有自己的服务器的话)
scp linux.zip aaa@210.30.12.12:~/    #将当前文件夹下的linux.zip文件上传到根目录
scp aaa@210.30.12.12:~/linux.zip     #将根目录下的linux.zip文件下载到当前文件夹
(6)查看空间大小
fdisk -l(查看硬盘的空间)
df -h   (查看文件的分配情况及大小分布)
fsck    (检查硬盘  当系统非正常关机的时候使用)
(7)
ifconfig #端口配置 ip地址等
netstat  #网络连接状态
(8)
sudo rmmod pcspkr #去掉linux的烦人的蜂鸣
10. 重定向
三种输出输入状况:
0标准输入,<
1标准输出 1>(1可省略)
2错误输出 2>

> #将内容重定向到另一个地方,是覆盖掉原来的内容
>>#将内容重定向到另一个地方,是附加在后面
2>#将错误信息重定向到另一个地方
< #重定向输入

如ls -al 1>list.txt 2>&1 #将错误信息和正确信息都输入到list.txt中
ls -al 1> list.txt 2>/dev/null#将错误信息丢弃,将正确信息重定向到list.txt

11. Linux下的正则表达式

^ 开始
$ 结束
? 单个字符
* 随意任意几个
\ 转义符
[list] 列表中的一个字符
[range] 列表范围中的一个字符
[^list] 非[list]字符
[^range] 非[range]字符
\{n\} 正好匹配n次
\{m,n\} 匹配m-n次


12.shell 脚本基础
bash  **.sh   或者  ./**.sh      #这样是执行shell脚本
echo "hello world"
"#“这是注释符号
-n #不换行输出  如:echo -n "hello world"
export    #可以定义全局变量
expr 4 + 5  #求值算术表达式  4和5之间有空格的 或者如下
$((expression))
read #读入用户的输入
test []     #条件判断
exit        #退出shell脚本
-eq ne gt ge lt le   #等于 不等于 大于 大于等于 小于 小于等于
=: !=: -z -n    #字符串测试   等于 不等于 长度为0 长度不为0
if elif else fi
case ... esac   ;;  #是以;;结束每个case的
*  #通配符   如:
case $choice in
1) ...;;
2) ...;;
3) ...;;
*) ...;;
#文件测试命令如下:
-e  #文件存在则为真
-r  #文件存在且可读则为真
-w  #文件存在且可写则为真
-x  #文件存在且可执行则为真
-s  #文件存在且至少有一个字符则为真
-d  #文件存在且为目录则为真
-f  #文件存在且为普通文件则为真
-c  #文件存在且为字符型特殊文件则为真
-b  #文件存在且为块特殊文件则为真
-a 和     -o 或      !非
while语句:
while <条件>
do
<命令>
done
until语句:
until <条件> #先执行,然后判断条件
for语句:
for variable_name in <list_of_values>
do
...
done
break   #如c中的一样
continue#如c中的一样
wc tempfile &   #wc 用来计算字符数量  &在后台执行
ps   #显示进行信息
kill  #杀掉进程
time  #用来计算时间的,如: time find /etc iname "passwd" 2>/dev/null,计算find的时间并将错误信息放到null中
(|)  #通过管道来执行unix和linux命令,如:
ls -l | more #分页显示当前文件夹下的详细信息
date  #显示日期时间
env   #显示环境变量
#shell的语言可以直接在终端使用,如 echo等
`` #是执行命令,如,要在终端输入命令显示日期时间的话,可以这样:
echo "The date is `date`"


13.用来查看文件的内容
cat #从第一行到最后一行显示
tac #从最后一行到第一行显示
more#以可操作的方式显示内容,但不能向前翻页
less#以可操作的方式显示内容,能向前翻页
head [-n number]#显示前几行
tail [-n number]#显示后己行
nl  #显示的时候显示行号。等于cat -n
od  #用于读取非ASCII数据文件,例如二进制文件。

14. 时间的一些操作
date 用来显示时间
cal 用来显示日期
使用man date 或者 man cal可以查看命令参数的要求。列举几例如下:
[root@NetFPGA11 Desktop]# date +%Y-%m-%d\ %H:%M:%S
2010-09-24 09:49:49
[root@NetFPGA11 Desktop]# cal 2 1988
   February 1988   
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29

15.Linux的用户群组概念非常重要,这对于文件管理来说,提供了极大的便利。
useradd username    #增加用户                   /etc/passwd普通用户可以读
passwd  username    #增加密码                   /etc/shadow超级用户可以读
userdel username    #删除用户
-f This option forces the removal of the user, even if she is still logged in.
-r Files in the user’s home directory will be removed along with the home directory itself and the user’s mail spool.

groupadd [-g gid] [-r]#增加群组
  -g  :后面接某个特定的 GID ,用来直接给予某个 GID ~
  -r  :建立系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。
groupdel [groupname]#删除群组

su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户。
如果当前是root用户,那么切换成普通用户test用以下命令:
su - test
如果要切换回root用户,那么用以下命令:
su 或 su -
用户名root可以省略不写。
切换回root用户时要输入root密码,很烦。我一般直接输入exit命令来切换回root用户,这样就不用输入密码。

下面是改变文件或者目录所在的群组或者拥有者。(chown可以包含chgrp)
chgrp 群组名称 文件或目录
chown [-R] 帐号名称 文件或目录
chown [-r] 帐号名称:群组名称 文件或目录

如:
[root@NetFPGA11 ~]# ls -l paul.txt
-rw-r--r-- 1 root root 40 09-24 10:21 paul.txt
[root@NetFPGA11 ~]# chown paul:test paul.txt
[root@NetFPGA11 ~]# ls -l paul.txt
-rw-r--r-- 1 paul test 40 09-24 10:21 paul.txt


(更加详细的内容 查看man 或者 info)

16.建立快捷方式
在Linux下,连接类似于Windows下的快捷方式,但Linux下的连接分为硬连接和符号连接两种。
在Linux下,系统要读取某个文件时,先读取inode table,然后根据信息到inode连接到的block块中去找文件。而硬连接实际上是又建立了一个inode表项。因此,Linux硬连接有两个限制:
(1) 不能跨文件系统
(2) 不能链接目录(因为目录只占用inode表项,不占有Block)

ln [-s] [源文件] [目标文件](如果没有-s,那么就是硬连接)

如:
[root@NetFPGA11 Desktop]# ln -s yuanbo/path path.ln
[root@NetFPGA11 Desktop]# ln yuanbo/path path.d
[root@NetFPGA11 Desktop]# ls -l path*
-rw-r--r-- 2 root root 324 09-08 16:26 path.d
lrwxrwxrwx 1 root root  11 09-24 11:06 path.ln -> yuanbo/path


17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics