- 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。
答:环境变量 HISTSIZE 在配置文件 /etc/profile 文件中,所以要使其能够保存10000条命令历史需要修改配置文件 /etc/profile,将HISTSIZE=10000
[root@localhost ~]# vi /etc/profilefiHOSTNAME=`/usr/bin/hostname 2>/dev/null`else pathmunge /usr/local/sbin after pathmunge /usr/sbin afterfiHOSTNAME=`/usr/bin/hostname 2>/dev/null`HISTSIZE=10000if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignorebothelse export HISTCONTROL=ignoredupsfi
- 为什么如果这样设置PS1 (PS1="[\u@\h \W]$ ") 显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?
答:PS1="[\u@\h \W]$ " 需要将双引号改为单引号,因为双引号下需要转义
- 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。
for i in
ls
;do mv $iecho $i|tr '[a-z]' '[A-Z]'
;done
- 使用sort以":"为分隔符,对/etc/passwd文件的第5段排序。
[root@localhost ~]#sort -t: -k5 /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinhalt:x:7:0:halt:/sbin:/sbin/haltuser1:x:1000:1000::/home/user1:/bin/bashuser2:x:1001:1001::/home/user2:/bin/bashlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinroot:x:0:0:root:/root:/bin/bashshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownsync:x:5:0:sync:/sbin:/bin/syncsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:997:User for polkitd:/:/sbin/nologinchrony:x:998:996::/var/lib/chrony:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologin
- -t 指定分隔符
- -k 指定第几段
- 使用cut以":"为分隔符,截出/etc/passwd的第三段字符。
[root@localhost ~]#cut -d: -f3 /etc/passwd0123456781112149919281999897499810001001
- -d 指定分隔符
- -f 指定第几段
- 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.
配置文件 | 作用 |
---|---|
/etc/profile | 不管哪个用户,登陆时都会读取该文件。 |
/etc/bashrc | bash执行时,不管是何种方式,都会读取此文件 |
.bashrc | 当bash以non login方式执行时,读取此文件。 |
.bashrc_profile | 当bash以login形式执行时,读取此文件。通常该配置文件还 |
会配置成去读取.bashrc。 7. export 的作用是什么?
答: export 定义子bash继承的全局变量
- linux下自定义变量要符合什么样的规则呢?
a. 设定变量的格式为”a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格
b. 变量名只能由英、数字以及下划线组成,而且不能以数字开头
c. 当变量内容带有特殊字符(如空格)时,需要加上单引号;
d. 如果变量内容中需要用到其他命令运行结果则可以使用反引号;
e. 变量内容可以累加其他变量的内容,需要加双引号;
- 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台?
[root@localhost ~]#sleep 1000 &[1] 3678[root@localhost ~]#fgsleep 1000
使用命令 比如:sleep & ,可以使命令在后台运行。如果把后台的命令调到前台运行,使用fg命令。
- 列出当前目录下以"test"开头的文件和目录。
[root@localhost ~]#ls test*test1.txt test.txttest:123.txt 234.txt
使用 ls 可以列出当前目录的所有文件,test加上 * 后列出当前目录下所有以 test开头的文件以及目录包括目录下的子文件。
- 如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?
[root@localhost ~]#ls [12].txt abc.txt >right.txt 2>erro.txt[root@localhost ~]#cat right.txt 1.txt2.txt[root@localhost ~]#cat erro.txt ls: 无法访问abc.txt: 没有那个文件或目录
> 正确的信息输出到文件中, >>正确信息追加到文件中, 2> 错误的信息输出到文件中,2>>错误的信息追加到文件中
- 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。
alias abc=abcdefg
- 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?
[root@localhost ~]#ls [12].txt ab.txt &>a.txt[root@localhost ~]#cat a.txtls: 无法访问ab.txt: 没有那个文件或目录1.txt2.txt
- 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?
split -b10M filename
split -l10000 filename
- -b指定文件大小
- -l指定行数
- 做实验,搞明白 ; && || 这三个符号的含义。
特殊符号 | 作用 |
---|---|
; | 多条命令写到一行,使用;分隔 |
|| | 用于命令之间,前面命令成功执行,后边命令不执行,如果前面命令不能执行,则执行后面命令。直到成功执行。 |
& & | 用于命令之间,如果前面命令成功执行,则执行后面的命令。如果前面命令不执行,则不执行后面的命令。 |
- ;
[root@localhost ~]#ls ; cat right.txt ;cat erro.txt 123 2.txt abcd a.txt right.txt test1.txt1.txt abc anaconda-ks.cfg erro.txt test test.txt1.txt2.txtls: 无法访问abc.txt: 没有那个文件或目录
- ||
[root@localhost ~]#la || ls-bash: la: 未找到命令123 2.txt abcd a.txt right.txt test1.txt1.txt abc anaconda-ks.cfg erro.txt test test.txt
-&&
[root@localhost ~]#la && ls-bash: la: 未找到命令
- 如果只想让某个用户使用某个变量如何做?
可以写入.bash_profile
- 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来?
set ##显示系统所有的变量和当前用户自定义的变量
扩展阅读:
Linux环境变量之“PS1"
Linux支持中文
让命令历史永久保存并加时间戳
linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 干啥的